Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

ddi_dma_getwin(9f) [centos man page]

ddi_dma_getwin(9F)					   Kernel Functions for Drivers 					ddi_dma_getwin(9F)

NAME
ddi_dma_getwin - activate a new DMA window SYNOPSIS
#include <sys/ddi.h> #include <sys/sunddi.h> int ddi_dma_getwin(ddi_dma_handle_t handle, uint_t win, off_t *offp, size_t *lenp, ddi_dma_cookie_t *cookiep, uint_t *ccountp); INTERFACE LEVEL
Solaris DDI specific (Solaris DDI). PARAMETERS
handle The DMA handle previously allocated by a call to ddi_dma_alloc_handle(9F). win Number of the window to activate. offp Pointer to an offset. Upon a successful return, offp will contain the new offset indicating the beginning of the window within the object. lenp Upon a successful return, lenp will contain the size, in bytes, of the current window. cookiep A pointer to the first ddi_dma_cookie(9S) structure. ccountp Upon a successful return, ccountp will contain the number of cookies for this DMA window. DESCRIPTION
ddi_dma_getwin() activates a new DMA window. If a DMA resource allocation request returns DDI_DMA_PARTIAL_MAP indicating that resources for less than the entire object were allocated, the current DMA window can be changed by a call to ddi_dma_getwin(). The caller must first determine the number of DMA windows, N, using ddi_dma_numwin(9F). ddi_dma_getwin() takes a DMA window number from the range [0..N-1] as the parameter win and makes it the current DMA window. ddi_dma_getwin() fills in the first DMA cookie pointed to by cookiep with the appropriate address, length, and bus type. *ccountp is set to the number of DMA cookies representing this DMA object. Subsequent DMA cookies must be retrieved using ddi_dma_nextcookie(9F). ddi_dma_getwin() takes care of underlying resource synchronizations required to shift the window. However accessing the data prior to or after moving the window requires further synchronization steps using ddi_dma_sync(9F). ddi_dma_getwin() is normally called from an interrupt routine. The first invocation of the DMA engine is done from the driver. All subse- quent invocations of the DMA engine are done from the interrupt routine. The interrupt routine checks to see if the request has been com- pleted. If it has, the interrupt routine returns without invoking another DMA transfer. Otherwise, it calls ddi_dma_getwin() to shift the current window and start another DMA transfer. RETURN VALUES
ddi_dma_getwin() returns: DDI_SUCCESS Resources for the specified DMA window are allocated. DDI_FAILURE win is not a valid window index. CONTEXT
ddi_dma_getwin() can be called from user, kernel, or interrupt context. SEE ALSO
ddi_dma_addr_bind_handle(9F), ddi_dma_alloc_handle(9F), ddi_dma_buf_bind_handle(9F), ddi_dma_nextcookie(9F), ddi_dma_numwin(9F), ddi_dma_sync(9F), ddi_dma_unbind_handle(9F), ddi_dma_cookie(9S) Writing Device Drivers SunOS 5.10 15 Nov 1996 ddi_dma_getwin(9F)

Check Out this Related Man Page

ddi_dma_getwin(9F)					   Kernel Functions for Drivers 					ddi_dma_getwin(9F)

NAME
ddi_dma_getwin - activate a new DMA window SYNOPSIS
#include <sys/ddi.h> #include <sys/sunddi.h> int ddi_dma_getwin(ddi_dma_handle_t handle, uint_t win, off_t *offp, size_t *lenp, ddi_dma_cookie_t *cookiep, uint_t *ccountp); INTERFACE LEVEL
Solaris DDI specific (Solaris DDI). PARAMETERS
handle The DMA handle previously allocated by a call to ddi_dma_alloc_handle(9F). win Number of the window to activate. offp Pointer to an offset. Upon a successful return, offp will contain the new offset indicating the beginning of the window within the object. lenp Upon a successful return, lenp will contain the size, in bytes, of the current window. cookiep A pointer to the first ddi_dma_cookie(9S) structure. ccountp Upon a successful return, ccountp will contain the number of cookies for this DMA window. DESCRIPTION
ddi_dma_getwin() activates a new DMA window. If a DMA resource allocation request returns DDI_DMA_PARTIAL_MAP indicating that resources for less than the entire object were allocated, the current DMA window can be changed by a call to ddi_dma_getwin(). The caller must first determine the number of DMA windows, N, using ddi_dma_numwin(9F). ddi_dma_getwin() takes a DMA window number from the range [0..N-1] as the parameter win and makes it the current DMA window. ddi_dma_getwin() fills in the first DMA cookie pointed to by cookiep with the appropriate address, length, and bus type. *ccountp is set to the number of DMA cookies representing this DMA object. Subsequent DMA cookies must be retrieved using ddi_dma_nextcookie(9F). ddi_dma_getwin() takes care of underlying resource synchronizations required to shift the window. However accessing the data prior to or after moving the window requires further synchronization steps using ddi_dma_sync(9F). ddi_dma_getwin() is normally called from an interrupt routine. The first invocation of the DMA engine is done from the driver. All subse- quent invocations of the DMA engine are done from the interrupt routine. The interrupt routine checks to see if the request has been com- pleted. If it has, the interrupt routine returns without invoking another DMA transfer. Otherwise, it calls ddi_dma_getwin() to shift the current window and start another DMA transfer. RETURN VALUES
ddi_dma_getwin() returns: DDI_SUCCESS Resources for the specified DMA window are allocated. DDI_FAILURE win is not a valid window index. CONTEXT
ddi_dma_getwin() can be called from user, kernel, or interrupt context. SEE ALSO
ddi_dma_addr_bind_handle(9F), ddi_dma_alloc_handle(9F), ddi_dma_buf_bind_handle(9F), ddi_dma_nextcookie(9F), ddi_dma_numwin(9F), ddi_dma_sync(9F), ddi_dma_unbind_handle(9F), ddi_dma_cookie(9S) Writing Device Drivers SunOS 5.10 15 Nov 1996 ddi_dma_getwin(9F)
Man Page