|
|
1.1 root 1: /*
2: * UNIBUS SMD disk data structures
3: * one updisk per drive
4: * one scctl per controller
5: */
6:
7: struct updisk {
8: struct scctl *ctl;
9: char flags;
10: char type; /* type of drive; magic code */
11: char unit; /* physical unit number on this controller */
12: struct buf *actf; /* list of buffers waiting to be xfered */
13: struct buf *actl;
14: struct updisk *next;
15: };
16:
17: #define NSCUP 8 /* max units per controller */
18:
19: struct scctl {
20: struct updevice *addr;
21: struct updisk *actf; /* list of active drives */
22: struct updisk *actl;
23: char flags;
24: char ubno; /* unibus number -- only for mapping */
25: char errcnt;
26: char recal; /* current place in retry machine */
27: char softas; /* non-transfer attention required */
28: struct updisk *drives[NSCUP]; /* back-pointers to drives */
29: };
30:
31: /*
32: * device size
33: * here so updump can get it
34: */
35: struct upst {
36: char nsect; /* sectors per track */
37: char ntrak; /* tracks per cylinder */
38: char sdist; /* sectors twixt search and io */
39: char rdist; /* sectors close enough not to search */
40: short nspc; /* sectors per cylinder */
41: short ncyl; /* cylinders per pack */
42: struct size *sizes;
43: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.