percpu_t * percpu_alloc(size_t size) { unsigned int offset; percpu_t *pc; ASSERT_SLEEPABLE(); offset = vmem_alloc(percpu_offset_arena, size, VM_SLEEP | VM_BESTFIT); pc = (percpu_t *)percpu_encrypt((uintptr_t)offset); percpu_zero(pc, size); return pc; }
percpu_t * percpu_alloc(size_t size) { vmem_addr_t offset; percpu_t *pc; ASSERT_SLEEPABLE(); if (vmem_alloc(percpu_offset_arena, size, VM_SLEEP | VM_BESTFIT, &offset) != 0) return NULL; pc = (percpu_t *)percpu_encrypt((uintptr_t)offset); percpu_zero(pc, size); return pc; }