Lines Matching refs:stack
92 #define stack_next(stack) \ argument
93 (*((vm_offset_t *)((stack) + kernel_stack_size) - 1))
143 vm_offset_t stack = 0; in stack_alloc_internal() local
151 stack = stack_free_list; in stack_alloc_internal()
152 if (stack != 0) { in stack_alloc_internal()
153 stack_free_list = stack_next(stack); in stack_alloc_internal()
165 if (stack == 0) { in stack_alloc_internal()
172 kernel_memory_allocate(kernel_map, &stack, in stack_alloc_internal()
181 stack += PAGE_SIZE; in stack_alloc_internal()
183 return stack; in stack_alloc_internal()
210 vm_offset_t stack = machine_stack_detach(thread); in stack_free() local
212 assert(stack); in stack_free()
213 if (stack != thread->reserved_stack) { in stack_free()
214 stack_free_stack(stack); in stack_free()
229 vm_offset_t stack) in stack_free_stack() argument
236 assert(kasan_check_shadow(stack, kernel_stack_size, 0)); in stack_free_stack()
242 stack_next(stack) = cache->free; in stack_free_stack()
243 cache->free = stack; in stack_free_stack()
247 stack_next(stack) = stack_free_list; in stack_free_stack()
248 stack_free_list = stack; in stack_free_stack()
273 vm_offset_t stack; in stack_alloc_try() local
276 stack = cache->free; in stack_alloc_try()
277 if (stack != 0) { in stack_alloc_try()
278 cache->free = stack_next(stack); in stack_alloc_try()
283 stack = stack_free_list; in stack_alloc_try()
284 if (stack != 0) { in stack_alloc_try()
285 stack_free_list = stack_next(stack); in stack_alloc_try()
293 if (stack != 0 || (stack = thread->reserved_stack) != 0) { in stack_alloc_try()
294 machine_stack_attach(thread, stack); in stack_alloc_try()
314 vm_offset_t stack; in stack_collect() local
324 stack = stack_free_list; in stack_collect()
325 stack_free_list = stack_next(stack); in stack_collect()
338 stack = (vm_offset_t)vm_map_trunc_page( in stack_collect()
339 stack, in stack_collect()
341 stack -= PAGE_SIZE; in stack_collect()
342 kmem_free(kernel_map, stack, kernel_stack_size + ptoa(2)); in stack_collect()
343 stack = 0; in stack_collect()