ddi_dma_nextcookie man page on SmartOS
[printable version]
DDI_DMA_NEXTCOOKIE(9F) DDI_DMA_NEXTCOOKIE(9F)
NAME
ddi_dma_nextcookie - retrieve subsequent DMA cookie
SYNOPSIS
#include <sys/ddi.h>
#include <sys/sunddi.h>
void ddi_dma_nextcookie(ddi_dma_handle_t handle,
ddi_dma_cookie_t *cookiep);
PARAMETERS
handle
The handle previously allocated by a call to
ddi_dma_alloc_handle(9F).
cookiep
A pointer to a ddi_dma_cookie(9S) structure.
INTERFACE LEVEL
Solaris DDI specific (Solaris DDI).
DESCRIPTION
ddi_dma_nextcookie() retrieves subsequent DMA cookies for a DMA
object. ddi_dma_nextcookie() fills in the ddi_dma_cookie(9S) struc‐
ture pointed to by cookiep. The ddi_dma_cookie(9S) structure must be
allocated prior to calling ddi_dma_nextcookie().
The DMA cookie count returned by ddi_dma_buf_bind_handle(9F),
ddi_dma_addr_bind_handle(9F), or ddi_dma_getwin(9F) indicates the num‐
ber of DMA cookies a DMA object consists of. If the resulting cookie
count, N, is larger than 1, ddi_dma_nextcookie() must be called N-1
times to retrieve all DMA cookies.
CONTEXT
ddi_dma_nextcookie() can be called from user, kernel, or interrupt con‐
text.
EXAMPLES
Example 1 Process a scatter-gather list of I/O requests.
This example demonstrates the use of ddi_dma_nextcookie() to process a
scatter-gather list of I/O requests.
/* setup scatter-gather list with multiple DMA cookies */
ddi_dma_cookie_t dmacookie;
uint_t ccount;
...
status = ddi_dma_buf_bind_handle(handle, bp, DDI_DMA_READ,
NULL, NULL, &dmacookie, &ccount);
if (status == DDI_DMA_MAPPED) {
/* program DMA engine with first cookie */
while (--ccount > 0) {
ddi_dma_nextcookie(handle, &dmacookie);
/* program DMA engine with next cookie */
}
}
...
SEE ALSO
ddi_dma_addr_bind_handle(9F), ddi_dma_alloc_handle(9F),
ddi_dma_buf_bind_handle(9F), ddi_dma_unbind_handle(9F),
ddi_dma_cookie(9S)
Writing Device Drivers
Sep 26, 1994 DDI_DMA_NEXTCOOKIE(9F)
[top]
List of man pages available for SmartOS
Copyright (c) for man pages and the logo by the respective OS vendor.
For those who want to learn more, the polarhome community provides shell access and support.
[legal]
[privacy]
[GNU]
[policy]
[cookies]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
|
Vote for polarhome
|