_unmap_list 内核服务
用途
取消分配先前在 映射列表 调用上分配的资源。
语法
#include <sys/dma.h>
void d_unmap_list (*handle, *bus_list)
struct d_handle *handle
struct dio *bus_list 注: 当在 映射初始化 调用上设置 DMA_ADDRESS_64 和 DMA_ENABLE_64 标志时,以下是 未映射列表 的接口定义。
void d_unmap_list (*handle,
*bus_list)
struct d_handle *handle;
struct dio_64 *bus_list;参数
| 项 | 描述 |
|---|---|
| 句柄 (handle) | 指示 映射初始化 内核服务所返回的唯一句柄。 |
| 总线列表 | 指定总线地址和长度的列表。 |
描述
未映射列表 内核服务是特定于总线的实用程序例程,由 映射初始化 内核服务确定,用于取消分配先前在 映射列表 调用上分配的资源。
在涉及先前 映射列表 调用所映射的区域的 I/O 完成后,必须调用 未映射列表 内核服务。 某些设备驱动程序可能选择使页面保持映射状态,以便对某些内存缓冲区进行长期映射。 在此情况下,当驱动程序不再需要长期映射时,它必须调用 未映射列表 。
注: 您可以使用 /usr/include/sys/dma.h 文件中提供的 D_UNMAP_LIST 宏来编码对 d_unmap_list 内核服务的调用。 如果不是,那么您必须确保 未映射列表 函数指针为非空值 ,然后再尝试调用。 并非所有平台都需要取消映射服务。