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)