cleanups
[unix-history] / usr / src / sys / vax / include / cpu.h
index 8793e0b..43fd6ef 100644 (file)
@@ -1,9 +1,9 @@
 /*
 /*
- * Copyright (c) 1982 Regents of the University of California.
+ * Copyright (c) 1982, 1986 Regents of the University of California.
  * All rights reserved.  The Berkeley software License Agreement
  * specifies the terms and conditions for redistribution.
  *
  * All rights reserved.  The Berkeley software License Agreement
  * specifies the terms and conditions for redistribution.
  *
- *     @(#)cpu.h       6.7 (Berkeley) %G%
+ *     @(#)cpu.h       7.2 (Berkeley) %G%
  */
 
 #ifndef LOCORE
  */
 
 #ifndef LOCORE
@@ -40,6 +40,10 @@ union cpusid {
                        :8,                     /* reserved */
                        cp_type:8;              /* VAX_730 */
        } cpu730;
                        :8,                     /* reserved */
                        cp_type:8;              /* VAX_730 */
        } cpu730;
+       struct cpu630 {
+               u_int   :24,                    /* reserved */
+                       cp_type:8;              /* VAX_630 */
+       } cpu630;
 };
 #endif
 /*
 };
 #endif
 /*
@@ -50,8 +54,9 @@ union cpusid {
 #define        VAX_750         2
 #define        VAX_730         3
 #define VAX_8600       4
 #define        VAX_750         2
 #define        VAX_730         3
 #define VAX_8600       4
+#define        VAX_630         8
 
 
-#define        VAX_MAX         4
+#define        VAX_MAX         8
 
 /*
  * Main IO backplane types.
 
 /*
  * Main IO backplane types.
@@ -61,6 +66,7 @@ union cpusid {
 #define        IO_CMI750       2
 #define        IO_XXX730       3
 #define IO_ABUS                4
 #define        IO_CMI750       2
 #define        IO_XXX730       3
 #define IO_ABUS                4
+#define IO_QBUS                5
 
 #ifndef LOCORE
 /*
 
 #ifndef LOCORE
 /*
@@ -73,6 +79,13 @@ struct       percpu {
        struct  iobus *pc_io;           /* descriptions of IO adaptors */
 };
 
        struct  iobus *pc_io;           /* descriptions of IO adaptors */
 };
 
+/*
+ * Generic description of an I/O "adaptor"
+ * (any top-level I/O bus visible to software
+ * and requiring autoconfiguration).
+ * The remainder of the description
+ * is pointed to by io_details.
+ */
 struct iobus {
        int     io_type;                /* io adaptor types */
        caddr_t io_addr;                /* phys address of IO adaptor */
 struct iobus {
        int     io_type;                /* io adaptor types */
        caddr_t io_addr;                /* phys address of IO adaptor */
@@ -86,18 +99,26 @@ struct iobus {
 struct nexusconnect {
        short   psb_nnexus;             /* number of nexus slots */
        struct  nexus *psb_nexbase;     /* base of nexus space */
 struct nexusconnect {
        short   psb_nnexus;             /* number of nexus slots */
        struct  nexus *psb_nexbase;     /* base of nexus space */
-/* we should be able to have just one address for the unibus memories */
-/* and calculate successive addresses by adding to the base, but the 750 */
-/* doesn't obey the sensible rule: uba1 has a lower address than uba0! */
-       caddr_t *psb_umaddr;            /* unibus memory addresses */
+       short   psb_ubatype;            /* type of "unibus adaptor" */
        short   psb_nubabdp;            /* number of bdp's per uba */
        short   psb_nubabdp;            /* number of bdp's per uba */
-       short   psb_haveubasr;          /* have uba status register */
+       caddr_t *psb_umaddr;            /* "unibus" memory addresses */
 /* the 750 has some slots which don't promise to tell you their types */
 /* if this pointer is non-zero, then you get the type from this array */
 /* rather than from the (much more sensible) low byte of the config register */
        short   *psb_nextype;           /* botch */
 };
 
 /* the 750 has some slots which don't promise to tell you their types */
 /* if this pointer is non-zero, then you get the type from this array */
 /* rather than from the (much more sensible) low byte of the config register */
        short   *psb_nextype;           /* botch */
 };
 
+/*
+ * Description of a Q-bus configuration.
+ */
+struct qbus {
+       int     qb_type;                /* type of "unibus adaptor" */
+       int     qb_memsize;             /* size of (used) memory, pages */
+       struct  pte *qb_map;            /* base of map registers */
+       caddr_t qb_maddr;               /* "unibus" memory address */
+       caddr_t qb_iopage;              /* "unibus" IO page address */
+};
+
 #ifdef KERNEL
 int    cpu;
 struct percpu percpu[];
 #ifdef KERNEL
 int    cpu;
 struct percpu percpu[];