Annotation of 43BSD/sys/vax/cpu.h, revision 1.1.1.1

1.1       root        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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.