Writing Device Drivers

Direct Memory Access (DMA) Functions

Table B–16 Direct Memory Access (DMA) Functions

Function Name 

Description 

ddi_dma_alloc_handle

allocate a DMA handle 

ddi_dma_free_handle 

free DMA handle 

ddi_dma_mem_alloc 

allocate memory for DMA transfer  

ddi_dma_mem_free 

free previously allocated DMA memory  

ddi_dma_addr_bind_handle 

bind an address to a DMA handle 

ddi_dma_buf_bind_handle 

bind a system buffer to a DMA handle 

ddi_dma_unbind_handle 

unbind the address in a DMA handle 

ddi_dma_nextcookie 

retrieve subsequent DMA cookie 

ddi_dma_getwin 

activate a new DMA window 

ddi_dma_numwin 

retrieve number of DMA windows 

ddi_dma_sync 

synchronize CPU and I/O views of memory 

ddi_check_dma_handle 

check DMA handle 

ddi_dma_set_sbus64 

allow 64-bit transfers on SBus 

ddi_slaveonly 

tell if a device is installed in a slave access only location 

ddi_iomin 

find minimum alignment and transfer size for DMA 

ddi_dma_burstsizes 

find out the allowed burst sizes for a DMA mapping 

ddi_dma_devalign 

find DMA mapping alignment and minimum transfer size 

ddi_dmae_alloc 

acquire a DMA channel 

ddi_dmae_release 

release a DMA channel 

ddi_dmae_getattr 

get DMA engine attributes 

ddi_dmae_prog 

program a DMA channel 

ddi_dmae_stop 

terminate DMA engine operation 

ddi_dmae_disable 

disable a DMA channel 

ddi_dmae_enable 

enable a DMA channel 

ddi_dmae_getcnt 

get DMA engine count remaining 

ddi_dmae_1stparty 

configure DMA channel cascade mode 

ddi_dma_coff 

convert a DMA cookie to an offset within a DMA handle 

Table B–17 Deprecated Direct Memory Access (DMA) Functions

Deprecated Function 

Replacement 

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