Annotation of 43BSD/sys/vaxmba/mbareg.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:  *     @(#)mbareg.h    7.1 (Berkeley) 6/5/86
                      7:  */
                      8: 
                      9: /*
                     10:  * VAX MASSBUS adapter registers
                     11:  */
                     12: 
                     13: struct mba_regs
                     14: {
                     15:        int     mba_csr;                /* configuration register */
                     16:        int     mba_cr;                 /* control register */
                     17:        int     mba_sr;                 /* status register */
                     18:        int     mba_var;                /* virtual address register */
                     19:        int     mba_bcr;                /* byte count register */
                     20:        int     mba_dr;
                     21:        int     mba_pad1[250];
                     22:        struct mba_drv {                /* per drive registers */
                     23:                int     mbd_cs1;                /* control status */
                     24:                int     mbd_ds;                 /* drive status */
                     25:                int     mbd_er1;                /* error register */
                     26:                int     mbd_mr1;                /* maintenance register */
                     27:                int     mbd_as;                 /* attention status */
                     28:                int     mbd_da;                 /* desired address (disks) */
                     29: #define        mbd_fc  mbd_da                          /* frame count (tapes) */
                     30:                int     mbd_dt;                 /* drive type */
                     31:                int     mbd_la;                 /* look ahead (disks) */
                     32: #define        mbd_ck  mbd_la                          /* ??? (tapes) */
                     33:                int     mbd_sn;                 /* serial number */
                     34:                int     mbd_of;                 /* ??? */
                     35: #define        mbd_tc  mbd_of                          /* ??? */
                     36:                int     mbd_fill[22];
                     37:        } mba_drv[8];
                     38:        struct  pte mba_map[256];       /* io space virtual map */
                     39:        int     mba_pad2[256*5];        /* to size of a nexus */
                     40: };
                     41: 
                     42: /*
                     43:  * Bits in mba_cr
                     44:  */
                     45: #define        MBCR_INIT       0x1             /* init mba */
                     46: #define        MBCR_IE         0x4             /* enable mba interrupts */
                     47: 
                     48: /*
                     49:  * Bits in mba_sr
                     50:  */
                     51: #define        MBSR_DTBUSY     0x80000000      /* data transfer busy */
                     52: #define        MBSR_NRCONF     0x40000000      /* no response confirmation */
                     53: #define        MBSR_CRD        0x20000000      /* corrected read data */
                     54: #define        MBSR_CBHUNG     0x00800000      /* control bus hung */
                     55: #define        MBSR_PGE        0x00080000      /* programming error */
                     56: #define        MBSR_NED        0x00040000      /* non-existant drive */
                     57: #define        MBSR_MCPE       0x00020000      /* massbus control parity error */
                     58: #define        MBSR_ATTN       0x00010000      /* attention from massbus */
                     59: #define        MBSR_SPE        0x00004000      /* silo parity error */
                     60: #define        MBSR_DTCMP      0x00002000      /* data transfer completed */
                     61: #define        MBSR_DTABT      0x00001000      /* data transfer aborted */
                     62: #define        MBSR_DLT        0x00000800      /* data late */
                     63: #define        MBSR_WCKUP      0x00000400      /* write check upper */
                     64: #define        MBSR_WCKLWR     0x00000200      /* write check lower */
                     65: #define        MBSR_MXF        0x00000100      /* miss transfer error */
                     66: #define        MBSR_MBEXC      0x00000080      /* massbus exception */
                     67: #define        MBSR_MDPE       0x00000040      /* massbus data parity error */
                     68: #define        MBSR_MAPPE      0x00000020      /* page frame map parity error */
                     69: #define        MBSR_INVMAP     0x00000010      /* invalid map */
                     70: #define        MBSR_ERRCONF    0x00000008      /* error confirmation */
                     71: #define        MBSR_RDS        0x00000004      /* read data substitute */
                     72: #define        MBSR_ISTIMO     0x00000002      /* interface sequence timeout */
                     73: #define        MBSR_RDTIMO     0x00000001      /* read data timeout */
                     74: 
                     75: #define MBSR_BITS \
                     76: "\20\40DTBUSY\37NRCONF\36CRD\30CBHUNG\24PGE\23NED\22MCPE\21ATTN\
                     77: \17SPE\16DTCMP\15DTABT\14DLT\13WCKUP\12WCKLWR\11MXF\10MBEXC\7MDPE\
                     78: \6MAPPE\5INVMAP\4ERRCONF\3RDS\2ISTIMO\1RDTIMO"
                     79: 
                     80: #define        MBSR_HARD       (MBSR_PGE|MBSR_ERRCONF|MBSR_ISTIMO|MBSR_RDTIMO)
                     81: 
                     82: #define MBSR_EBITS     (~(MBSR_DTBUSY|MBSR_CRD|MBSR_ATTN|MBSR_DTCMP))
                     83: 
                     84: #ifdef KERNEL
                     85: extern char    mbsr_bits[];
                     86: #endif
                     87: 
                     88: /*
                     89:  * Commands for mbd_cs1
                     90:  */
                     91: #define        MB_WCOM         0x30
                     92: #define        MB_RCOM         0x38
                     93: #define        MB_GO           0x1
                     94: 
                     95: /*
                     96:  * Bits in mbd_ds.
                     97:  */
                     98: #define        MBDS_ERR        0x00004000      /* error in drive */
                     99: #define        MBDS_MOL        0x00001000      /* medium on line */
                    100: #define        MBDS_DPR        0x00000100      /* drive present */
                    101: #define        MBDS_DRY        0x00000080      /* drive ready */
                    102: 
                    103: #define        MBDS_DREADY     (MBDS_MOL|MBDS_DPR|MBDS_DRY)
                    104: 
                    105: /*
                    106:  * Bits in mbd_dt
                    107:  */
                    108: #define        MBDT_NSA        0x8000          /* not sector addressible */
                    109: #define        MBDT_TAP        0x4000          /* is a tape */
                    110: #define        MBDT_MOH        0x2000          /* moving head */
                    111: #define        MBDT_7CH        0x1000          /* 7 channel */
                    112: #define        MBDT_DRQ        0x800           /* drive request required */
                    113: #define        MBDT_SPR        0x400           /* slave present */
                    114: 
                    115: #define        MBDT_TYPE       0x1ff
                    116: #define        MBDT_MASK       (MBDT_NSA|MBDT_TAP|MBDT_TYPE)
                    117: 
                    118: /* type codes for disk drives */
                    119: #define        MBDT_RP04       020
                    120: #define        MBDT_RP05       021
                    121: #define        MBDT_RP06       022
                    122: #define        MBDT_RP07       042
                    123: #define        MBDT_RM02       025
                    124: #define        MBDT_RM03       024
                    125: #define        MBDT_RM05       027
                    126: #define        MBDT_RM80       026
                    127: #define        MBDT_ML11A      0110
                    128: #define        MBDT_ML11B      0111
                    129: 
                    130: /* type codes for tape drives */
                    131: #define        MBDT_TM03       050
                    132: #define        MBDT_TE16       051
                    133: #define        MBDT_TU45       052
                    134: #define        MBDT_TU77       054
                    135: #define        MBDT_TU78       0101

unix.superglobalmegacorp.com

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