Annotation of researchv9/sys.vax/h/cpu.h, revision 1.1.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.