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/man9f/ddi_dmae.9f
          +++ new/usr/src/man/man9f/ddi_dmae.9f
   1    1  '\" te
        2 +.\"  Copyright 2014 Garrett D'Amore <garrett@damore.org>
   2    3  .\"  Copyright (c) 2006 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 9F "Feb 02, 2012"
        7 +.TH DDI_DMAE 9F "May 24, 2014"
   8    8  .SH NAME
   9    9  ddi_dmae, ddi_dmae_alloc, ddi_dmae_release, ddi_dmae_prog, ddi_dmae_disable,
  10   10  ddi_dmae_enable, ddi_dmae_stop, ddi_dmae_getcnt, ddi_dmae_1stparty,
  11      -ddi_dmae_getlim, ddi_dmae_getattr \- system DMA engine functions
       11 +ddi_dmae_getattr \- system DMA engine functions
  12   12  .SH SYNOPSIS
  13   13  .LP
  14   14  .nf
  15   15  \fBint\fR \fBddi_dmae_alloc\fR(\fBdev_info_t *\fR\fIdip\fR, \fBint\fR \fIchnl\fR, \fBint (*\fR\fIcallback\fR) (caddr_t),
  16   16       \fBcaddr_t\fR \fIarg\fR);
  17   17  .fi
  18   18  
  19   19  .LP
  20   20  .nf
  21   21  \fBint\fR \fBddi_dmae_release\fR(\fBdev_info_t *\fR\fIdip\fR, \fBint\fR \fIchnl\fR);
↓ open down ↓ 25 lines elided ↑ open up ↑
  47   47  \fBint\fR \fBddi_dmae_getcnt\fR(\fBdev_info_t *\fR\fIdip\fR, \fBint\fR \fIchnl\fR, \fBint *\fR\fIcountp\fR);
  48   48  .fi
  49   49  
  50   50  .LP
  51   51  .nf
  52   52  \fBint\fR \fBddi_dmae_1stparty\fR(\fBdev_info_t *\fR\fIdip\fR, \fBint\fR \fIchnl\fR);
  53   53  .fi
  54   54  
  55   55  .LP
  56   56  .nf
  57      -\fBint\fR \fBddi_dmae_getlim\fR(\fBdev_info_t *\fR\fIdip\fR, \fBddi_dma_lim_t *\fR\fIlimitsp\fR);
  58      -.fi
  59      -
  60      -.LP
  61      -.nf
  62   57  \fBint\fR \fBddi_dmae_getattr\fR(\fBdev_info_t *\fR\fIdip\fR, \fBddi_dma_attr_t *\fR\fIattrp\fR);
  63   58  .fi
  64   59  
  65   60  .SH INTERFACE LEVEL
  66   61  .sp
  67   62  .LP
  68      -Solaris DDI specific (Solaris DDI). The \fBddi_dmae_getlim()\fR interface,
  69      -described below, is obsolete. Use \fBddi_dmae_getattr()\fR, also described
  70      -below, to replace it.
       63 +Solaris DDI specific (Solaris DDI).
  71   64  .SH PARAMETERS
  72   65  .sp
  73   66  .ne 2
  74   67  .na
  75   68  \fB\fIdip\fR\fR
  76   69  .ad
  77   70  .RS 12n
  78   71  A \fBdev_info\fR pointer that identifies the device.
  79   72  .RE
  80   73  
↓ open down ↓ 69 lines elided ↑ open up ↑
 150  143  \fB\fIcountp\fR\fR
 151  144  .ad
 152  145  .RS 12n
 153  146  A pointer to an integer that will receive the count of the number of bytes not
 154  147  yet transferred upon completion of a \fBDMA\fR operation.
 155  148  .RE
 156  149  
 157  150  .sp
 158  151  .ne 2
 159  152  .na
 160      -\fB\fIlimitsp\fR\fR
 161      -.ad
 162      -.RS 12n
 163      -A pointer to a \fBDMA\fR limit structure. See \fBddi_dma_lim_x86\fR(9S).
 164      -.RE
 165      -
 166      -.sp
 167      -.ne 2
 168      -.na
 169  153  \fB\fIattrp\fR\fR
 170  154  .ad
 171  155  .RS 12n
 172  156  A pointer to a \fBDMA \fR attribute structure. See \fBddi_dma_attr\fR(9S).
 173  157  .RE
 174  158  
 175  159  .SH DESCRIPTION
 176  160  .sp
 177  161  .LP
 178  162  There are three possible ways that a device can perform \fBDMA\fR engine
↓ open down ↓ 114 lines elided ↑ open up ↑
 293  277  .LP
 294  278  In the case of \fBISA\fR buses, \fBddi_dmae_1stparty()\fR configures a channel
 295  279  in the system's \fBDMA\fR engine to operate in a ``slave'' (``cascade'') mode.
 296  280  .sp
 297  281  .LP
 298  282  When operating in \fBddi_dmae_1stparty()\fR mode, the  \fBDMA\fR channel must
 299  283  first be allocated using \fBddi_dmae_alloc()\fR and then configured using
 300  284  \fBddi_dmae_1stparty()\fR. The driver then programs the device to perform the
 301  285  I/O, including the necessary \fBDMA\fR address and count values obtained from
 302  286  the \fBddi_dma_cookie\fR(9S).
 303      -.SS "\fBddi_dmae_getlim()\fR"
 304      -.sp
 305      -.LP
 306      -This function is obsolete. Use \fBddi_dmae_getattr()\fR, described below,
 307      -instead.
 308      -.sp
 309      -.LP
 310      -The \fBddi_dmae_getlim()\fR function fills in the \fBDMA\fR limit structure,
 311      -pointed to by \fIlimitsp\fR, with the \fBDMA\fR limits of the system \fBDMA\fR
 312      -engine. Drivers for devices that perform their own bus mastering or use
 313      -first-party \fBDMA\fR must create and initialize their own \fBDMA\fR limit
 314      -structures; they should not use \fBddi_dmae_getlim()\fR. The \fBDMA\fR limit
 315      -structure must be passed to the \fBDMA\fR setup routines so that they will know
 316      -how to break the \fBDMA\fR request into windows.  If the device has any
 317      -particular restrictions on transfer size or granularity (such as the size of
 318      -disk sector), the driver should further restrict the values in the structure
 319      -members before passing them to the \fBDMA\fR setup routines. The driver must
 320      -not relax any of the restrictions embodied in the structure after it is filled
 321      -in by \fBddi_dmae_getlim()\fR. After calling \fBddi_dmae_getlim()\fR, a driver
 322      -must examine, and possibly set, the size of the \fBDMA\fR engine's
 323      -scatter/gather list to determine whether \fBDMA\fR chaining will be used. See
 324      -\fBddi_dma_lim_x86\fR(9S) and \fBddi_dmae_req\fR(9S) for additional information
 325      -on scatter/gather DMA.
 326  287  .SS "\fBddi_dmae_getattr()\fR"
 327  288  .sp
 328  289  .LP
 329  290  The \fBddi_dmae_getattr()\fR function fills in the \fBDMA\fR attribute
 330  291  structure, pointed to by \fIattrp\fR, with the \fBDMA\fR attributes of the
 331  292  system \fBDMA\fR engine. Drivers for devices that perform their own bus
 332  293  mastering or use first-party \fBDMA\fR must create and initialize their own
 333  294  \fBDMA\fR attribute structures; they should not use \fBddi_dmae_getattr()\fR.
 334  295  The \fBDMA\fR attribute structure must be passed to the \fBDMA\fR resource
 335  296  allocation functions to provide the information necessary to break the
↓ open down ↓ 50 lines elided ↑ open up ↑
 386  347  _
 387  348  Architecture    x86
 388  349  .TE
 389  350  
 390  351  .SH SEE ALSO
 391  352  .sp
 392  353  .LP
 393  354  \fBisa\fR(4), \fBattributes\fR(5), \fBddi_dma_buf_setup\fR(9F),
 394  355  \fBddi_dma_getwin\fR(9F), \fBddi_dma_nextcookie\fR(9F),
 395  356  \fBddi_dma_mem_alloc\fR(9F), \fBddi_dma_addr_bind_handle\fR(9F), \fBddi_dma_attr\fR(9S),
 396      -\fBddi_dma_cookie\fR(9S), \fBddi_dma_lim_x86\fR(9S), \fBddi_dma_req\fR(9S),
      357 +\fBddi_dma_cookie\fR(9S),
 397  358  \fBddi_dmae_req\fR(9S)
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX