66 lines · 1.1 KB · C
RawDownload
#pragma src "/sys/src/libdisk"#pragma lib "libdisk.a" /* SCSI interface */typedef struct Scsi Scsi;struct Scsi {	QLock;	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*);void		closescsi(Scsi*);int		scsiready(Scsi*); extern int		scsiverbose; /* 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*);