bring man page up to date for vmem_xcreate and

the changed function signature of vmem_create
This commit is contained in:
para 2013-01-29 21:55:07 +00:00
parent 8459845f55
commit 429dff0760
1 changed files with 109 additions and 1 deletions

View File

@ -1,4 +1,4 @@
.\" $NetBSD: vmem.9,v 1.13 2011/09/05 18:21:29 wiz Exp $
.\" $NetBSD: vmem.9,v 1.14 2013/01/29 21:55:07 para Exp $
.\"
.\" Copyright (c)2006 YAMAMOTO Takashi,
.\" All rights reserved.
@ -39,6 +39,13 @@
.Ft vmem_t *
.Fn vmem_create \
"const char *name" "vmem_addr_t base" "vmem_size_t size" "vmem_size_t quantum" \
"int (*allocfn)(void *, vmem_size_t, vm_flag_t, vmem_addr_t *)" \
"void (*freefn)(void *, vmem_addr_t, vmem_size_t)" \
"void *arg" "vmem_size_t qcache_max" "vm_flag_t flags" "int ipl"
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Ft vmem_t *
.Fn vmem_xcreate \
"const char *name" "vmem_addr_t base" "vmem_size_t size" "vmem_size_t quantum" \
"int (*allocfn)(void *, vmem_size_t, vmem_size_t *, vm_flag_t, vmem_addr_t *)" \
"void (*freefn)(void *, vmem_addr_t, vmem_size_t)" \
"void *arg" "vmem_size_t qcache_max" "vm_flag_t flags" "int ipl"
@ -105,6 +112,107 @@ calls
.Fo "(*allocfn)"
.Fa arg
.Fa size
.Fa flags
.Fa "\*[Am]addrp"
.Fc
to import a span of size at least
.Fa size .
.Fa allocfn
should accept the same
.Fa flags
as
.Fn vmem_alloc .
.Fa allocfn
must return
.Dv ENOMEM
to indicate failure, or 0 on success.
If
.Fa allocfn
succeeds, it must write the starting address of the imported span to
.Fa addrp .
.It Fa freefn
The callback function used to free spans to the backend arena.
.Fa freefn
may be
.Dv NULL
even if
.Fa allocfn
is not
.Dv NULL .
.Nm
calls
.Fn "(*freefn)" arg addr size
to return to
.Fa arg
a span of size
.Fa size ,
starting at
.Fa addr ,
that was previously allocated by
.Fa allocfn .
.It Fa arg
The backend arena.
.Fa arg
may be
.Dv NULL .
.Nm
passes
.Fa arg
as the first argument of
.Fa allocfn
and
.Fa freefn .
.It Fa qcache_max
The largest size of allocations which can be served by quantum cache.
It is merely a hint and can be ignored.
.It Fa flags
Either of:
.Bl -tag -width VM_NOSLEEP
.It Dv VM_SLEEP
Can sleep until enough resources are available.
.It Dv VM_NOSLEEP
Don't sleep.
Immediately return
.Dv NULL
if there are not enough resources available.
.El
.It Fa ipl
Interrupt level to be blocked for allocating from vmem.
.El
.Pp
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Fn vmem_xcreate
creates a new vmem arena.
.Pp
.Bl -tag -width qcache_max
.It Fa name
The string to describe the vmem.
.It Fa base
The start address of the initial span.
Pass
.Dv 0
if no initial span is required.
.It Fa size
The size of the initial span.
Pass
.Dv 0
if no initial span is required.
.It Fa quantum
The smallest unit of allocation.
.It Fa allocfn
The callback function used to import spans from the backend arena.
Set both
.Fa allocfn
and
.Fa freefn
to
.Dv NULL
to disable automatic imports.
.Nm
calls
.Fo "(*allocfn)"
.Fa arg
.Fa size
.Fa "\*[Am]actualsize"
.Fa flags
.Fa "\*[Am]addrp"