#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; | |
/* 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, | |
}; | |
#endif | |
/* 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 |