Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

ddi_dma_nextseg(9f) [opensolaris man page]

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

NAME
ddi_dma_nextseg - get next DMA segment SYNOPSIS
#include <sys/ddi.h> #include <sys/sunddi.h> int ddi_dma_nextseg(ddi_dma_win_t win, ddi_dma_seg_t seg, ddi_dma_seg_t *nseg); INTERFACE LEVEL
This interface is obsolete. ddi_dma_nextcookie(9F) should be used instead. PARAMETERS
win A DMA window. seg The current DMA segment or NULL. nseg A pointer to the next DMA segment to be filled in. If seg is NULL, a pointer to the first segment within the specified window is returned. DESCRIPTION
The ddi_dma_nextseg() function gets the next DMA segment within the specified window win. If the current segment is NULL, the first DMA segment within the window is returned. A DMA segment is always required for a DMA window. A DMA segment is a contiguous portion of a DMA window (see ddi_dma_nextwin(9F)) which is entirely addressable by the device for a data transfer operation. An example where multiple DMA segments are allocated is where the system does not contain DVMA capabilities and the object may be non-con- tiguous. In this example the object will be broken into smaller contiguous DMA segments. Another example is where the device has an upper limit on its transfer size (for example an 8-bit address register) and has expressed this in the DMA limit structure (see ddi_dma_lim_sparc(9S) or ddi_dma_lim_x86(9S)). In this example the object will be broken into smaller addressable DMA segments. RETURN VALUES
The ddi_dma_nextseg() function returns: DDI_SUCCESS Successfully filled in the next segment pointer. DDI_DMA_DONE There is no next segment. The current segment is the final segment within the specified window. DDI_DMA_STALE win does not refer to the currently active window. CONTEXT
The ddi_dma_nextseg() function can be called from user, interrupt, or kernel context. EXAMPLES
For an example, see ddi_dma_segtocookie(9F). ATTRIBUTES
See attributes(5) for a description of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Stability Level |Obsolete | +-----------------------------+-----------------------------+ SEE ALSO
attributes(5), ddi_dma_addr_setup(9F), ddi_dma_buf_setup(9F), ddi_dma_nextcookie(9F), ddi_dma_nextwin(9F), ddi_dma_segtocookie(9F), ddi_dma_sync(9F), ddi_dma_lim_sparc(9S), ddi_dma_lim_x86(9S), ddi_dma_req(9S) Writing Device Drivers SunOS 5.11 04 Apr 2006 ddi_dma_nextseg(9F)

Check Out this Related Man Page

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

NAME
ddi_dma_segtocookie - convert a DMA segment to a DMA address cookie SYNOPSIS
#include <sys/ddi.h> #include <sys/sunddi.h> int ddi_dma_segtocookie(ddi_dma_seg_t seg, off_t *offp, off_t *lenp, ddi_dma_cookie_t *cookiep); INTERFACE LEVEL
This interface is obsolete. ddi_dma_nextcookie(9F) should be used instead. PARAMETERS
seg A DMA segment. offp A pointer to an off_t. Upon a successful return, it is filled in with the offset. This segment is addressing within the object. lenp The byte length. This segment is addressing within the object. cookiep A pointer to a DMA cookie (see ddi_dma_cookie(9S)). DESCRIPTION
ddi_dma_segtocookie() takes a DMA segment and fills in the cookie pointed to by cookiep with the appropriate address, length, and bus type to be used to program the DMA engine. ddi_dma_segtocookie() also fills in *offp and *lenp, which specify the range within the object. RETURN VALUES
ddi_dma_segtocookie() returns: DDI_SUCCESS Successfully filled in all values. DDI_FAILURE Failed to successfully fill in all values. CONTEXT
ddi_dma_segtocookie() can be called from user or interrupt context. EXAMPLES
Example 1: ddi_dma_segtocookie() example for (win = NULL; (retw = ddi_dma_nextwin(handle, win, &nwin)) != DDI_DMA_DONE; win = nwin) { if (retw != DDI_SUCCESS) { /* do error handling */ } else { for (seg = NULL; (rets = ddi_dma_nextseg(nwin, seg, &nseg)) != DDI_DMA_DONE; seg = nseg) { if (rets != DDI_SUCCESS) { /* do error handling */ } else { ddi_dma_segtocookie(nseg, &off, &len, &cookie); /* program DMA engine */ } } } } ATTRIBUTES
See attributes(5) for a description of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Stability Level |Obsolete | +-----------------------------+-----------------------------+ SEE ALSO
attributes(5), ddi_dma_nextcookie(9F). ddi_dma_nextseg(9F), ddi_dma_nextwin(9F), ddi_dma_sync(9F), ddi_dma_cookie(9S) Writing Device Drivers SunOS 5.10 27 Sep 2002 ddi_dma_segtocookie(9F)
Man Page

Featured Tech Videos