Annotation of researchv9/sys.vax/h/cpu.h, revision 1.1

1.1     ! root        1: #ifndef LOCORE
        !             2: /*
        !             3:  * Cpu identification, from SID register.
        !             4:  */
        !             5: union cpusid {
        !             6:        int     cpusid;
        !             7:        struct cpuany {
        !             8:                u_int   :24,
        !             9:                        cp_type:8;
        !            10:        } cpuany;
        !            11:        struct cpu780 {
        !            12:                u_int   cp_sno:12,              /* serial number */
        !            13:                        cp_plant:3,             /* plant number */
        !            14:                        cp_eco:9,               /* eco level */
        !            15:                        cp_type:8;              /* VAX_780 */
        !            16:        } cpu780;
        !            17:        struct cpu750 {
        !            18:                u_int   cp_hrev:8,              /* hardware rev level */
        !            19:                        cp_urev:8,              /* ucode rev level */
        !            20:                        :8,
        !            21:                        cp_type:8;              /* VAX_750 */
        !            22:        } cpu750;
        !            23:        struct cpu7ZZ {
        !            24:                u_int   :8,                     /* reserved */
        !            25:                        cp_urev:8,              /* ucode rev level */
        !            26:                        :8,                     /* reserved */
        !            27:                        cp_type:8;              /* VAX_7ZZ */
        !            28:        } cpu7ZZ;
        !            29: #ifdef MVAX
        !            30:        struct cpuMVAX {
        !            31:                u_int   cp_hrev:8,              /* hardware rev level */
        !            32:                        cp_urev:8,              /* ucode rev level */
        !            33:                        :8,
        !            34:                        cp_type:8;              /* MicroVAX II */
        !            35:        } cpuMVAX;
        !            36:                        /* MicroVAX-chip-based systems will require additional
        !            37:                                logic to distinguish between implementations */
        !            38: #endif
        !            39: };
        !            40: #endif
        !            41: #define        VAX_780         1
        !            42: #define        VAX_750         2
        !            43: #define        VAX_7ZZ         3
        !            44: #define M_VAX          8               /* microvax II */
        !            45: 
        !            46: #define        VAX_MAX         8
        !            47: 
        !            48: #ifndef LOCORE
        !            49: /*
        !            50:  * Per-cpu information for system.
        !            51:  */
        !            52: struct percpu {
        !            53:        short   pc_cputype;             /* cpu type code */
        !            54:        short   pc_nnexus;              /* number of nexus slots */
        !            55:        struct  nexus *pc_nexbase;      /* base of nexus space */
        !            56: /* we should be able to have just one address for the unibus memories */
        !            57: /* and calculate successive addresses by adding to the base, but the 750 */
        !            58: /* doesn't obey the sensible rule: uba1 has a lower address than uba0! */
        !            59:        caddr_t *pc_umaddr;             /* unibus memory addresses */
        !            60:        short   pc_nubabdp;             /* number of bdp's per uba */
        !            61:        short   pc_haveubasr;           /* have uba status register */
        !            62: /* the 750 has some slots which don't promise to tell you their types */
        !            63: /* if this pointer is non-zero, then you get the type from this array */
        !            64: /* rather than from the (much more sensible) low byte of the config register */
        !            65:        short   *pc_nextype;            /* botch:adapter types if no conf reg */
        !            66: };
        !            67: 
        !            68: #ifdef KERNEL
        !            69: int    cpu;
        !            70: struct percpu percpu[];
        !            71: #endif
        !            72: #endif

unix.superglobalmegacorp.com

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