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