blob: c9e07af7446d399a5140d829ffd8e1371fa4f7ca [file] [log] [blame]
#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