MCPcopy Create free account
hub / github.com/F-Stack/f-stack / kmem_malloc_domain

Function kmem_malloc_domain

freebsd/vm/vm_kern.c:400–421  ·  view source on GitHub ↗

* kmem_malloc_domain: * * Allocate wired-down pages in the kernel's address space. */

Source from the content-addressed store, hash-verified

398 * Allocate wired-down pages in the kernel's address space.
399 */
400static vm_offset_t
401kmem_malloc_domain(int domain, vm_size_t size, int flags)
402{
403 vmem_t *arena;
404 vm_offset_t addr;
405 int rv;
406
407 if (__predict_true((flags & M_EXEC) == 0))
408 arena = vm_dom[domain].vmd_kernel_arena;
409 else
410 arena = vm_dom[domain].vmd_kernel_rwx_arena;
411 size = round_page(size);
412 if (vmem_alloc(arena, size, flags | M_BESTFIT, &addr))
413 return (0);
414
415 rv = kmem_back_domain(domain, kernel_object, addr, size, flags);
416 if (rv != KERN_SUCCESS) {
417 vmem_free(arena, addr, size);
418 return (0);
419 }
420 return (addr);
421}
422
423vm_offset_t
424kmem_malloc(vm_size_t size, int flags)

Callers 1

kmem_malloc_domainsetFunction · 0.85

Calls 3

vmem_allocFunction · 0.85
kmem_back_domainFunction · 0.85
vmem_freeFunction · 0.85

Tested by

no test coverage detected