summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/include/pmap.h
diff options
context:
space:
mode:
authorgrehan <grehan@FreeBSD.org>2005-11-08 06:48:08 +0000
committergrehan <grehan@FreeBSD.org>2005-11-08 06:48:08 +0000
commiteff5b98fc40055bf85d38836cdcfebf6486cf0d2 (patch)
treec090032365f12df1f06212e900d4fe33ca492b60 /sys/powerpc/include/pmap.h
parentbf6d4253ee61e7325d3cd61086924ae203e9726c (diff)
downloadFreeBSD-src-eff5b98fc40055bf85d38836cdcfebf6486cf0d2.zip
FreeBSD-src-eff5b98fc40055bf85d38836cdcfebf6486cf0d2.tar.gz
Insert a layer of indirection to the pmap code, using a kobj for
the interface. This allows run-time selection of MMU code, based on CPU-type detection, or tunable-overrides when testing new code. Pre-requisite for G5 support. conf/files.powerpc - remove pmap.c - add mmu_if.h, mmu_oea.c, pmap_dispatch.c powerpc/include/mmuvar.h - definitions for MMU implementations powerpc/include/pmap.h - remove pmap_pte_spill declaration - add pmap_mmu_install declaration - size the phys_avail array - pmap_bootstrapped is now global-scope powerpc/powerpc/machdep.c - call kobj_machdep_init early in the boot sequence to allow kobj usage prior to SI_SUB_LOCK - install the OEA pmap code. This will be moved to CPU-specific init code in the future. powerpc/powerpc/mmu_if.m - Kobj MMU interface definitions powerpc/powerpc/pmap_dispatch.c - central dispatch for pmap calls - contains the global mmu kobj and the routine to locate the the mmu implementation and init the kobj
Diffstat (limited to 'sys/powerpc/include/pmap.h')
-rw-r--r--sys/powerpc/include/pmap.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/powerpc/include/pmap.h b/sys/powerpc/include/pmap.h
index e28042c..57c6f61 100644
--- a/sys/powerpc/include/pmap.h
+++ b/sys/powerpc/include/pmap.h
@@ -94,19 +94,21 @@ void *pmap_mapdev(vm_offset_t, vm_size_t);
void pmap_unmapdev(vm_offset_t, vm_size_t);
void pmap_deactivate(struct thread *);
vm_offset_t pmap_kextract(vm_offset_t);
-
-int pmap_pte_spill(vm_offset_t);
-
int pmap_dev_direct_mapped(vm_offset_t, vm_size_t);
+boolean_t pmap_mmu_install(char *name, int prio);
+
#define vtophys(va) pmap_kextract(((vm_offset_t)(va)))
-extern vm_offset_t phys_avail[];
+#define PHYS_AVAIL_SZ 128
+extern vm_offset_t phys_avail[PHYS_AVAIL_SZ];
extern vm_offset_t virtual_avail;
extern vm_offset_t virtual_end;
extern vm_offset_t msgbuf_phys;
+extern int pmap_bootstrapped;
+
#endif
#endif /* !_MACHINE_PMAP_H_ */
OpenPOWER on IntegriCloud