Annotation of 42BSD/sys/vaxuba/rlreg.h, revision 1.1

1.1     ! root        1: /*     rlreg.h 6.1     83/07/29        */
        !             2: 
        !             3: struct rldevice {
        !             4:        short   rlcs;           /* control status */
        !             5:        u_short rlba;           /* bus address */
        !             6:        union {                 /* disk address */
        !             7:                u_short seek;           /* disk seek address */
        !             8:                u_short rw;             /* disk read/write address */
        !             9:                u_short getstat;        /* get disk status command */
        !            10:        } rlda;
        !            11:        union {                 /* multi-purpose register */
        !            12:                u_short getstat;        /* get status */
        !            13:                u_short readhdr;        /* read header */
        !            14:                u_short rw;             /* read/write word count */
        !            15:        } rlmp;
        !            16: };
        !            17: 
        !            18: #define        NRLCYLN         512     /* number of cylinders per disk */
        !            19: #define NRLTRKS                2       /* number of tracks per cylinder */
        !            20: #define NRLSECT                40      /* number of sectors per track */
        !            21: #define NRLBPSC                256     /* bytes per sector */
        !            22: 
        !            23: /* rlcs */
        !            24: /* commands */
        !            25: #define RL_NOOP                0000000         /* no-operation */
        !            26: #define RL_WCHECK      0000002         /* write check */
        !            27: #define RL_GETSTAT     0000004         /* get status */
        !            28: #define        RL_SEEK         0000006         /* seek */
        !            29: #define        RL_RHDR         0000010         /* read header */
        !            30: #define        RL_WRITE        0000012         /* write data */
        !            31: #define        RL_READ         0000014         /* read data */
        !            32: #define        RL_RDNCK        0000016         /* read data without hdr check */
        !            33: 
        !            34: #define RL_DRDY                0000001         /* When set indicates drive ready */
        !            35: #define RL_BAE         0000060         /* UNIBUS address bits 16 & 17 */
        !            36: #define        RL_IE           0000100         /* interrupt enable */
        !            37: #define        RL_CRDY         0000200         /* controller ready */
        !            38: #define RL_DS0         0000400         /* drive select 0 */
        !            39: #define RL_DS1         0001000         /* drive select 1 */
        !            40: #define        RL_OPI          0002000         /* operation incomplete */
        !            41: #define        RL_DCRC         0004000         /* CRC error occurred */
        !            42: #define        RL_DLT          0010000         /* data late or header not found */
        !            43: #define        RL_NXM          0020000         /* non-existant memory */
        !            44: #define        RL_DE           0040000         /* selected drive flagged an error */
        !            45: #define        RL_ERR          0100000         /* composite error */
        !            46: 
        !            47: #define        RL_DCRDY        (RL_DRDY | RL_CRDY)
        !            48: 
        !            49: #define        RLCS_BITS \
        !            50: "\10\20ERR\17DE\16NXM\15DLT\14DCRC\13OPI\1DRDY"
        !            51: 
        !            52: /* da_seek */
        !            53: #define        RLDA_LOW        0000001         /* lower cylinder seek */
        !            54: #define        RLDA_HGH        0000005         /* higher cylinder seek */
        !            55: #define        RLDA_HSU        0000000         /* upper head select */
        !            56: #define        RLDA_HSL        0000020         /* lower head select */
        !            57: #define        RLDA_CA         0177600         /* cylinder address */
        !            58: 
        !            59: /* da_rw */
        !            60: #define        RLDA_SA         0000077         /* sector address */
        !            61: #define RLDA_HST       0000000         /* upper head select */
        !            62: #define        RLDA_HSB        0000100         /* lower head select */
        !            63: 
        !            64: /* da_getstat */
        !            65: 
        !            66: #define        RL_GSTAT        0000003         /* Get status */
        !            67: #define        RL_RESET        0000013         /* get status with reset */
        !            68: 
        !            69: /* mp_getstat */
        !            70: #define        RLMP_STA        0000001         /* drive state: load cartridge */
        !            71: #define        RLMP_STB        0000002         /* drive state: brush cycle */
        !            72: #define        RLMP_STC        0000004         /* drive state: seek */
        !            73: #define        RLMP_BH         0000010         /* set when brushes are home */
        !            74: #define        RLMP_HO         0000020         /* set when brushes over the disk */
        !            75: #define        RLMP_CO         0000040         /* set when cover open */
        !            76: #define        RLMP_HS         0000100         /* indicates selected head:
        !            77:                                                0 upper head
        !            78:                                                1 lower head */
        !            79: #define        RLMP_DT         0000200         /* indicates drive type:
        !            80:                                                0 RL01
        !            81:                                                1 RL02 */
        !            82: #define        RLMP_DSE        0000400         /* set on multiple drive selection */
        !            83: #define        RLMP_VC         0001000         /* set on pack mounted and spining */
        !            84: #define        RLMP_WGE        0002000         /* write gate error */
        !            85: #define        RLMP_SPE        0004000         /* spin speed error */
        !            86: #define        RLMP_SKTO       0010000         /*\* seek time out error */
        !            87: #define RLMP_WL                0020000         /* set on protected drive */
        !            88: #define RLMP_CHE       0040000         /* current head error */
        !            89: #define RLMP_WDE       0100000         /* write data error */
        !            90: 
        !            91: /* mp_rhc */
        !            92: #define        RLMP_SA         0000077         /* sector address */
        !            93: #define        RLMP_CA         0177600         /* cylinder address */
        !            94: 
        !            95: /* check these bits after a get status and reset */
        !            96: #define RLMP_STATUS (RLMP_WDE|RLMP_CHE|RLMP_SKTO|RLMP_SPE|RLMP_WGE \
        !            97:        |RLMP_VC|RLMP_DSE|RLMP_CO|RLMP_HO|RLMP_BH|RLMP_STC|RLMP_STB|RLMP_STA)
        !            98: 
        !            99: /* these are the bits that should be on in the above check */
        !           100: #define RLMP_STATOK (RLMP_HO|RLMP_BH|RLMP_STC|RLMP_STA)
        !           101: 
        !           102: /* mp_rw */
        !           103: #define        RLMP_WC         0017777         /* word count 2's complement */
        !           104: 
        !           105: #define        RLER_BITS \
        !           106: "\10\20WDE\17CHE\16WL\15SKTO\14SPE\13WGE\12VC\11DSE\
        !           107: \10DT\7HS\6CO\5HO\4BH\3STC\2STB\1STA"

unix.superglobalmegacorp.com

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