Blame


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