- short pc_nnexus; /* number of nexus slots */
- struct nexus *pc_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 *pc_umaddr; /* unibus memory addresses */
- short pc_nubabdp; /* number of bdp's per uba */
- short pc_haveubasr; /* have uba status register */
+ short pc_cpuspeed; /* relative speed of cpu */
+ short pc_nioa; /* number of IO adaptors/nexus blocks */
+ struct iobus *pc_io; /* descriptions of IO adaptors */
+ struct cpuops *pc_ops; /* per-cpu operations */
+};
+
+/*
+ * 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 */
+ int io_size; /* size of an IO space */
+ caddr_t io_details; /* specific to adaptor types */
+};
+
+/*
+ * Description of a main bus that maps "nexi", ala the 780 SBI.
+ */
+struct nexusconnect {
+ short psb_nnexus; /* number of nexus slots */
+ struct nexus *psb_nexbase; /* base of nexus space */
+ short psb_ubatype; /* type of "unibus adaptor" */
+ short psb_nubabdp; /* number of bdp's per uba */
+ caddr_t *psb_umaddr; /* unibus memory addresses */