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

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