d_map_init 内核服务
用途
分配和初始化资源以使用 PCI 和 ISA 设备执行 DMA。
语法
#include <sys/dma.h>
struct d_handle* d_map_init (bid, flags, bus_flags, channel)
int bid;
int flags;
int bus_flags;
uint channel;参数
| 项 | 描述 |
|---|---|
| 投标 | 指定总线标识。 |
| 标志 | 描述映射。 |
| bus_flags | 指定目标总线标志。 |
| 渠道 | 指示特定于总线的 通道 分配。 |
描述
映射初始化 内核服务分配并初始化管理 DMA 操作所需的资源,并返回要在后续 DMA 服务调用中使用的唯一 处理 。 处理 是一个指针,它指向 映射初始化 从设备的固定堆中分配的 句柄 结构。 设备驱动程序将使用 处理 中提供的功能地址来访问特定于其主机总线的 DMA 服务。 当资源不可用或无法分配时, 映射初始化 服务会返回 DMA_FAIL 错误。
通道 参数是分配给设备的通道号 (如果有)。 某些设备和/或总线可能没有 通道的概念。 例如, ISA 设备驱动程序将在其分配的 DMA 通道中的 通道 参数中传递。
注: 可以在 /usr/include/sys/dma.h中找到 flags 参数的可能标志值。 这些标志可以一起进行逻辑 OR 运算以反映期望的特征。
执行环境
应该仅从进程环境中调用 映射初始化 内核服务。
返回值
| 项 | 描述 |
|---|---|
| DMA_FAIL | 指示这些资源不可用。 未完成注册。 |
| struct d_handle * | 指示成功完成。 |