Annotation of researchv9/sys/sun3/cpu.h, revision 1.1.1.1

1.1       root        1: /*      @(#)cpu.h 1.1 86/02/03 SMI      */
                      2: 
                      3: /*
                      4:  * Copyright (c) 1985 by Sun Microsystems, Inc.
                      5:  *
                      6:  * This file is intended to contain the specific details
                      7:  * of various implementations of a given architecture.
                      8:  */
                      9: #ifndef LOCORE
                     10: #include "../machine/sunromvec.h"
                     11: #endif !LOCORE
                     12: 
                     13: #define        CPU_ARCH        0xf0            /* mask for architecture bits */
                     14: #define        SUN3_ARCH       0x10            /* arch value for Sun 3 */
                     15: 
                     16: #define        CPU_MACH        0x0f            /* mask for machine implementation */
                     17: #define        MACH_160        0x01
                     18: #define        MACH_50         0x02
                     19: #define        MACH_260        0x03
                     20: 
                     21: #define CPU_SUN3_160   (SUN3_ARCH + MACH_160)
                     22: #define CPU_SUN3_50    (SUN3_ARCH + MACH_50)
                     23: #define CPU_SUN3_260   (SUN3_ARCH + MACH_260)
                     24: 
                     25: #if defined(KERNEL) && !defined(LOCORE)
                     26: int cpu;                               /* machine type we are running on */
                     27: int dvmasize;                          /* usable dvma size in clicks */
                     28: int fbobmemavail;                      /* video copy memory is available */
                     29: #endif defined(KERNEL) && !defined(LOCORE)
                     30: 
                     31: #ifndef LOCORE
                     32: /*
                     33:  * The context structure is used to allocate
                     34:  * contexts and maintains the pmeg allocation
                     35:  * information for the context.
                     36:  */
                     37: struct context {
                     38:        int     ctx_time;               /* pseudo-time for ctx lru */
                     39:        u_short ctx_context;            /* bits to load into context register */
                     40:        short   ctx_tdmax;              /* max text or data seg used */
                     41:        short   ctx_smin;               /* min stack segment used */
                     42:        struct  proc *ctx_procp;        /* back pointer to proc structure */
                     43:        u_char  ctx_pmeg[NSEGMAP];      /* pmeg allocation for this context */
                     44: };
                     45: 
                     46: /*
                     47:  * CSEG is the virtual segment reserved for temporary operations.
                     48:  * We use the segment immediately before the start of monitor area.
                     49:  */
                     50: #define        CSEG    ((MONSTART - NBSG) >> SGSHIFT)
                     51: 
                     52: /*
                     53:  * The pmeg structure allocates the
                     54:  * hardware page map entry groups.
                     55:  */
                     56: struct pmeg {
                     57:        struct  pmeg *pm_forw;          /* forward link */
                     58:        struct  pmeg *pm_back;          /* backward link */
                     59:        struct  proc *pm_procp;         /* back pointer to proc using */
                     60:        struct  pte *pm_pte;            /* pointer to pte's mapping */
                     61:        short   pm_seg;                 /* seg within process address space */
                     62:        short   pm_count;               /* number of valid pte's in group */
                     63:        int     pm_time;                /* last "time" pmeg was unloaded */
                     64: };
                     65: 
                     66: #ifdef KERNEL
                     67: extern struct context context[];
                     68: extern struct pmeg pmeg[];
                     69: extern struct pmeg pmeghead;
                     70: extern int kernpmeg;
                     71: #endif KERNEL
                     72: #endif !LOCORE
                     73: 
                     74: /*
                     75:  * Various I/O space related constants
                     76:  */
                     77: #define        VME16_BASE      0xFFFF0000
                     78: #define        VME16_SIZE      (1<<16)
                     79: #define        VME16_MASK      (VME16_SIZE-1)
                     80: 
                     81: #define        VME24_BASE      0xFF000000
                     82: #define        VME24_SIZE      (1<<24)
                     83: #define        VME24_MASK      (VME24_SIZE-1)
                     84: 
                     85: /*
                     86:  * The Basic DVMA space size for all Sun-3 implementations
                     87:  * is given by DVMASIZE.  The actual usable dvma size
                     88:  * (in clicks) is given by the dvmasize variable declared
                     89:  * above (for compatibility with Sun-2).
                     90:  */
                     91: #define        DVMASIZE        0x100000
                     92: 
                     93: /*
                     94:  * FBSIZE is the amount of memory we will use for the frame buffer 
                     95:  * copy region if the copy mode of the frame buffer is to be used.
                     96:  */
                     97: #define FBSIZE   0x20000       /* size of frame buffer memory region */
                     98: #define OBFBADDR 0x100000      /* location of frame buffer in memory */

unix.superglobalmegacorp.com

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