Lines Matching refs:argkva
1431 struct exec_args_kva *argkva; in exec_prealloc_args_kva() local
1437 argkva = malloc(sizeof(*argkva), M_PARGS, M_WAITOK); in exec_prealloc_args_kva()
1438 argkva->addr = kmap_alloc_wait(exec_map, exec_map_entry_size); in exec_prealloc_args_kva()
1439 argkva->gen = exec_args_gen; in exec_prealloc_args_kva()
1440 SLIST_INSERT_HEAD(&exec_args_kva_freelist, argkva, next); in exec_prealloc_args_kva()
1448 struct exec_args_kva *argkva; in exec_alloc_args_kva() local
1450 argkva = (void *)atomic_readandclear_ptr( in exec_alloc_args_kva()
1452 if (argkva == NULL) { in exec_alloc_args_kva()
1454 while ((argkva = SLIST_FIRST(&exec_args_kva_freelist)) == NULL) in exec_alloc_args_kva()
1460 kasan_mark((void *)argkva->addr, exec_map_entry_size, in exec_alloc_args_kva()
1462 *(struct exec_args_kva **)cookie = argkva; in exec_alloc_args_kva()
1463 return (argkva->addr); in exec_alloc_args_kva()
1467 exec_release_args_kva(struct exec_args_kva *argkva, u_int gen) in exec_release_args_kva() argument
1471 base = argkva->addr; in exec_release_args_kva()
1472 kasan_mark((void *)argkva->addr, 0, exec_map_entry_size, in exec_release_args_kva()
1474 if (argkva->gen != gen) { in exec_release_args_kva()
1477 argkva->gen = gen; in exec_release_args_kva()
1480 (uintptr_t)NULL, (uintptr_t)argkva)) { in exec_release_args_kva()
1482 SLIST_INSERT_HEAD(&exec_args_kva_freelist, argkva, next); in exec_release_args_kva()
1499 struct exec_args_kva *argkva; in exec_args_kva_lowmem() local
1513 while ((argkva = SLIST_FIRST(&head)) != NULL) { in exec_args_kva_lowmem()
1515 exec_release_args_kva(argkva, gen); in exec_args_kva_lowmem()
1519 argkva = (void *)atomic_readandclear_ptr( in exec_args_kva_lowmem()
1521 if (argkva != NULL) in exec_args_kva_lowmem()
1522 exec_release_args_kva(argkva, gen); in exec_args_kva_lowmem()