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

unix.superglobalmegacorp.com

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