Home | History | Annotate | Line # | Download | only in include
pmap.h revision 1.1
      1  1.1  glass #ifndef	_PMAP_MACHINE_
      2  1.1  glass #define	_PMAP_MACHINE_
      3  1.1  glass 
      4  1.1  glass /*
      5  1.1  glass  * Pmap stuff
      6  1.1  glass  * [some ideas borrowed from torek, but no code]
      7  1.1  glass  */
      8  1.1  glass 
      9  1.1  glass struct context_state {
     10  1.1  glass     queue_chain_t  context_link;
     11  1.1  glass     int            context_num;
     12  1.1  glass     pmap_t         context_upmap;
     13  1.1  glass };
     14  1.1  glass 
     15  1.1  glass struct pmap {
     16  1.1  glass     int		                pm_refcount;	/* pmap reference count */
     17  1.1  glass     simple_lock_data_t	        pm_lock;	/* lock on pmap */
     18  1.1  glass     struct pmap_statistics	pm_stats;	/* pmap statistics */
     19  1.1  glass     context_t                   pm_context;     /* context if any */
     20  1.1  glass     int                         pm_version;
     21  1.1  glass     unsigned char               *pm_segmap;
     22  1.1  glass };
     23  1.1  glass 
     24  1.1  glass typedef struct pmap *pmap_t;
     25  1.1  glass 
     26  1.1  glass extern pmap_t kernel_pmap;
     27  1.1  glass 
     28  1.1  glass struct pmeg_state {
     29  1.1  glass     queue_chain_t  pmeg_link;
     30  1.1  glass     int            pmeg_index;
     31  1.1  glass     pmap_t         pmeg_owner;
     32  1.1  glass     int            pmeg_owner_version;
     33  1.1  glass     vm_offset_t    pmeg_va;
     34  1.1  glass     int            pmeg_wired_count;
     35  1.1  glass     int            pmeg_reserved;
     36  1.1  glass     int            pmeg_vpages;
     37  1.1  glass };
     38  1.1  glass 
     39  1.1  glass typedef struct pmeg_state *pmeg_t;
     40  1.1  glass 
     41  1.1  glass #define PMAP_ACTIVATE(pmap, pcbp, iscurproc) \
     42  1.1  glass       pmap_activate(pmap, pcbp, iscurproc);
     43  1.1  glass #define PMAP_DEACTIVATE(pmap, pcbp) \
     44  1.1  glass       pmap_deactivate(pmap, pcbp)
     45  1.1  glass 
     46  1.1  glass #define	pmap_kernel()			(kernel_pmap)
     47  1.1  glass 
     48  1.1  glass /* like the sparc port, use the lower bits of a pa which must be page
     49  1.1  glass  *  aligned anyway to pass memtype, caching information.
     50  1.1  glass  */
     51  1.1  glass #define PMAP_MMEM      0x0
     52  1.1  glass #define PMAP_OBIO      0x1
     53  1.1  glass #define PMAP_VME16D    0x2
     54  1.1  glass #define PMAP_VME32D    0x3
     55  1.1  glass #define PMAP_MEMMASK   0x3
     56  1.1  glass #define PMAP_NC        0x4
     57  1.1  glass #define PMAP_SPECMASK  0x7
     58  1.1  glass 
     59  1.1  glass #endif	_PMAP_MACHINE_
     60