#ifndef _DISK_H_ #define _DISK_H_ 1 #if defined(__cplusplus) extern "C" { #endif AUTOLIB(disk) #if 0 /* SCSI interface */ typedef struct Scsi Scsi; struct Scsi { QLock lk; char* inquire; int rawfd; int nchange; ulong changetime; }; enum { Sread = 0, Swrite, Snone, }; char* scsierror(int, int); int scsicmd(Scsi*, uchar*, int, void*, int, int); int scsi(Scsi*, uchar*, int, void*, int, int); Scsi* openscsi(char*); int scsiready(Scsi*); extern int scsiverbose; #endif /* disk partition interface */ typedef struct Disk Disk; struct Disk { char *prefix; char *part; int fd; int wfd; int ctlfd; int rdonly; int type; vlong secs; vlong secsize; vlong size; vlong offset; /* within larger disk, perhaps */ int width; /* of disk size in bytes as decimal string */ int c; int h; int s; int chssrc; }; Disk* opendisk(char*, int, int); enum { Tfile = 0, Tsd, Tfloppy, Gpart = 0, /* partition info source */ Gdisk, Gguess }; /* proto file parsing */ typedef void Protoenum(char *new, char *old, Dir *d, void *a); typedef void Protowarn(char *msg, void *a); int rdproto(char*, char*, Protoenum*, Protowarn*, void*); #if defined(__cplusplus) } #endif #endif