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)