d_unmap_page 内核服务

用途

取消分配先前在 _unmap_page 调用上分配的资源。

语法

#include <sys/dma.h>

void d_unmap_page (*handle, *busaddr)
struct d_handle *handle
uint *busaddr
注: 当在 映射初始化 调用上设置 DMA_ADDRESS_64 DMA_ENABLE_64 标志时,以下是 _unmap_page 的接口定义。
int d_unmap_page(*handle, 
*busaddr)
struct d_handle *handle;
unsigned long long *busaddr;

参数

描述
句柄 (handle) 指示 映射初始化 内核服务所返回的唯一句柄。
布萨德尔 指向 " 布萨德尔 " 字段。

描述

_unmap_page 内核服务是特定于总线的实用程序例程,由 映射初始化 内核服务确定,用于取消分配先前在 DMA 主设备的 映射页 调用上分配的资源。

在涉及先前 映射页 调用所映射的区域的 I/O 完成后,必须调用 _unmap_page 服务。 某些设备驱动程序可能选择使页面保持映射状态,以便对某些内存缓冲区进行长期映射。 在此情况下,当驱动程序不再需要长期映射时,它必须调用 _unmap_page

注: 您可以使用 /usr/include/sys/dma.h 文件中提供的 D_UNMAP_PAGE 宏对 d_unmap_page 内核服务进行代码调用。 如果不是,那么您必须确保 _unmap_page 函数指针为非空值 ,然后再尝试调用。 并非所有平台都需要取消映射服务。