Changeset View
Changeset View
Standalone View
Standalone View
sys/powerpc/powerpc/pmap_dispatch.c
Show All 37 Lines | |||||
* MMU handler when pmap_bootstrap() is called. | * MMU handler when pmap_bootstrap() is called. | ||||
* | * | ||||
* It is required that mutex_init() be called before pmap_bootstrap(), | * It is required that mutex_init() be called before pmap_bootstrap(), | ||||
* as the PMAP layer makes extensive use of mutexes. | * as the PMAP layer makes extensive use of mutexes. | ||||
*/ | */ | ||||
#include <sys/param.h> | #include <sys/param.h> | ||||
#include <sys/kernel.h> | #include <sys/kernel.h> | ||||
#include <sys/conf.h> | |||||
#include <sys/lock.h> | #include <sys/lock.h> | ||||
#include <sys/ktr.h> | #include <sys/ktr.h> | ||||
#include <sys/mutex.h> | #include <sys/mutex.h> | ||||
#include <sys/systm.h> | #include <sys/systm.h> | ||||
#include <vm/vm.h> | #include <vm/vm.h> | ||||
#include <vm/vm_page.h> | #include <vm/vm_page.h> | ||||
#include <machine/dump.h> | |||||
#include <machine/md_var.h> | |||||
#include <machine/mmuvar.h> | #include <machine/mmuvar.h> | ||||
#include <machine/smp.h> | #include <machine/smp.h> | ||||
#include "mmu_if.h" | #include "mmu_if.h" | ||||
static mmu_def_t *mmu_def_impl; | static mmu_def_t *mmu_def_impl; | ||||
static mmu_t mmu_obj; | static mmu_t mmu_obj; | ||||
static struct mmu_kobj mmu_kernel_obj; | static struct mmu_kobj mmu_kernel_obj; | ||||
▲ Show 20 Lines • Show All 455 Lines • ▼ Show 20 Lines | |||||
void | void | ||||
pmap_sync_icache(pmap_t pm, vm_offset_t va, vm_size_t sz) | pmap_sync_icache(pmap_t pm, vm_offset_t va, vm_size_t sz) | ||||
{ | { | ||||
CTR4(KTR_PMAP, "%s(%p, %#x, %#x)", __func__, pm, va, sz); | CTR4(KTR_PMAP, "%s(%p, %#x, %#x)", __func__, pm, va, sz); | ||||
return (MMU_SYNC_ICACHE(mmu_obj, pm, va, sz)); | return (MMU_SYNC_ICACHE(mmu_obj, pm, va, sz)); | ||||
} | } | ||||
vm_offset_t | void | ||||
pmap_dumpsys_map(struct pmap_md *md, vm_size_t ofs, vm_size_t *sz) | dumpsys_map_chunk(vm_paddr_t pa, size_t sz, void **va) | ||||
{ | { | ||||
CTR4(KTR_PMAP, "%s(%p, %#x, %#x)", __func__, md, ofs, *sz); | CTR4(KTR_PMAP, "%s(%#jx, %#zx, %p)", __func__, (uintmax_t)pa, sz, va); | ||||
return (MMU_DUMPSYS_MAP(mmu_obj, md, ofs, sz)); | return (MMU_DUMPSYS_MAP(mmu_obj, pa, sz, va)); | ||||
} | } | ||||
void | void | ||||
pmap_dumpsys_unmap(struct pmap_md *md, vm_size_t ofs, vm_offset_t va) | dumpsys_unmap_chunk(vm_paddr_t pa, size_t sz, void *va) | ||||
{ | { | ||||
CTR4(KTR_PMAP, "%s(%p, %#x, %#x)", __func__, md, ofs, va); | CTR4(KTR_PMAP, "%s(%#jx, %#zx, %p)", __func__, (uintmax_t)pa, sz, va); | ||||
return (MMU_DUMPSYS_UNMAP(mmu_obj, md, ofs, va)); | return (MMU_DUMPSYS_UNMAP(mmu_obj, pa, sz, va)); | ||||
} | } | ||||
struct pmap_md * | void | ||||
pmap_scan_md(struct pmap_md *prev) | dumpsys_md_pa_init(void) | ||||
{ | { | ||||
CTR2(KTR_PMAP, "%s(%p)", __func__, prev); | CTR1(KTR_PMAP, "%s()", __func__); | ||||
return (MMU_SCAN_MD(mmu_obj, prev)); | return (MMU_SCAN_INIT(mmu_obj)); | ||||
} | } | ||||
/* | /* | ||||
* MMU install routines. Highest priority wins, equal priority also | * MMU install routines. Highest priority wins, equal priority also | ||||
* overrides allowing last-set to win. | * overrides allowing last-set to win. | ||||
*/ | */ | ||||
SET_DECLARE(mmu_set, mmu_def_t); | SET_DECLARE(mmu_set, mmu_def_t); | ||||
Show All 25 Lines |