Annotation of 42BSD/sys/vax/cpu.h, revision 1.1

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

unix.superglobalmegacorp.com

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