|
|
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.