Changeset View
Changeset View
Standalone View
Standalone View
head/sys/vm/vm_glue.c
Show First 20 Lines • Show All 334 Lines • ▼ Show 20 Lines | if (KSTACK_GUARD_PAGES != 0) { | ||||
ks += KSTACK_GUARD_PAGES * PAGE_SIZE; | ks += KSTACK_GUARD_PAGES * PAGE_SIZE; | ||||
} | } | ||||
/* | /* | ||||
* For the length of the stack, link in a real page of ram for each | * For the length of the stack, link in a real page of ram for each | ||||
* page of stack. | * page of stack. | ||||
*/ | */ | ||||
VM_OBJECT_WLOCK(ksobj); | VM_OBJECT_WLOCK(ksobj); | ||||
(void)vm_page_grab_pages(ksobj, 0, VM_ALLOC_NORMAL | VM_ALLOC_NOBUSY | | (void)vm_page_grab_pages(ksobj, 0, VM_ALLOC_NORMAL | VM_ALLOC_WIRED, | ||||
VM_ALLOC_WIRED, ma, pages); | ma, pages); | ||||
for (i = 0; i < pages; i++) | for (i = 0; i < pages; i++) { | ||||
ma[i]->valid = VM_PAGE_BITS_ALL; | vm_page_valid(ma[i]); | ||||
vm_page_xunbusy(ma[i]); | |||||
} | |||||
VM_OBJECT_WUNLOCK(ksobj); | VM_OBJECT_WUNLOCK(ksobj); | ||||
pmap_qenter(ks, ma, pages); | pmap_qenter(ks, ma, pages); | ||||
*ksobjp = ksobj; | *ksobjp = ksobj; | ||||
return (ks); | return (ks); | ||||
} | } | ||||
static void | static void | ||||
▲ Show 20 Lines • Show All 250 Lines • Show Last 20 Lines |