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 * 指示成功完成。