RMFREE(9F) Kernel Functions for Drivers RMFREE(9F)
NAME
rmfree - free space back into a resource map
SYNOPSIS
#include <sys/map.h>
#include <sys/ddi.h>
void rmfree(
struct map *mp,
size_t size,
ulong_t index);
INTERFACE LEVEL
Architecture independent level 1 (DDI/DKI).
PARAMETERS
mp Pointer to the map structure.
size Number of units being freed.
index Index of the first unit of the allocated resource.
DESCRIPTION
The
rmfree() function releases space back into a resource map. It is the
opposite of
rmalloc(9F), which allocates space that is controlled by a
resource map structure.
When releasing resources using
rmfree() the size and index passed to
rmfree() must exactly match the size and index values passed to and
returned from a previous call to
rmalloc(). Resources cannot be returned
piecemeal.
Drivers may define resource maps for resource allocation, in terms of
arbitrary units, using the
rmallocmap(9F) function. The system maintains
the resource map structure by size and index, computed in units
appropriate for the resource. For example, units may be byte addresses,
pages of memory, or blocks.
rmfree() frees up unallocated space for re-
use.
The
rmfree() function can also be used to initialize a resource map, in
which case the size and index should cover the entire resource area.
CONTEXT
The
rmfree() function can be called from user, interrupt, or kernel
context.
SEE ALSO
rmalloc(9F),
rmalloc_wait(9F),
rmallocmap(9F),
rmfreemap(9F) Writing Device Drivers January 16, 2006
RMFREE(9F)