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 fcdc75c0 2005-10-29 devnull #endif
35 e1dddc05 2004-06-17 devnull
36 e1dddc05 2004-06-17 devnull /* disk partition interface */
37 e1dddc05 2004-06-17 devnull typedef struct Disk Disk;
38 e1dddc05 2004-06-17 devnull struct Disk {
39 e1dddc05 2004-06-17 devnull char *prefix;
40 e1dddc05 2004-06-17 devnull char *part;
41 e1dddc05 2004-06-17 devnull int fd;
42 e1dddc05 2004-06-17 devnull int wfd;
43 e1dddc05 2004-06-17 devnull int ctlfd;
44 e1dddc05 2004-06-17 devnull int rdonly;
45 e1dddc05 2004-06-17 devnull int type;
46 e1dddc05 2004-06-17 devnull
47 e1dddc05 2004-06-17 devnull vlong secs;
48 e1dddc05 2004-06-17 devnull vlong secsize;
49 e1dddc05 2004-06-17 devnull vlong size;
50 e1dddc05 2004-06-17 devnull vlong offset; /* within larger disk, perhaps */
51 e1dddc05 2004-06-17 devnull int width; /* of disk size in bytes as decimal string */
52 e1dddc05 2004-06-17 devnull int c;
53 e1dddc05 2004-06-17 devnull int h;
54 e1dddc05 2004-06-17 devnull int s;
55 e1dddc05 2004-06-17 devnull int chssrc;
56 e1dddc05 2004-06-17 devnull };
57 e1dddc05 2004-06-17 devnull
58 e1dddc05 2004-06-17 devnull Disk* opendisk(char*, int, int);
59 e1dddc05 2004-06-17 devnull
60 e1dddc05 2004-06-17 devnull enum {
61 e1dddc05 2004-06-17 devnull Tfile = 0,
62 e1dddc05 2004-06-17 devnull Tsd,
63 e1dddc05 2004-06-17 devnull Tfloppy,
64 e1dddc05 2004-06-17 devnull
65 e1dddc05 2004-06-17 devnull Gpart = 0, /* partition info source */
66 e1dddc05 2004-06-17 devnull Gdisk,
67 cbeb0b26 2006-04-01 devnull Gguess
68 e1dddc05 2004-06-17 devnull };
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