NAME
vmem_create
- create a vmem arena
SYNOPSIS
vmem_t *
vmem_create(const char *name, vmem_addr_t base, vmem_size_t size, vmem_size_t quantum, vmem_addr_t (*allocfn)(vmem_t *, vmem_size_t, vmem_size_t *, vm_flag_t), void (*freefn)(vmem_t *, vmem_addr_t, vmem_size_t), vmem_t *source, vmem_size_t qcache_max, vm_flag_t flags, int ipl)
DESCRIPTION
vmem_create()
creates a new vmem arena.
name-
The string to describe the vmem.
base-
The start address of the initial span.
It can be
VMEM_ADDR_NULL
if no initial span is required.
size-
The size of the initial span.
quantum-
The smallest unit of allocation.
allocfn-
The callback function used to import spans from the backend arena.
freefn-
The callback function used to free spans to the backend arena.
source-
The backend arena.
qcache_max-
The largest size of allocations which can be served by quantum cache.
It is merely a hint and can be ignored.
flags-
Either of:
VM_SLEEP-
Can sleep until enough resources are available.
VM_NOSLEEP-
Don't sleep.
Immediately return
NULL
if there are not enough resources available.
ipl-
Interrupt level to be blocked for allocating from vmem.
RETURN VALUES
vmem_create()
return a pointer to the newly allocated vmem_t.
Otherwise, it returns
NULL.
SEE ALSO
intro(9),
vmem(9)