enum { Tscsi = 1, Tata = 2, Sok = 0, Ssoon = 1, Sfail = 2, Nrb = 32, Pathlen = 256, }; typedef struct Dtype Dtype; typedef struct Sdisk Sdisk; struct Dtype { int type; char *tname; int (*probe)(Sdisk*); int (*enable)(Sdisk*); int (*status)(Sdisk*, char*, int); }; struct Sdisk { Sdisk *next; Dtype *t; int fd; Sfis; char path[Pathlen]; char name[28]; char status; uchar silent; uvlong lastcheck; uvlong lastlog; }; int scsiprobe(Sdisk*); int scsienable(Sdisk*); int scsistatus(Sdisk*, char*, int); int ataprobe(Sdisk*); int ataenable(Sdisk*); int atastatus(Sdisk*, char*, int); void eprint(Sdisk*, char *, ...);