Current File : //usr/share/man/man9f/ddi_dma_segtocookie.9f
'\" te
.\" Copyright (c) 2006, Sun Microsystems, Inc.
.TH ddi_dma_segtocookie 9F "16 Jan 2006" "SunOS 5.11" "Kernel Functions for Drivers"
.SH NAME
ddi_dma_segtocookie \- convert a DMA segment to a DMA address cookie
.SH SYNOPSIS
.LP
.nf
#include <sys/ddi.h> 
#include <sys/sunddi.h>

\fBint\fR \fBddi_dma_segtocookie\fR(\fBddi_dma_seg_t\fR \fIseg\fR, \fBoff_t *\fR\fIoffp\fR, \fBoff_t *\fR\fIlenp\fR,
     \fBddi_dma_cookie_t *\fR\fIcookiep\fR);
.fi

.SH INTERFACE LEVEL
.sp
.LP
This interface is obsolete. \fBddi_dma_nextcookie\fR(9F) should be used instead.
.SH PARAMETERS
.sp
.ne 2
.mk
.na
\fB\fIseg\fR\fR
.ad
.RS 11n
.rt  
A \fBDMA\fR segment.
.RE

.sp
.ne 2
.mk
.na
\fB\fIoffp\fR\fR
.ad
.RS 11n
.rt  
A pointer to an \fBoff_t\fR. Upon a successful return, it is filled in with the offset. This segment is addressing within the object.
.RE

.sp
.ne 2
.mk
.na
\fB\fIlenp\fR\fR
.ad
.RS 11n
.rt  
The byte length. This segment is addressing within the object.
.RE

.sp
.ne 2
.mk
.na
\fB\fIcookiep\fR\fR
.ad
.RS 11n
.rt  
A pointer to a \fBDMA\fR cookie (see \fBddi_dma_cookie\fR(9S)).
.RE

.SH DESCRIPTION
.sp
.LP
The \fBddi_dma_segtocookie()\fR function takes a \fBDMA\fR segment and fills in the cookie pointed to by \fIcookiep\fR with the appropriate address, length, and bus type to be used to program the \fBDMA\fR engine. \fBddi_dma_segtocookie()\fR also fills in \fI*offp\fR and \fI*lenp\fR, which specify the range within the object.
.SH RETURN VALUES
.sp
.LP
The \fBddi_dma_segtocookie()\fR function returns:
.sp
.ne 2
.mk
.na
\fB\fBDDI_SUCCESS\fR\fR
.ad
.RS 15n
.rt  
Successfully filled in all values.
.RE

.sp
.ne 2
.mk
.na
\fB\fBDDI_FAILURE\fR\fR
.ad
.RS 15n
.rt  
Failed to successfully fill in all values.
.RE

.SH CONTEXT
.sp
.LP
The \fBddi_dma_segtocookie()\fR function can be called from user, interrupt, or kernel context.
.SH EXAMPLES
.LP
\fBExample 1 \fR\fBddi_dma_segtocookie()\fR example
.sp
.in +2
.nf
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 */
			}
		}
	}
}
.fi
.in -2

.SH ATTRIBUTES
.sp
.LP
See \fBattributes\fR(5) for a description of the following attributes:
.sp

.sp
.TS
tab() box;
cw(2.75i) |cw(2.75i) 
lw(2.75i) |lw(2.75i) 
.
\fBATTRIBUTE TYPE\fR\fBATTRIBUTE VALUE\fR
_
Stability LevelObsolete
.TE

.SH SEE ALSO
.sp
.LP
\fBattributes\fR(5), \fBddi_dma_nextcookie\fR(9F). \fBddi_dma_nextseg\fR(9F), \fBddi_dma_nextwin\fR(9F), \fBddi_dma_sync\fR(9F), \fBddi_dma_cookie\fR(9S) 
.sp
.LP
\fIWriting Device Drivers for Oracle Solaris 11.2\fR