Annotation of 43BSDReno/sys/vaxmba/mbareg.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:  *     @(#)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.