diff options
author | grehan <grehan@FreeBSD.org> | 2005-11-08 06:48:08 +0000 |
---|---|---|
committer | grehan <grehan@FreeBSD.org> | 2005-11-08 06:48:08 +0000 |
commit | eff5b98fc40055bf85d38836cdcfebf6486cf0d2 (patch) | |
tree | c090032365f12df1f06212e900d4fe33ca492b60 /sys/powerpc/include/pmap.h | |
parent | bf6d4253ee61e7325d3cd61086924ae203e9726c (diff) | |
download | FreeBSD-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.h | 10 |
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_ */ |