|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.