ddi_dma_nextseg(9F) Kernel Functions for Drivers ddi_dma_nextseg(9F)NAMEddi_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 sys‐
tem does not contain DVMA capabilities and the object may be non-con‐
tiguous. In this example the object will be broken into smaller con‐
tiguous 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 win‐
dow.
DDI_DMA_STALE win does not refer to the currently active win‐
dow.
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 ALSOattributes(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.10 04 Apr 2006 ddi_dma_nextseg(9F)