Blob


1 #ifndef _DISK_H_
2 #define _DISK_H_ 1
3 #if defined(__cplusplus)
4 extern "C" {
5 #endif
8 AUTOLIB(disk)
10 #if 0
11 /* SCSI interface */
12 typedef struct Scsi Scsi;
13 struct Scsi {
14 QLock lk;
15 char* inquire;
16 int rawfd;
17 int nchange;
18 ulong changetime;
19 };
21 enum {
22 Sread = 0,
23 Swrite,
24 Snone,
25 };
27 char* scsierror(int, int);
28 int scsicmd(Scsi*, uchar*, int, void*, int, int);
29 int scsi(Scsi*, uchar*, int, void*, int, int);
30 Scsi* openscsi(char*);
31 int scsiready(Scsi*);
33 extern int scsiverbose;
35 /* disk partition interface */
36 typedef struct Disk Disk;
37 struct Disk {
38 char *prefix;
39 char *part;
40 int fd;
41 int wfd;
42 int ctlfd;
43 int rdonly;
44 int type;
46 vlong secs;
47 vlong secsize;
48 vlong size;
49 vlong offset; /* within larger disk, perhaps */
50 int width; /* of disk size in bytes as decimal string */
51 int c;
52 int h;
53 int s;
54 int chssrc;
55 };
57 Disk* opendisk(char*, int, int);
59 enum {
60 Tfile = 0,
61 Tsd,
62 Tfloppy,
64 Gpart = 0, /* partition info source */
65 Gdisk,
66 Gguess,
67 };
68 #endif
70 /* proto file parsing */
71 typedef void Protoenum(char *new, char *old, Dir *d, void *a);
72 typedef void Protowarn(char *msg, void *a);
73 int rdproto(char*, char*, Protoenum*, Protowarn*, void*);
75 #if defined(__cplusplus)
76 }
77 #endif
78 #endif