/* * UNIBUS SMD disk data structures * one updisk per drive * one scctl per controller */ #define NUPPART 8 struct updisk { struct scctl *ctl; char flags; char type; /* type of drive; magic code */ char unit; /* physical unit number on this controller */ char pinit; struct buf *actf; /* list of buffers waiting to be xfered */ struct buf *actl; struct updisk *next; long blkoff[NUPPART]; long nblocks[NUPPART]; }; #define NSCUP 8 /* max units per controller */ struct scctl { struct updevice *addr; struct updisk *actf; /* list of active drives */ struct updisk *actl; char flags; char ubno; /* unibus number -- only for mapping */ char errcnt; char recal; /* current place in retry machine */ char softas; /* non-transfer attention required */ struct updisk *drives[NSCUP]; /* back-pointers to drives */ }; /* * device size * here so updump can get it */ struct upst { char nsect; /* sectors per track */ char ntrak; /* tracks per cylinder */ char sdist; /* sectors twixt search and io */ char rdist; /* sectors close enough not to search */ short nspc; /* sectors per cylinder */ short ncyl; /* cylinders per pack */ struct size *sizes; };