Annotation of coherent/f/usr/include.78/sys/xl.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * /usr/include/sys/xl.h
                      3:  *
                      4:  * Archive floppy tape support.
                      5:  *
                      6:  * Revised: Wed Jun  2 12:16:16 1993 CDT
                      7:  */
                      8: 
                      9: #ifndef __SYS_XL_H__
                     10: #define __SYS_XL_H__
                     11: 
                     12: /************************************************************************/
                     13: /*       QIC 117 commands                                              */
                     14: /************************************************************************/
                     15: #define        QIC_CMD_RST     01      /* reset                                */
                     16: #define        QIC_CMD_RNB     02      /* report next bit                      */
                     17: #define        QIC_CMD_PAUS    03      /* pause                                */
                     18: #define        QIC_CMD_MPAUS   04      /* micro step pause                     */
                     19: #define        QIC_CMD_ALTTO   05      /* alternate command timeout            */
                     20: #define        QIC_CMD_STS     06      /* status                               */
                     21: #define        QIC_CMD_ECD     07      /* report error code                    */
                     22: #define        QIC_CMD_DRVCN   08      /* report drive configuration           */
                     23: #define        QIC_CMD_ROMVN   09      /* report ROM version                   */
                     24: #define        QIC_CMD_FWD     10      /* logical forward                      */
                     25: #define        QIC_CMD_BOT     11      /* rewind to begining of tape           */
                     26: #define        QIC_CMD_EOT     12      /* forward to end of tape               */
                     27: #define        QIC_CMD_SEEK    13      /* seek head to track                   */
                     28: #define        QIC_CMD_CAL     14      /* rewind, calibrate drive              */
                     29: #define        QIC_CMD_FMD     15      /* format mode                          */
                     30: #define        QIC_CMD_WRF     16      /* write reference bursts               */
                     31: #define        QIC_CMD_VMD     17      /* verify mode                          */
                     32: #define        QIC_CMD_STOP    18      /* stop tape motion                     */
                     33: #define        QIC_CMD_SKPB    25      /* skip n segments back                 */
                     34: #define        QIC_CMD_NMD     30      /* normal mode                          */
                     35: #define        QIC_CMD_VNDID   32      /* report vendor id                     */
                     36: #define        QIC_CMD_TPSTAT  33      /* report tape status                   */
                     37: 
                     38: /************************************************************************/
                     39: /*       QIC 117 error codes                                           */
                     40: /************************************************************************/
                     41: 
                     42: /* command received while drive not ready */
                     43: #define        QIC_ERR_NOT_READY       01
                     44: 
                     45: /* cartridge not present or removed */
                     46: #define        QIC_ERR_NO_CART         02
                     47: 
                     48: /* motor speed error (not within 1%) */
                     49: #define        QIC_ERR_MOTOR_SPEED     03
                     50: 
                     51: /* motor speed fault (jammed, or gross speed error) */
                     52: #define        QIC_ERR_MOTOR_FAULT     04
                     53: 
                     54: /* cartridge write protected */
                     55: #define        QIC_ERR_WPROT           05
                     56: 
                     57: /* undefined or reserved command code */
                     58: #define        QIC_ERR_BAD_CMD         06
                     59: 
                     60: /* illegal track address specified for seek */
                     61: #define        QIC_ERR_SEEK_TRK        07
                     62: 
                     63: /* illegal command in report subcontext */
                     64: #define        QIC_ERR_RPT_CMD         08
                     65: 
                     66: /* illegal entry into a diagnostic mode */
                     67: #define        QIC_ERR_DIAG_ENTRY      09
                     68: 
                     69: /* broken tape detected (based on hole sensor) */
                     70: #define        QIC_ERR_BROKEN_TAPE     10
                     71: 
                     72: /* warning - read gain setting error */
                     73: #define        QIC_ERR_READ_GAIN       11
                     74: 
                     75: /* command received while error status pending (obsolete) */
                     76: #define        QIC_ERR_ESTAT           12
                     77: 
                     78: /* command received while new cartridge pending */
                     79: #define        QIC_ERR_NEW_CART        13
                     80: 
                     81: /* command illegal or undefined in primary mode */
                     82: #define        QIC_ERR_PRI_MODE        14
                     83: 
                     84: /* command illegal or undefined in format mode */
                     85: #define        QIC_ERR_FMT_MODE        15
                     86: 
                     87: /* command illegal or undefined in verify mode */
                     88: #define        QIC_ERR_VFY_MODE        16
                     89: 
                     90: /* logical forward not at logical BOT in format mode */
                     91: #define        QIC_ERR_LOG_FWD         17
                     92: 
                     93: /* logical EOT before all segments generated */
                     94: #define        QIC_ERR_LOG_EOT         18
                     95: 
                     96: /* command illegal when cartridge not referenced */
                     97: #define        QIC_ERR_NOT_REF         19
                     98: 
                     99: /* self-diagnostic failed (cannot be cleared) */
                    100: #define        QIC_ERR_SELF_DX         20
                    101: 
                    102: /* warning EEPROM not initialized, defaults set */
                    103: #define        QIC_ERR_EE_DFLT         21
                    104: 
                    105: /* EEPROM corrupt or hardware failure */
                    106: #define        QIC_ERR_EE_BAD          22
                    107: 
                    108: /* motion timeout error */
                    109: #define        QIC_ERR_MOTION_TO       23
                    110: 
                    111: /* data segment too long - logical forward or pause */
                    112: #define        QIC_ERR_TOO_LONG        24
                    113: 
                    114: /* transmit overrun (obsolete) */
                    115: #define        QIC_ERR_XMIT_OVR        25
                    116: 
                    117: /* power on reset occurred */
                    118: #define        QIC_ERR_POWER_ON        26
                    119: 
                    120: /* software reset occurred */
                    121: #define        QIC_ERR_SOFT_RST        27
                    122: 
                    123: /* diagnostic mode 1 error */
                    124: #define        QIC_ERR_DX_1            28
                    125: 
                    126: /* diagnostic mode 2 error */
                    127: #define        QIC_ERR_DX_2            29
                    128: 
                    129: /* command received during noninterruptible process */
                    130: #define        QIC_ERR_NON_IRPT        30
                    131: 
                    132: /* rate selection error */
                    133: #define        QIC_ERR_RATE_SEL        31
                    134: 
                    135: /* illegal command while in high speed mode */
                    136: #define        QIC_ERR_HIGH_SPD        32
                    137: 
                    138: /* illegal seek segment value */
                    139: #define        QIC_ERR_SEEK_SEG        33 
                    140: 
                    141: /************************************************************************/
                    142: /*     request buffer structure                                        */
                    143: /************************************************************************/
                    144: struct rb{
                    145:        struct  rb *nxt;        /* ptr to next packet   */
                    146:        unchar  fun;            /* function             */
                    147:        unchar  sts;            /* status               */
                    148:        ushort  sgn;            /* segment #            */
                    149:        paddr_t adr;            /* addr of buffer       */
                    150:        ulong   map;            /* bad sector map       */
                    151:        unchar  hed;            /* fdc head             */
                    152:        unchar  cyl;            /* fdc cylinder         */
                    153:        unchar  sct;            /* base fdc sector      */
                    154:        unchar  trk;            /* tape track           */
                    155:        unchar  tps;            /* segment              */
                    156:        unchar  idc;            /* read id cylinder     */
                    157:        unchar  ids;            /* sct                  */
                    158:        unchar  nbk;            /* # blocks             */
                    159:        unchar  erc;            /* error count          */
                    160:        unchar  ers[ 3 ];       /* error sectors        */
                    161:        ushort  tbl[ 33 ];      /* parsed segment params*/
                    162: };
                    163: 
                    164: struct rbq {                   /* buf queue structure  */
                    165:        struct  rb *top;
                    166:        struct  rb *bot;
                    167: };
                    168: 
                    169: /************************************************************************/
                    170: /*     Volume table structure (128 bytes)                              */
                    171: /************************************************************************/
                    172: 
                    173: typedef struct {
                    174:        unsigned  char  ident[4];       /* Volume entry signature "VTBL"*/
                    175:        unsigned  short data_seg_num;   /* Starting segment number      */
                    176:        unsigned  short last_seg_num;   /* Ending segment number        */
                    177:        unsigned  char  op_system[6];   /* OS type "unix"               */
                    178:        unsigned  char  p1[43];         /*  Null (offset 14-56)         */
                    179:        char            c_seq_num;      /* Multicartridge seq #         */
                    180:                                        /*  initial cartridge = 1       */
                    181:        unsigned  short p3[34];         /*  Null (offset 58-126)        */
                    182:        unsigned  short last_blk_size;  /* Reserved. For UNIX/Xenix     */
                    183:                                        /*  last block data size        */
                    184: } xlvtbl;
                    185: 
                    186: /************************************************************************/
                    187: /*     xl typedefs                                             */
                    188: /************************************************************************/
                    189: 
                    190: typedef        unsigned char * fpchr;
                    191: typedef        unsigned short * fpwrd;
                    192: typedef        unsigned long * fplng;
                    193: 
                    194: /************************************************************************/
                    195: /*     xldefines                                                       */
                    196: /************************************************************************/
                    197: 
                    198: #define        RBFRD   0x01            /* rb.fun values                        */
                    199: #define        RBFWT   0x02
                    200: #define        RBWFD   0x03
                    201: 
                    202: #define        XLSRDY  0x01            /* xl6sts equates                       */
                    203: #define        XLSEXC  0x02
                    204: #define        XLSCIN  0x04
                    205: #define        XLSWRP  0x08
                    206: #define        XLSCHG  0x10
                    207: #define        XLSREF  0x20
                    208: #define        XLSBOT  0x40
                    209: #define        XLSEOT  0x80
                    210: /*                               xlster equates                        */
                    211: #define        XLSNEC  0x80            /* nec error                            */
                    212: #define        XLSLSB  0x40            /* last status bit != 1                 */
                    213: #define        XLSSFT  0x20            /* soft error:, exc, chg, or no cin     */
                    214: #define        XLSNTD  0x10            /* not tape drive                       */
                    215: #define        XLSNID  0x08            /* can't read id's                      */
                    216: 
                    217: #endif /* __SYS_XL_H__ */

unix.superglobalmegacorp.com

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