1: /*
   2:  * Copyright (c) 1982, 1986 Regents of the University of California.
   3:  * All rights reserved.  The Berkeley software License Agreement
   4:  * specifies the terms and conditions for redistribution.
   5:  *
   6:  *	@(#)cpu.h	7.1 (Berkeley) 6/5/86
   7:  */
   8: 
   9: #ifndef LOCORE
  10: /*
  11:  * Cpu identification, from SID register.
  12:  */
  13: union cpusid {
  14:     int cpusid;
  15:     struct cpuany {
  16:         u_int   :24,
  17:             cp_type:8;
  18:     } cpuany;
  19:     struct cpu8600 {
  20:         u_int   cp_sno:12,      /* serial number */
  21:             cp_plant:4,     /* plant number */
  22:             cp_eco:8,       /* eco level */
  23:             cp_type:8;      /* VAX_8600 */
  24:     } cpu8600;
  25:     struct cpu780 {
  26:         u_int   cp_sno:12,      /* serial number */
  27:             cp_plant:3,     /* plant number */
  28:             cp_eco:9,       /* eco level */
  29:             cp_type:8;      /* VAX_780 */
  30:     } cpu780;
  31:     struct cpu750 {
  32:         u_int   cp_hrev:8,      /* hardware rev level */
  33:             cp_urev:8,      /* ucode rev level */
  34:             :8,
  35:             cp_type:8;      /* VAX_750 */
  36:     } cpu750;
  37:     struct cpu730 {
  38:         u_int   :8,         /* reserved */
  39:             cp_urev:8,      /* ucode rev level */
  40:             :8,         /* reserved */
  41:             cp_type:8;      /* VAX_730 */
  42:     } cpu730;
  43:     struct cpu630 {
  44:         u_int   :24,            /* reserved */
  45:             cp_type:8;      /* VAX_630 */
  46:     } cpu630;
  47: };
  48: #endif
  49: /*
  50:  * Vax CPU types.
  51:  * Similar types are grouped with their earliest example.
  52:  */
  53: #define VAX_780     1
  54: #define VAX_750     2
  55: #define VAX_730     3
  56: #define VAX_8600    4
  57: #define VAX_630     8
  58: 
  59: #define VAX_MAX     8
  60: 
  61: /*
  62:  * Main IO backplane types.
  63:  * This gives us a handle on how to do autoconfiguration.
  64:  */
  65: #define IO_SBI780   1
  66: #define IO_CMI750   2
  67: #define IO_XXX730   3
  68: #define IO_ABUS     4
  69: #define IO_QBUS     5
  70: 
  71: #ifndef LOCORE
  72: /*
  73:  * Per-cpu information for system.
  74:  */
  75: struct  percpu {
  76:     short   pc_cputype;     /* cpu type code */
  77:     short   pc_cpuspeed;        /* relative speed of cpu */
  78:     short   pc_nioa;        /* number of IO adaptors/nexus blocks */
  79:     struct  iobus *pc_io;       /* descriptions of IO adaptors */
  80: };
  81: 
  82: struct iobus {
  83:     int io_type;        /* io adaptor types */
  84:     caddr_t io_addr;        /* phys address of IO adaptor */
  85:     int io_size;        /* size of an IO space */
  86:     caddr_t io_details;     /* specific to adaptor types */
  87: };
  88: 
  89: /*
  90:  * Description of a main bus that maps "nexi", ala the 780 SBI.
  91:  */
  92: struct nexusconnect {
  93:     short   psb_nnexus;     /* number of nexus slots */
  94:     struct  nexus *psb_nexbase; /* base of nexus space */
  95: /* we should be able to have just one address for the unibus memories */
  96: /* and calculate successive addresses by adding to the base, but the 750 */
  97: /* doesn't obey the sensible rule: uba1 has a lower address than uba0! */
  98:     caddr_t *psb_umaddr;        /* unibus memory addresses */
  99:     short   psb_nubabdp;        /* number of bdp's per uba */
 100:     short   psb_haveubasr;      /* have uba status register */
 101: /* the 750 has some slots which don't promise to tell you their types */
 102: /* if this pointer is non-zero, then you get the type from this array */
 103: /* rather than from the (much more sensible) low byte of the config register */
 104:     short   *psb_nextype;       /* botch */
 105: };
 106: 
 107: #ifdef KERNEL
 108: int cpu;
 109: struct  percpu percpu[];
 110: #endif
 111: #endif

Defined variables

percpu defined in line 109; used 1 times

Defined struct's

cpu630 defined in line 43; never used
cpu730 defined in line 37; never used
cpu750 defined in line 31; never used
cpu780 defined in line 25; never used
cpu8600 defined in line 19; never used
cpuany defined in line 15; never used
iobus defined in line 82; used 15 times
nexusconnect defined in line 92; used 16 times
percpu defined in line 75; used 8 times

Defined union's

cpusid defined in line 13; used 6 times

Defined macros

IO_ABUS defined in line 68; used 2 times
IO_CMI750 defined in line 66; used 1 times
IO_QBUS defined in line 69; used 1 times
IO_SBI780 defined in line 65; used 1 times
IO_XXX730 defined in line 67; used 1 times
VAX_MAX defined in line 59; used 1 times

Usage of this include

cpu.h used 44 times
Last modified: 1986-06-05
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1331
Valid CSS Valid XHTML 1.0 Strict