#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*);
#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*);