bits defined wrong for 750
[unix-history] / usr / src / sys / vax / include / cpu.h
CommitLineData
d54f1867 1/* cpu.h 4.6 81/04/03 */
f5a2f2dd 2
adae96fc 3#ifndef LOCORE
f5a2f2dd
BJ
4/*
5 * Cpu identification, from SID register.
6 */
7union 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;
d54f1867 25 /* need structure for 7ZZ */
f5a2f2dd 26};
adae96fc 27#endif
f5a2f2dd
BJ
28#define VAX_780 1
29#define VAX_750 2
d54f1867 30#define VAX_7ZZ 3
f5a2f2dd 31
ea4d5e21 32#define VAX_MAX 3
f5a2f2dd 33
adae96fc 34#ifndef LOCORE
f5a2f2dd
BJ
35/*
36 * Per-cpu information for system.
37 */
38struct percpu {
f201ad4d
BJ
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 */
f5a2f2dd
BJ
52};
53
54#ifdef KERNEL
55int cpu;
f201ad4d 56struct percpu percpu[];
f5a2f2dd 57#endif
adae96fc 58#endif