Annotation of researchv10no/cmd/worm/scsi/juke.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.