User Tools

Site Tools


solaris:ddi_dma_segtocookie.9f

ddi_dma_segtocookie


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

The ddi_dma_segtocookie() function 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

The ddi_dma_segtocookie() function returns:

DDI_SUCCESS

Successfully filled in all values.

DDI_FAILURE

Failed to successfully fill in all values.

CONTEXT

The ddi_dma_segtocookie() function can be called from user, interrupt, or kernel 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(7) for a description of the following attributes:

SEE ALSO

attributes(7), ddi_dma_nextcookie(9F). ddi_dma_nextseg(9F), ddi_dma_nextwin(9F), ddi_dma_sync(9F), ddi_dma_cookie(9S)

Writing Device Drivers in Oracle Solaris 11.4


solaris/ddi_dma_segtocookie.9f.txt · Last modified: 2023/07/19 08:57 by A User Not Logged in