Print this page
4888 Undocument dma_req(9s)
4884 EOF scsi_hba_attach
4886 EOF ddi_dmae_getlim
4887 EOF ddi_iomin
4634 undocument scsi_hba_attach() and ddi_dma_lim(9s)
4630 clean stale references to ddi_iopb_alloc and ddi_iopb_free

Split Close
Expand all
Collapse all
          --- old/usr/src/man/man9s/ddi_dmae_req.9s
          +++ new/usr/src/man/man9s/ddi_dmae_req.9s
   1    1  '\" te
        2 +.\" Copyright 2014 Garrett D'Amore <garrett@damore.org>
   2    3  .\" Copyright (c) 2004, Sun Microsystems, Inc., All Rights Reserved
   3      -.\" Copyright 2012 Garrett D'Amore <garrett@damore.org>.  All rights reserved.
   4    4  .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
   5    5  .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
   6    6  .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
   7      -.TH DDI_DMAE_REQ 9S "Feb 06, 2012"
        7 +.TH DDI_DMAE_REQ 9S "May 24, 2014"
   8    8  .SH NAME
   9    9  ddi_dmae_req \- DMA engine request structure
  10   10  .SH SYNOPSIS
  11   11  .LP
  12   12  .nf
  13   13  #include <sys/dma_engine.h>
  14   14  .fi
  15   15  
  16   16  .SH INTERFACE LEVEL
  17   17  .sp
↓ open down ↓ 63 lines elided ↑ open up ↑
  81   81  routine must then return the address of the next cookie (in static storage) to
  82   82  the bus nexus routine that called it. If there are no more segments in the
  83   83  current \fBDMA\fR window, then \fB(*proc)()\fR must return the \fBNULL\fR
  84   84  pointer.
  85   85  .sp
  86   86  A driver can specify the \fBDMAE_BUF_CHAIN\fR flag only if the particular bus
  87   87  architecture supports the use of multiple \fBDMA\fR cookies in a single
  88   88  \fBI/O\fR transfer. A bus \fBDMA\fR engine can support this feature either with
  89   89  a fixed-length scatter/gather list, or by an interrupt chaining feature. A
  90   90  driver must determine whether its parent bus nexus supports this feature by
  91      -examining the scatter/gather list size returned in the \fBdlim_sgllen\fR member
  92      -of the \fBDMA\fR limit structure returned by the driver's call to
  93      -\fBddi_dmae_getlim()\fR. (See \fBddi_dma_lim_x86\fR(9S).) If the size of the
       91 +examining the scatter/gather list size returned in the \fBdma_attr_sgllen\fR
       92 +member of the \fBDMA\fR attributes structure returned by the driver's call to
       93 +\fBddi_dmae_getattr()\fR. (See \fBddi_dma_attr\fR(9S).) If the size of the
  94   94  scatter/gather list is 1, then no chaining is available. The driver must not
  95   95  specify the \fBDMAE_BUF_CHAIN\fR flag in the \fBddi_dmae_req\fR structure it
  96   96  passes to \fBddi_dmae_prog()\fR, and the driver need not provide a
  97   97  \fBnextcookie\fR routine.
  98   98  .sp
  99   99  If the size of the scatter/gather list is greater than 1, then \fBDMA\fR
 100  100  chaining is available, and the driver has two options. Under the first option,
 101  101  the driver chooses not to use the chaining feature. In this case (a) the driver
 102  102  must \fBset\fR the size of the scatter/gather list to 1 before passing it to
 103  103  the \fBDMA\fR setup routine, and (b) the driver must not set the
↓ open down ↓ 44 lines elided ↑ open up ↑
 148  148  .el o
 149  149  Second, on some bus architectures, the driver's \fBnextcookie\fR routine can be
 150  150  called from a high-level interrupt routine. If the cookies were not prefetched,
 151  151  the \fBnextcookie\fR routine would have to call \fBDMA\fR functions
 152  152  from a high-level interrupt routine, which is not
 153  153  recommended.
 154  154  .RE
 155  155  When breaking a \fBDMA\fR window into segments, the system arranges for the end
 156  156  of every segment whose number is an integral multiple of the scatter/gather
 157  157  list size to fall on a device-granularity boundary, as specified in the
 158      -\fBdlim_granular\fR field in the \fBddi_dma_lim_x86\fR(9S) structure.
      158 +\fBdma_attr_granular\fR field in the \fBddi_dma_attr\fR(9S) structure.
 159  159  .sp
 160  160  If the scatter/gather list size is 1 (either because no chaining is available
 161  161  or because the driver does not want to use the chaining feature), then the
 162  162  total \fBI/O\fR count for a single \fBDMA\fR operation is the size of \fBDMA\fR
 163  163  segment denoted by the single \fBDMA\fR cookie that is passed in the call to
 164  164  \fBddi_dmae_prog()\fR. In this case, the system arranges for each \fBDMA\fR
 165  165  segment to be a multiple of the device-granularity size.
 166  166  .RE
 167  167  
 168  168  .sp
↓ open down ↓ 48 lines elided ↑ open up ↑
 217  217  l | l .
 218  218  ATTRIBUTE TYPE  ATTRIBUTE VALUE
 219  219  _
 220  220  Architecture    x86
 221  221  .TE
 222  222  
 223  223  .SH SEE ALSO
 224  224  .sp
 225  225  .LP
 226  226  \fBisa\fR(4), \fBattributes\fR(5),
 227      -\fBddi_dmae\fR(9F), \fBddi_dma_lim_x86\fR(9S), \fBddi_dma_req\fR(9S)
      227 +\fBddi_dmae\fR(9F), \fBddi_dma_attr\fR(9S)
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX