Annotation of researchv8dc/sys/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:        /* need structure for 7ZZ */
                     24: };
                     25: #endif
                     26: #define        VAX_780         1
                     27: #define        VAX_750         2
                     28: #define        VAX_7ZZ         3
                     29: 
                     30: #define        VAX_MAX         3
                     31: 
                     32: #ifndef LOCORE
                     33: /*
                     34:  * Per-cpu information for system.
                     35:  */
                     36: struct percpu {
                     37:        short   pc_cputype;             /* cpu type code */
                     38:        short   pc_nnexus;              /* number of nexus slots */
                     39:        struct  nexus *pc_nexbase;      /* base of nexus space */
                     40: /* we should be able to have just one address for the unibus memories */
                     41: /* and calculate successive addresses by adding to the base, but the 750 */
                     42: /* doesn't obey the sensible rule: uba1 has a lower address than uba0! */
                     43:        caddr_t *pc_umaddr;             /* unibus memory addresses */
                     44:        short   pc_nubabdp;             /* number of bdp's per uba */
                     45:        short   pc_haveubasr;           /* have uba status register */
                     46: /* the 750 has some slots which don't promise to tell you their types */
                     47: /* if this pointer is non-zero, then you get the type from this array */
                     48: /* rather than from the (much more sensible) low byte of the config register */
                     49:        short   *pc_nextype;            /* botch */
                     50: };
                     51: 
                     52: #ifdef KERNEL
                     53: int    cpu;
                     54: struct percpu percpu[];
                     55: #endif
                     56: #endif

unix.superglobalmegacorp.com

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