Annotation of 42BSD/sys/vaxmba/mbareg.h, revision 1.1

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