d_unmap_page Kernel Service
Purpose
Deallocates resources previously allocated on a d_unmap_page call.
Syntax
#include <sys/dma.h>
void d_unmap_page (*handle, *busaddr)
struct d_handle *handle
uint *busaddr
Note: The following is
the interface definition for d_unmap_page when the DMA_ADDRESS_64 and DMA_ENABLE_64
flags are set on the d_map_init call.
int d_unmap_page(*handle,
*busaddr)
struct d_handle *handle;
unsigned long long *busaddr;
Parameters
Item | Description |
---|---|
handle | Indicates the unique handle returned by the d_map_init kernel service. |
busaddr | Points to the busaddr field. |
Description
The d_unmap_page kernel service is a bus-specific utility routine determined by the d_map_init kernel service that deallocates resources previously allocated on a d_map_page call for a DMA master device.
The d_unmap_page service must be called after I/O completion involving the area mapped by the prior d_map_page call. Some device drivers might choose to leave pages mapped for a long-term mapping of certain memory buffers. In this case, the driver must call d_unmap_page when it no longer needs the long-term mapping.
Note: You can use the D_UNMAP_PAGE
macro provided in the /usr/include/sys/dma.h file to code calls
to the d_unmap_page kernel service. If not, you must ensure
that the d_unmap_page function pointer is non-NULL before
attempting the call. Not all platforms require the unmapping service.