Contained Within
Find More Documentation
Featured Support Resources
| Descargar este libro en PDF
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);
ARGUMENTS
-
-
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.
INTERFACE LEVEL
- Solaris DDI specific (Solaris DDI).
DESCRIPTION
-
ddi_dma_nextseg( ) 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-contiguous. 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
-
ddi_dma_nextseg( ) 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
-
ddi_dma_nextseg( ) can be called from user or interrupt context.
EXAMPLE
- For an example see ddi_dma_segtocookie(9F).
SEE ALSO
-
ddi_dma_addr_setup(9F), ddi_dma_buf_setup(9F), ddi_dma_nextwin(9F), ddi_dma_req(9S), ddi_dma_segtocookie(9F), ddi_dma_sync(9F), ddi_dma_lim_sparc(9S), ddi_dma_lim_x86(9S)
-
Writing Device Drivers
|
|