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