编写设备驱动程序

直接内存访问 (Direct Memory Access, DMA) 函数

DMA 函数包括:

ddi_dma_alloc_handle()

分配 DMA 句柄

ddi_dma_free_handle()

释放 DMA 句柄

ddi_dma_mem_alloc()

为 DMA 传送操作分配内存

ddi_dma_mem_free()

释放以前分配的 DMA 内存

ddi_dma_addr_bind_handle()

将地址绑定到 DMA 句柄

ddi_dma_buf_bind_handle()

将系统缓冲区绑定到 DMA 句柄

ddi_dma_unbind_handle()

取消绑定 DMA 句柄中的地址

ddi_dma_nextcookie()

检索后续的 DMA cookie

ddi_dma_getwin()

激活新 DMA 窗口

ddi_dma_numwin()

检索 DMA 窗口数

ddi_dma_sync()

同步 CPU 和 I/O 内存视图

ddi_check_dma_handle()

检查 DMA 句柄

ddi_dma_set_sbus64()

允许在 S 总线上进行 64 位传送

ddi_slaveonly()

报告设备是否安装在只允许从属访问的位置

ddi_iomin()

查找 DMA 的最小对齐和传送大小

ddi_dma_burstsizes()

查找 DMA 映射的允许突发大小

ddi_dma_devalign()

查找 DMA 映射对齐和最小传送大小

ddi_dmae_alloc()

获取 DMA 通道

ddi_dmae_release()

释放 DMA 通道

ddi_dmae_getattr()

获取 DMA 引擎属性

ddi_dmae_prog()

对 DMA 通道编程

ddi_dmae_stop()

终止 DMA 引擎操作

ddi_dmae_disable()

禁用 DMA 通道

ddi_dmae_enable()

启用 DMA 通道

ddi_dmae_getcnt()

获取剩余的 DMA 引擎计数

ddi_dmae_1stparty()

配置 DMA 通道层叠模式

ddi_dma_coff()

将 DMA cookie 转换为 DMA 句柄内的偏移

表 B–5 过时的直接内存访问 (Direct Memory Access, DMA) 函数

过时的函数 

替代函数 

ddi_dma_addr_setup()

ddi_dma_alloc_handle()ddi_dma_addr_bind_handle()

ddi_dma_buf_setup()

ddi_dma_alloc_handle()ddi_dma_buf_bind_handle()

ddi_dma_curwin()

ddi_dma_getwin()

ddi_dma_free()

ddi_dma_free_handle()

ddi_dma_htoc()

ddi_dma_addr_bind_handle()ddi_dma_buf_bind_handle()

ddi_dma_movwin()

ddi_dma_getwin()

ddi_dma_nextseg()

ddi_dma_nextcookie()

ddi_dma_segtocookie()

ddi_dma_nextcookie()

ddi_dma_setup()

ddi_dma_alloc_handle()ddi_dma_addr_bind_handle()ddi_dma_buf_bind_handle()

ddi_dmae_getlim()

ddi_dmae_getattr()

ddi_iopb_alloc()

ddi_dma_mem_alloc()

ddi_iopb_free()

ddi_dma_mem_free()

ddi_mem_alloc()

ddi_dma_mem_alloc()

ddi_mem_free()

ddi_dma_mem_free()

hat_getkpfnum()

ddi_dma_addr_bind_handle()ddi_dma_buf_bind_handle()ddi_dma_nextcookie()