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

1.1     ! root        1: /*     rxreg.h 6.1     83/07/29        */
        !             2: 
        !             3: #include <sys/ioctl.h>
        !             4: /*
        !             5:  * RX02 registers
        !             6:  */
        !             7: struct rxdevice {
        !             8:        short   rxcs;           /* control/status register */
        !             9:        short   rxdb;           /* data buffer register */
        !            10: };
        !            11: 
        !            12: /*
        !            13:  * RX211 Command and Status Register (RX2CS)
        !            14:  */
        !            15: #define        RX_DRV0         0x0000  /* select drive 0 */
        !            16: #define        RX_DRV1         0x0010  /* select drive 1 */
        !            17: #define        RX_DONE         0x0020  /* function complete */
        !            18: #define        RX_INTR         0x0040  /* interrupt enable */
        !            19: #define        RX_TREQ         0x0080  /* transfer request (data only) */
        !            20: #define        RX_SDEN         0x0000  /* single density */
        !            21: #define        RX_DDEN         0x0100  /* double density */
        !            22: #define        RX_EXT          0x3000  /* extended address bits */
        !            23: #define        RX_INIT         0x4000  /* initialize RX211 interface */
        !            24: #define        RX_ERR          0x8000  /* general error bit */
        !            25: 
        !            26: /*
        !            27:  * RX211 control function bits (0-3 of RX2CS)
        !            28:  */
        !            29: #define        RX_FILL         0x0001  /* fill the buffer */
        !            30: #define        RX_EMPTY        0x0003  /* empty the buffer */
        !            31: #define        RX_WRITE        0x0005  /* write the buffer to disk */
        !            32: #define        RX_READ         0x0007  /* read a disk sector to the buffer */
        !            33: #define        RX_FORMAT       0x0009  /* set the media density (format) */
        !            34: #define        RX_RDSTAT       0x000b  /* read the disk status */
        !            35: #define        RX_WDDS         0x000d  /* write a deleted-data sector */
        !            36: #define        RX_RDERR        0x000f  /* read the error registers */
        !            37: 
        !            38: #define        RXCS_BITS \
        !            39: "\20\20RX_ERR\17RX_INIT\11RX_DDEN\10RX_TREQ\7RX_IE\6RX_DONE\5RX_DRV1"
        !            40: 
        !            41: /*
        !            42:  * RX211 Error and Status Register (RX2ES) --
        !            43:  * information is located in RX2DB after completion of function.
        !            44:  * The READY bit's value is available only after a "read status".
        !            45:  */
        !            46: #define        RXES_CRCERR     0x0001  /* CRC error (data read error) */
        !            47: #define        RXES_IDONE      0x0004  /* reinitialization complete */
        !            48: #define RXES_DENERR    0x0010  /* density error */
        !            49: #define        RXES_DBLDEN     0x0020  /* set if double density */
        !            50: #define        RXES_DDMARK     0x0040  /* deleted-data mark */
        !            51: #define        RXES_READY      0x0080  /* drive is ready */
        !            52: 
        !            53: #define        RXES_BITS \
        !            54: "\20\14RXES_NXM\13RXES_WCOF\11RXES_DRV1\10RXES_RDY\7RXES_DDMK\6RXES_DDEN\5\
        !            55: RXES_DNER\4RXES_ACLO\3RXES_ID\1RXES_CRC"
        !            56: 
        !            57: /* 
        !            58:  * Ioctl commands, move to dkio.h later
        !            59:  */
        !            60: #define RXIOC_FORMAT   _IOW(d, 1, int) /* format the disk */
        !            61: #define RXIOC_WDDS     _IOW(d, 2, int) /* write `deleted data' mark */
        !            62:                                        /* on next sector */
        !            63: #define RXIOC_RDDSMK   _IOR(d, 3, int) /* did last read sector contain */
        !            64:                                        /* `deleted data'?*/
        !            65: #define        RXIOC_GDENS     _IOR(d, 4, int) /* return density of current disk */
        !            66: 
        !            67: #ifdef RXDEFERR
        !            68: /*
        !            69:  * Table of values for definitive error code (rxxt[0] & 0xff)
        !            70:  */
        !            71: struct rxdeferr {
        !            72:        short   errval;
        !            73:        char    *errmsg;
        !            74: } rxdeferr[] = {
        !            75:        { 0010, "Can't find home on drive 0" },
        !            76:        { 0020, "Can't find home on drive 1" },
        !            77:        { 0040, "Bad track number requested" },
        !            78:        { 0050, "Home found too soon" },
        !            79:        { 0070, "Can't find desired sector" },
        !            80:        { 0110, "No SEP clock seen" },
        !            81:        { 0120, "No preamble found" },
        !            82:        { 0130, "Preamble, but no ID mark" },
        !            83:        { 0140, "Header CRC error"},
        !            84:        { 0150, "Track addr wrong in header" },
        !            85:        { 0160, "Too many tries for ID AM" },
        !            86:        { 0170, "No data AM found" },
        !            87:        { 0200, "Data CRC error" },
        !            88:        { 0220, "Maintenance test failure" },
        !            89:        { 0230, "Word count overflow" },
        !            90:        { 0240, "Density error" },
        !            91:        { 0250, "Set-density protocol bad" },
        !            92:        { 0,    "Undefined error code" }
        !            93: };
        !            94: #endif

unix.superglobalmegacorp.com

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