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