|
|
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.