Changeset View
Changeset View
Standalone View
Standalone View
sys/compat/linux/linux_vdso.c
Show First 20 Lines • Show All 79 Lines • ▼ Show 20 Lines | __elfN(linux_shared_page_init)(char **mapping) | ||||
vm_object_t obj; | vm_object_t obj; | ||||
vm_offset_t addr; | vm_offset_t addr; | ||||
obj = vm_pager_allocate(OBJT_PHYS, 0, PAGE_SIZE, | obj = vm_pager_allocate(OBJT_PHYS, 0, PAGE_SIZE, | ||||
VM_PROT_DEFAULT, 0, NULL); | VM_PROT_DEFAULT, 0, NULL); | ||||
VM_OBJECT_WLOCK(obj); | VM_OBJECT_WLOCK(obj); | ||||
m = vm_page_grab(obj, 0, VM_ALLOC_ZERO); | m = vm_page_grab(obj, 0, VM_ALLOC_ZERO); | ||||
VM_OBJECT_WUNLOCK(obj); | VM_OBJECT_WUNLOCK(obj); | ||||
vm_page_valid(m); | /* XXX This page should be wired. */ | ||||
kib: There too. | |||||
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 | ||||
▲ Show 20 Lines • Show All 149 Lines • Show Last 20 Lines |
There too.