Changeset View
Changeset View
Standalone View
Standalone View
sys/vm/uma_core.c
Show First 20 Lines • Show All 991 Lines • ▼ Show 20 Lines | |||||
addr = kmem_malloc(kernel_arena, size, wait); | addr = kmem_malloc(kernel_arena, size, wait); | ||||
else | else | ||||
addr = kmem_malloc_domain(domain, size, wait); | addr = kmem_malloc_domain(domain, size, wait); | ||||
if (addr != 0) { | if (addr != 0) { | ||||
vsetslab(addr, slab); | vsetslab(addr, slab); | ||||
slab->us_data = (void *)addr; | slab->us_data = (void *)addr; | ||||
slab->us_flags = UMA_SLAB_KERNEL | UMA_SLAB_MALLOC; | slab->us_flags = UMA_SLAB_KERNEL | UMA_SLAB_MALLOC; | ||||
slab->us_size = size; | slab->us_size = size; | ||||
slab->us_domain = vm_phys_domidx(PHYS_TO_VM_PAGE( | slab->us_domain = vm_phys_domain(PHYS_TO_VM_PAGE( | ||||
pmap_kextract(addr))); | pmap_kextract(addr))); | ||||
uma_total_inc(size); | uma_total_inc(size); | ||||
} else { | } else { | ||||
zone_free_item(slabzone, slab, NULL, SKIP_NONE); | zone_free_item(slabzone, slab, NULL, SKIP_NONE); | ||||
} | } | ||||
return ((void *)addr); | return ((void *)addr); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 487 Lines • Show Last 20 Lines |