KSTACK_GUARD_PAGES
#ifndef KSTACK_GUARD_PAGES
va = virtual_avail + KSTACK_GUARD_PAGES * PAGE_SIZE;
va = virtual_avail + KSTACK_GUARD_PAGES * PAGE_SIZE;
va = virtual_avail + KSTACK_GUARD_PAGES * PAGE_SIZE;
kstack0 = virtual_avail + KSTACK_GUARD_PAGES * PAGE_SIZE;
virtual_avail += KSTACK_GUARD_PAGES * PAGE_SIZE + kstack0_sz;
if (size != ptoa(kstack_pages + KSTACK_GUARD_PAGES)) {
if (size == ptoa(kstack_pages + KSTACK_GUARD_PAGES)) {
if (size != ptoa(kstack_pages + KSTACK_GUARD_PAGES)) {
return (KVA_KSTACK_QUANTUM * (kstack_pages + KSTACK_GUARD_PAGES));
size_t kpages = kstack_pages + KSTACK_GUARD_PAGES;
size_t kpages __diagused = kstack_pages + KSTACK_GUARD_PAGES;
ks = vm_thread_alloc_kstack_kva(ptoa(pages + KSTACK_GUARD_PAGES),
ks += ptoa(KSTACK_GUARD_PAGES);
vm_thread_free_kstack_kva(ks - ptoa(KSTACK_GUARD_PAGES),
ptoa(pages + KSTACK_GUARD_PAGES), domain);
if (KSTACK_GUARD_PAGES != 0) {
pmap_qremove(ks - ptoa(KSTACK_GUARD_PAGES),
KSTACK_GUARD_PAGES);
vm_thread_free_kstack_kva(ks - (KSTACK_GUARD_PAGES * PAGE_SIZE),
ptoa(pages + KSTACK_GUARD_PAGES), domain);
if (KSTACK_GUARD_PAGES == 0 || kpages != kstack_pages) {
KASSERT(pindex % (kpages + KSTACK_GUARD_PAGES) >= KSTACK_GUARD_PAGES,
(pindex / (kpages + KSTACK_GUARD_PAGES) + 1) * KSTACK_GUARD_PAGES);
kstack_quantum -= (kstack_pages + KSTACK_GUARD_PAGES) * PAGE_SIZE;