|
|
1.1 root 1: #define NLUN 8
2: #define NSHELF 50
3: extern int nlun;
4: extern void setnlun(void);
5: extern char *j_shelf[NSHELF];
6: extern int j_wrshelf; /* need to write out shelves */
7: extern j_rdshelves(char *err);
8: extern j_wrshelves(char *err);
9: extern j_inventory(char cold, int tlim, char *err);
10:
11: typedef enum { SIDEA = 0, SIDEB = 1 } Side;
12:
13: struct Lunstatus
14: {
15: unsigned int poweron:1; /* is power on ? */
16: unsigned int diskin:1; /* is disk in drive? */
17: unsigned int ready:1; /* is disk spun up or spun down? */
18: unsigned int writeprotect:1; /* is disk write protected? */
19: unsigned int diskindrive:1; /* is driveshelf a drive number? */
20: unsigned int shelfvalid:1; /* is retshelf valid? */
21: uchar driveshelf; /* drive number */
22: uchar retshelf; /* return shelf */
23: };
24:
25: struct Jstatus
26: {
27: struct Lunstatus lun[NLUN]; /* disk status */
28: uchar shelf[NSHELF]; /* shelf status */
29: uchar iounit; /* I/O unit status */
30: uchar carrier; /* carrier status */
31: uchar udrive; /* upper drive status */
32: uchar ldrive; /* lower drive status */
33: };
34: extern struct Jstatus j_status;
35: extern int j_getstatus(char *err);
36: extern int j_shelfof(char *vol_id);
37: extern int j_driveof(char *vol_id);
38:
39: extern char *strdup(char *);
40: extern int j_shelf_to_drive(int, Side, int, char *);
41: extern int j_drive_to_shelf(int, int, Side, char *);
42: extern int j_empty_drive(long, char *);
43: extern int j_rvolid(int, char *);
44: extern int j_wvolid(int, char *, char *);
45: extern void pperror(char *buf, char *mesg);
46: extern int reserve_drive(int, char *);
47: extern int release_drive(int, char *);
48: extern int cold_inv(char, char *);
49: extern int warm_inv(char *);
50: extern int j_load(char *vol_id, char *buf, long tlim);
51: extern int j_unload(char *vol_id, char *buf);
52:
53: #define JUKEDIR "/usr/worm/jukedir"
54: #define UNALLOCATED "<unallocated>"
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.