Print this page
code review from Josh and Robert
*** 30,57 ****
PARAMETERS
name A character string giving a name to the vmem arena to be created.
base An address indicating the lowest possible value in the arena.
! size The size of the arena to create
quantum
The arena's ``quantum''. The granularity of the arena. The
! amount allocated at minimum by each request.
! afunc A function which is called to import new spans from source.
! Which may be NULL if this arena does not import from another.
! ffunc A function which is called to return spans to source. Which may
! be NULL if this arena does not import from another.
! source An arena from which this arena will import. Which may be NULL if
this arena does not import from another.
qcache_max
Each arena offers caching of integer multiples of quantum up to
! qcache_max.
vmflag A bitmask of flags indicating the characteristics of this arena.
VMC_IDENTIFIER
The arena represents arbitrary integer identifiers,
--- 30,93 ----
PARAMETERS
name A character string giving a name to the vmem arena to be created.
base An address indicating the lowest possible value in the arena.
! size The size of the arena to create.
quantum
The arena's ``quantum''. The granularity of the arena. The
! amount allocated at minimum by each request. Must be a power of
! 2.
! afunc A function which is called to import new spans from source, which
! may be NULL if this arena does not import from another. When
! calling vmem_create() afunc is an vmem_alloc_t a function taking
! three parameters and returning a pointer to void (the imported
! space):
! vmem_t *
! The source arena from which we'll import. The source
! argument to vmem_create().
! size_t The size to import
!
! int The vmflag argument used for the import.
!
! When calling vmem_xcreate() afunc is an vmem_ximport_t a function
! taking four parameters and returning a pointer to void (the
! imported space):
!
! vmem_t *
! The source arena from which we'll import. The source
! argument to vmem_xcreate().
!
! size_t *
! The size of the import, afunc may increase this size if
! that is desirable, but must never decrease it.
!
! size_t The desired alignment of the imported space.
!
! int the vmflag argument used for the import.
!
! ffunc A function which is called to return spans to source, which may
! be NULL if this arena does not import from another. This is a
! vmem_free_t a function taking three parametes and returning void:
!
! vmem_t The arena to which space is being returned. The source
! argument to vmem_create() or vmem_xcreate().
!
! void * The span being returned to the source arena.
!
! size_t The size of the span being returned to the source arena.
!
! source An arena from which this arena will import, which may be NULL if
this arena does not import from another.
qcache_max
Each arena offers caching of integer multiples of quantum up to
! qcache_max, which may be 0.
vmflag A bitmask of flags indicating the characteristics of this arena.
VMC_IDENTIFIER
The arena represents arbitrary integer identifiers,
*** 67,83 ****
The afunc, ffunc, and source arguments combine to support a hierarchical
structure of arenas, each importing from a single parent (the source).
The vmem_create() and vmem_xcreate() functions differ in that the latter
provides an interface for afunc to alter the size of the span imported
! from source. It is only legal to increase thise size.
CONTEXT
These functions can be called from user or kernel context.
RETURN VALUES
! Upon successful completion the vmem_create(and) vmem_xcreate() functions
return a pointer to a vmem arena. Otherwise, NULL is returned to
indicate the arena could not be created.
SEE ALSO
vmem(9), vmem_add(9F), vmem_alloc(9F)
--- 103,119 ----
The afunc, ffunc, and source arguments combine to support a hierarchical
structure of arenas, each importing from a single parent (the source).
The vmem_create() and vmem_xcreate() functions differ in that the latter
provides an interface for afunc to alter the size of the span imported
! from source. It is only legal to increase this size.
CONTEXT
These functions can be called from user or kernel context.
RETURN VALUES
! Upon successful completion the vmem_create() and vmem_xcreate() functions
return a pointer to a vmem arena. Otherwise, NULL is returned to
indicate the arena could not be created.
SEE ALSO
vmem(9), vmem_add(9F), vmem_alloc(9F)