Changeset View
Changeset View
Standalone View
Standalone View
sys/powerpc/aim/mmu_oea.c
Show First 20 Lines • Show All 321 Lines • ▼ Show 20 Lines | |||||
void moea_page_set_memattr(vm_page_t m, vm_memattr_t ma); | void moea_page_set_memattr(vm_page_t m, vm_memattr_t ma); | ||||
boolean_t moea_dev_direct_mapped(vm_paddr_t, vm_size_t); | boolean_t moea_dev_direct_mapped(vm_paddr_t, vm_size_t); | ||||
static void moea_sync_icache(pmap_t, vm_offset_t, vm_size_t); | static void moea_sync_icache(pmap_t, vm_offset_t, vm_size_t); | ||||
void moea_dumpsys_map(vm_paddr_t pa, size_t sz, void **va); | void moea_dumpsys_map(vm_paddr_t pa, size_t sz, void **va); | ||||
void moea_scan_init(void); | void moea_scan_init(void); | ||||
vm_offset_t moea_quick_enter_page(vm_page_t m); | vm_offset_t moea_quick_enter_page(vm_page_t m); | ||||
void moea_quick_remove_page(vm_offset_t addr); | void moea_quick_remove_page(vm_offset_t addr); | ||||
boolean_t moea_page_is_mapped(vm_page_t m); | boolean_t moea_page_is_mapped(vm_page_t m); | ||||
bool moea_ps_enabled(pmap_t pmap); | |||||
static int moea_map_user_ptr(pmap_t pm, | static int moea_map_user_ptr(pmap_t pm, | ||||
volatile const void *uaddr, void **kaddr, size_t ulen, size_t *klen); | volatile const void *uaddr, void **kaddr, size_t ulen, size_t *klen); | ||||
static int moea_decode_kernel_ptr(vm_offset_t addr, | static int moea_decode_kernel_ptr(vm_offset_t addr, | ||||
int *is_user, vm_offset_t *decoded_addr); | int *is_user, vm_offset_t *decoded_addr); | ||||
static struct pmap_funcs moea_methods = { | static struct pmap_funcs moea_methods = { | ||||
.clear_modify = moea_clear_modify, | .clear_modify = moea_clear_modify, | ||||
.copy_page = moea_copy_page, | .copy_page = moea_copy_page, | ||||
Show All 27 Lines | static struct pmap_funcs moea_methods = { | ||||
.zero_page = moea_zero_page, | .zero_page = moea_zero_page, | ||||
.zero_page_area = moea_zero_page_area, | .zero_page_area = moea_zero_page_area, | ||||
.activate = moea_activate, | .activate = moea_activate, | ||||
.deactivate = moea_deactivate, | .deactivate = moea_deactivate, | ||||
.page_set_memattr = moea_page_set_memattr, | .page_set_memattr = moea_page_set_memattr, | ||||
.quick_enter_page = moea_quick_enter_page, | .quick_enter_page = moea_quick_enter_page, | ||||
.quick_remove_page = moea_quick_remove_page, | .quick_remove_page = moea_quick_remove_page, | ||||
.page_is_mapped = moea_page_is_mapped, | .page_is_mapped = moea_page_is_mapped, | ||||
.ps_enabled = moea_ps_enabled, | |||||
/* Internal interfaces */ | /* Internal interfaces */ | ||||
.bootstrap = moea_bootstrap, | .bootstrap = moea_bootstrap, | ||||
.cpu_bootstrap = moea_cpu_bootstrap, | .cpu_bootstrap = moea_cpu_bootstrap, | ||||
.mapdev_attr = moea_mapdev_attr, | .mapdev_attr = moea_mapdev_attr, | ||||
.mapdev = moea_mapdev, | .mapdev = moea_mapdev, | ||||
.unmapdev = moea_unmapdev, | .unmapdev = moea_unmapdev, | ||||
.kextract = moea_kextract, | .kextract = moea_kextract, | ||||
▲ Show 20 Lines • Show All 734 Lines • ▼ Show 20 Lines | |||||
moea_quick_remove_page(vm_offset_t addr) | moea_quick_remove_page(vm_offset_t addr) | ||||
{ | { | ||||
} | } | ||||
boolean_t | boolean_t | ||||
moea_page_is_mapped(vm_page_t m) | moea_page_is_mapped(vm_page_t m) | ||||
{ | { | ||||
return (!LIST_EMPTY(&(m)->md.mdpg_pvoh)); | return (!LIST_EMPTY(&(m)->md.mdpg_pvoh)); | ||||
} | |||||
bool | |||||
moea_ps_enabled(pmap_t pmap __unused) | |||||
jah: For PowerPC I believe pmap_nomethod() dispatch should work for the purpose of this change… | |||||
{ | |||||
return (false); | |||||
} | } | ||||
/* | /* | ||||
* Map the given physical page at the specified virtual address in the | * Map the given physical page at the specified virtual address in the | ||||
* target pmap with the protection requested. If specified the page | * target pmap with the protection requested. If specified the page | ||||
* will be wired down. | * will be wired down. | ||||
*/ | */ | ||||
int | int | ||||
▲ Show 20 Lines • Show All 1,699 Lines • Show Last 20 Lines |
For PowerPC I believe pmap_nomethod() dispatch should work for the purpose of this change without needing these added functions. In fact it seems that it already is for 64-bit Book E MMUs. But it seemed less fragile to provide the real dispatch entries since we already allocate them anyway.