Blame


1 e1dddc05 2004-06-17 devnull #pragma src "/sys/src/libdisk"
2 e1dddc05 2004-06-17 devnull #pragma lib "libdisk.a"
3 e1dddc05 2004-06-17 devnull
4 e1dddc05 2004-06-17 devnull /* SCSI interface */
5 e1dddc05 2004-06-17 devnull typedef struct Scsi Scsi;
6 e1dddc05 2004-06-17 devnull struct Scsi {
7 e1dddc05 2004-06-17 devnull QLock lk;
8 e1dddc05 2004-06-17 devnull char* inquire;
9 e1dddc05 2004-06-17 devnull int rawfd;
10 e1dddc05 2004-06-17 devnull int nchange;
11 e1dddc05 2004-06-17 devnull ulong changetime;
12 e1dddc05 2004-06-17 devnull };
13 e1dddc05 2004-06-17 devnull
14 e1dddc05 2004-06-17 devnull enum {
15 e1dddc05 2004-06-17 devnull Sread = 0,
16 e1dddc05 2004-06-17 devnull Swrite,
17 e1dddc05 2004-06-17 devnull Snone,
18 e1dddc05 2004-06-17 devnull };
19 e1dddc05 2004-06-17 devnull
20 e1dddc05 2004-06-17 devnull char* scsierror(int, int);
21 e1dddc05 2004-06-17 devnull int scsicmd(Scsi*, uchar*, int, void*, int, int);
22 e1dddc05 2004-06-17 devnull int scsi(Scsi*, uchar*, int, void*, int, int);
23 e1dddc05 2004-06-17 devnull Scsi* openscsi(char*);
24 e1dddc05 2004-06-17 devnull int scsiready(Scsi*);
25 e1dddc05 2004-06-17 devnull
26 e1dddc05 2004-06-17 devnull extern int scsiverbose;
27 e1dddc05 2004-06-17 devnull
28 e1dddc05 2004-06-17 devnull /* disk partition interface */
29 e1dddc05 2004-06-17 devnull typedef struct Disk Disk;
30 e1dddc05 2004-06-17 devnull struct Disk {
31 e1dddc05 2004-06-17 devnull char *prefix;
32 e1dddc05 2004-06-17 devnull char *part;
33 e1dddc05 2004-06-17 devnull int fd;
34 e1dddc05 2004-06-17 devnull int wfd;
35 e1dddc05 2004-06-17 devnull int ctlfd;
36 e1dddc05 2004-06-17 devnull int rdonly;
37 e1dddc05 2004-06-17 devnull int type;
38 e1dddc05 2004-06-17 devnull
39 e1dddc05 2004-06-17 devnull vlong secs;
40 e1dddc05 2004-06-17 devnull vlong secsize;
41 e1dddc05 2004-06-17 devnull vlong size;
42 e1dddc05 2004-06-17 devnull vlong offset; /* within larger disk, perhaps */
43 e1dddc05 2004-06-17 devnull int width; /* of disk size in bytes as decimal string */
44 e1dddc05 2004-06-17 devnull int c;
45 e1dddc05 2004-06-17 devnull int h;
46 e1dddc05 2004-06-17 devnull int s;
47 e1dddc05 2004-06-17 devnull int chssrc;
48 e1dddc05 2004-06-17 devnull };
49 e1dddc05 2004-06-17 devnull
50 e1dddc05 2004-06-17 devnull Disk* opendisk(char*, int, int);
51 e1dddc05 2004-06-17 devnull
52 e1dddc05 2004-06-17 devnull enum {
53 e1dddc05 2004-06-17 devnull Tfile = 0,
54 e1dddc05 2004-06-17 devnull Tsd,
55 e1dddc05 2004-06-17 devnull Tfloppy,
56 e1dddc05 2004-06-17 devnull
57 e1dddc05 2004-06-17 devnull Gpart = 0, /* partition info source */
58 e1dddc05 2004-06-17 devnull Gdisk,
59 e1dddc05 2004-06-17 devnull Gguess,
60 e1dddc05 2004-06-17 devnull };
61 e1dddc05 2004-06-17 devnull
62 e1dddc05 2004-06-17 devnull /* proto file parsing */
63 e1dddc05 2004-06-17 devnull typedef void Protoenum(char *new, char *old, Dir *d, void *a);
64 e1dddc05 2004-06-17 devnull typedef void Protowarn(char *msg, void *a);
65 e1dddc05 2004-06-17 devnull int rdproto(char*, char*, Protoenum*, Protowarn*, void*);