Sun Microsystems, Inc.
spacerspacer
spacer   www.sun.com docs.sun.com | | |  
spacer
black dot
   
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z
    
 
Kernel Functions for Driversddi_dma_segtocookie(9F)


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);

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)).

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 *offp and *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.

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 */
			}
		}
	}
}

SEE ALSO

 

ddi_dma_nextseg(9F), ddi_dma_nextwin(9F), ddi_dma_sync(9F), ddi_dma_cookie(9S)

Writing Device Drivers


SunOS 5.9Go To TopLast Changed 12 Oct 1992

 
      
      
Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.