From 5501d40bb905f88fa25e4d3666eec4ec6df7c3ea Mon Sep 17 00:00:00 2001 From: Jake Burkholder Date: Sun, 16 Mar 2003 04:16:03 +0000 Subject: [PATCH] Made the prototypes for pmap_kenter and pmap_kremove MD. These functions are machine dependent because they are not required to update the tlb when mappings are added or removed, and doing so is machine dependent. In addition, an implementation may require that pages mapped with pmap_kenter have a backing vm_page_t, which is not necessarily true of all physical pages, and so may choose to pass the vm_page_t to pmap_kenter instead of the physical address in order to make this requirement clear. --- sys/alpha/include/pmap.h | 2 ++ sys/amd64/include/pmap.h | 2 ++ sys/i386/include/pmap.h | 2 ++ sys/ia64/include/pmap.h | 2 ++ sys/powerpc/include/pmap.h | 2 ++ sys/sparc64/include/pmap.h | 2 ++ sys/vm/pmap.h | 2 -- 7 files changed, 12 insertions(+), 2 deletions(-) diff --git a/sys/alpha/include/pmap.h b/sys/alpha/include/pmap.h index fdfc7e4518f..01b29d57192 100644 --- a/sys/alpha/include/pmap.h +++ b/sys/alpha/include/pmap.h @@ -224,6 +224,8 @@ struct vmspace; vm_offset_t pmap_steal_memory(vm_size_t); void pmap_bootstrap(vm_offset_t, u_int); +void pmap_kenter(vm_offset_t va, vm_offset_t pa); +void pmap_kremove(vm_offset_t); void pmap_setdevram(unsigned long long basea, vm_offset_t sizea); int pmap_uses_prom_console(void); void *pmap_mapdev(vm_offset_t, vm_size_t); diff --git a/sys/amd64/include/pmap.h b/sys/amd64/include/pmap.h index 3c8d410a3d0..92493e1cc1f 100644 --- a/sys/amd64/include/pmap.h +++ b/sys/amd64/include/pmap.h @@ -247,6 +247,8 @@ extern vm_offset_t virtual_avail; extern vm_offset_t virtual_end; void pmap_bootstrap(vm_offset_t, vm_offset_t); +void pmap_kenter(vm_offset_t va, vm_offset_t pa); +void pmap_kremove(vm_offset_t); void *pmap_mapdev(vm_offset_t, vm_size_t); void pmap_unmapdev(vm_offset_t, vm_size_t); pt_entry_t *pmap_pte(pmap_t, vm_offset_t) __pure2; diff --git a/sys/i386/include/pmap.h b/sys/i386/include/pmap.h index 3c8d410a3d0..92493e1cc1f 100644 --- a/sys/i386/include/pmap.h +++ b/sys/i386/include/pmap.h @@ -247,6 +247,8 @@ extern vm_offset_t virtual_avail; extern vm_offset_t virtual_end; void pmap_bootstrap(vm_offset_t, vm_offset_t); +void pmap_kenter(vm_offset_t va, vm_offset_t pa); +void pmap_kremove(vm_offset_t); void *pmap_mapdev(vm_offset_t, vm_size_t); void pmap_unmapdev(vm_offset_t, vm_size_t); pt_entry_t *pmap_pte(pmap_t, vm_offset_t) __pure2; diff --git a/sys/ia64/include/pmap.h b/sys/ia64/include/pmap.h index e2f6130648b..2644899e24b 100644 --- a/sys/ia64/include/pmap.h +++ b/sys/ia64/include/pmap.h @@ -126,6 +126,8 @@ extern vm_offset_t virtual_end; vm_offset_t pmap_steal_memory(vm_size_t); void pmap_bootstrap(void); +void pmap_kenter(vm_offset_t va, vm_offset_t pa); +void pmap_kremove(vm_offset_t); void pmap_setdevram(unsigned long long basea, vm_offset_t sizea); int pmap_uses_prom_console(void); void *pmap_mapdev(vm_offset_t, vm_size_t); diff --git a/sys/powerpc/include/pmap.h b/sys/powerpc/include/pmap.h index 84196054e2e..e737fad04e1 100644 --- a/sys/powerpc/include/pmap.h +++ b/sys/powerpc/include/pmap.h @@ -69,6 +69,8 @@ extern struct pmap kernel_pmap_store; #ifdef _KERNEL void pmap_bootstrap(vm_offset_t, vm_offset_t); +void pmap_kenter(vm_offset_t va, vm_offset_t pa); +void pmap_kremove(vm_offset_t); void *pmap_mapdev(vm_offset_t, vm_size_t); void pmap_unmapdev(vm_offset_t, vm_size_t); void pmap_deactivate(struct thread *); diff --git a/sys/sparc64/include/pmap.h b/sys/sparc64/include/pmap.h index a14673e2fad..b0325f9db4c 100644 --- a/sys/sparc64/include/pmap.h +++ b/sys/sparc64/include/pmap.h @@ -79,6 +79,8 @@ struct pmap { void pmap_bootstrap(vm_offset_t ekva); void pmap_context_rollover(void); vm_offset_t pmap_kextract(vm_offset_t va); +void pmap_kenter(vm_offset_t va, vm_offset_t pa); +void pmap_kremove(vm_offset_t); void pmap_kenter_flags(vm_offset_t va, vm_offset_t pa, u_long flags); void pmap_kremove_flags(vm_offset_t va); diff --git a/sys/vm/pmap.h b/sys/vm/pmap.h index a403f6f7335..7cc692632c3 100644 --- a/sys/vm/pmap.h +++ b/sys/vm/pmap.h @@ -111,8 +111,6 @@ void pmap_growkernel(vm_offset_t); void pmap_init(vm_offset_t, vm_offset_t); boolean_t pmap_is_modified(vm_page_t m); boolean_t pmap_ts_referenced(vm_page_t m); -void pmap_kenter(vm_offset_t va, vm_offset_t pa); -void pmap_kremove(vm_offset_t); vm_offset_t pmap_map(vm_offset_t *, vm_offset_t, vm_offset_t, int); void pmap_object_init_pt(pmap_t pmap, vm_offset_t addr, vm_object_t object, vm_pindex_t pindex, vm_offset_t size,