内に含ま
その他のドキュメント
サポート リソース
| PDF 文書ファイルをダウンロードする
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);
ARGUMENTS
-
-
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)).
INTERFACE LEVEL
- Solaris DDI specific (Solaris DDI).
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 * offpand * 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.
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 * /
-
-
}
}
-
-
}
}
SEE ALSO
-
ddi_dma_nextseg(9F), ddi_dma_nextwin(9F), ddi_dma_sync(9F), ddi_dma_cookie(9S)
-
Writing Device Drivers
|
|