aboutsummaryrefslogtreecommitdiff
path: root/sys/i386/include/pmap.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/i386/include/pmap.h')
-rw-r--r--sys/i386/include/pmap.h28
1 files changed, 23 insertions, 5 deletions
diff --git a/sys/i386/include/pmap.h b/sys/i386/include/pmap.h
index 9feb23cce3a3..f71c276cb592 100644
--- a/sys/i386/include/pmap.h
+++ b/sys/i386/include/pmap.h
@@ -42,7 +42,7 @@
*
* from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90
* from: @(#)pmap.h 7.4 (Berkeley) 5/12/91
- * $Id: pmap.h,v 1.5 1993/11/07 17:43:02 wollman Exp $
+ * $Id: pmap.h,v 1.6 1993/11/13 02:25:16 davidg Exp $
*/
#ifndef _PMAP_MACHINE_
@@ -65,8 +65,8 @@ unsigned int
pd_pfnum:20; /* physical page frame number of pte's*/
};
-#define PD_MASK 0xffc00000 /* page directory address bits */
-#define PT_MASK 0x003ff000 /* page table address bits */
+#define PD_MASK 0xffc00000UL /* page directory address bits */
+#define PT_MASK 0x003ff000UL /* page table address bits */
#define PD_SHIFT 22 /* page directory address shift */
#define PG_SHIFT 12 /* page table address shift */
@@ -94,7 +94,7 @@ unsigned int
#define PG_N 0x00000800 /* Non-cacheable */
#define PG_M 0x00000040
#define PG_U 0x00000020
-#define PG_FRAME 0xfffff000
+#define PG_FRAME 0xfffff000UL
#define PG_NOACC 0
#define PG_KR 0x00000000
@@ -199,7 +199,7 @@ extern pmap_t kernel_pmap;
#define PMAP_ACTIVATE(pmapp, pcbp) \
if ((pmapp) != NULL /*&& (pmapp)->pm_pdchanged */) { \
(pcbp)->pcb_cr3 = \
- pmap_extract(kernel_pmap, (pmapp)->pm_pdir); \
+ pmap_extract(kernel_pmap, (vm_offset_t)(pmapp)->pm_pdir); \
if ((pmapp) == &curproc->p_vmspace->vm_pmap) \
load_cr3((pcbp)->pcb_cr3); \
(pmapp)->pm_pdchanged = FALSE; \
@@ -232,6 +232,24 @@ pv_entry_t pv_table; /* array of entries, one per page */
#define pmap_resident_count(pmap) ((pmap)->pm_stats.resident_count)
+extern pmap_t pmap_create(vm_size_t);
+extern void pmap_pinit(struct pmap *);
+extern void pmap_destroy(pmap_t);
+extern void pmap_release(struct pmap *);
+extern void pmap_reference(pmap_t);
+extern void pmap_remove(struct pmap *, vm_offset_t, vm_offset_t);
+extern void pmap_protect(struct pmap *, vm_offset_t, vm_offset_t, vm_prot_t);
+extern void pmap_enter(pmap_t, vm_offset_t, vm_offset_t, vm_prot_t, boolean_t);
+extern void pmap_change_wiring(pmap_t, vm_offset_t, boolean_t);
+extern struct pte *pmap_pte(pmap_t, vm_offset_t);
+extern vm_offset_t pmap_extract(pmap_t, vm_offset_t);
+extern void pmap_copy(pmap_t, pmap_t, vm_offset_t, vm_size_t, vm_offset_t);
+extern void pmap_collect(pmap_t);
+struct pcb; extern void pmap_activate(pmap_t, struct pcb *);
+extern pmap_t pmap_kernel(void);
+extern void pmap_pageable(pmap_t, vm_offset_t, vm_offset_t, boolean_t);
+
+
#endif /* KERNEL */
#endif /* _PMAP_MACHINE_ */