| #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 |