Annotation of 43BSD/sys/vaxuba/rxreg.h, revision 1.1.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.1 (Berkeley) 6/5/86
                      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 contain */
                     75:                                        /* `deleted data'?*/
                     76: #define        RXIOC_GDENS     _IOR(d, 4, int) /* return density of current disk */
                     77: 
                     78: #ifdef RXDEFERR
                     79: /*
                     80:  * Table of values for definitive error code (rxxt[0] & 0xff)
                     81:  */
                     82: struct rxdeferr {
                     83:        short   errval;
                     84:        char    *errmsg;
                     85: } rxdeferr[] = {
                     86:        { 0010, "Can't find home on drive 0" },
                     87:        { 0020, "Can't find home on drive 1" },
                     88:        { 0040, "Bad track number requested" },
                     89:        { 0050, "Home found too soon" },
                     90:        { 0070, "Can't find desired sector" },
                     91:        { 0110, "No SEP clock seen" },
                     92:        { 0120, "No preamble found" },
                     93:        { 0130, "Preamble, but no ID mark" },
                     94:        { 0140, "Header CRC error"},
                     95:        { 0150, "Track addr wrong in header" },
                     96:        { 0160, "Too many tries for ID AM" },
                     97:        { 0170, "No data AM found" },
                     98:        { 0200, "Data CRC error" },
                     99:        { 0220, "Maintenance test failure" },
                    100:        { 0230, "Word count overflow" },
                    101:        { 0240, "Density error" },
                    102:        { 0250, "Set-density protocol bad" },
                    103:        { 0,    "Undefined error code" }
                    104: };
                    105: #endif

unix.superglobalmegacorp.com

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