Changeset View
Changeset View
Standalone View
Standalone View
sys/compat/linux/linux_vdso.c
Show First 20 Lines • Show All 87 Lines • ▼ Show 20 Lines | __elfN(linux_shared_page_init)(char **mapping) | ||||
vm_page_xunbusy(m); | vm_page_xunbusy(m); | ||||
addr = kva_alloc(PAGE_SIZE); | addr = kva_alloc(PAGE_SIZE); | ||||
pmap_qenter(addr, &m, 1); | pmap_qenter(addr, &m, 1); | ||||
*mapping = (char *)addr; | *mapping = (char *)addr; | ||||
return (obj); | return (obj); | ||||
} | } | ||||
void | void | ||||
__elfN(linux_shared_page_fini)(vm_object_t obj) | __elfN(linux_shared_page_fini)(vm_object_t obj, void *mapping) | ||||
{ | { | ||||
vm_offset_t va; | |||||
va = (vm_offset_t)mapping; | |||||
pmap_qremove(va, 1); | |||||
kva_free(va, PAGE_SIZE); | |||||
vm_object_deallocate(obj); | vm_object_deallocate(obj); | ||||
} | } | ||||
void | void | ||||
__elfN(linux_vdso_fixup)(struct sysentvec *sv) | __elfN(linux_vdso_fixup)(struct sysentvec *sv) | ||||
{ | { | ||||
Elf_Ehdr *ehdr; | Elf_Ehdr *ehdr; | ||||
Elf_Shdr *shdr; | Elf_Shdr *shdr; | ||||
▲ Show 20 Lines • Show All 138 Lines • Show Last 20 Lines |