'\" 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 #include \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