Adaptation/GUID-6114133F-E738-4DF1-8308-B09C02B9CEEA.dita
changeset 15 307f4279f433
equal deleted inserted replaced
14:578be2adaf3e 15:307f4279f433
       
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
       
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
       
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
       
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     6 <!-- Initial Contributors:
       
     7     Nokia Corporation - initial contribution.
       
     8 Contributors: 
       
     9 -->
       
    10 <!DOCTYPE concept
       
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
       
    12 <concept id="GUID-6114133F-E738-4DF1-8308-B09C02B9CEEA" xml:lang="en"><title>DMAv2 Interface Overview</title><shortdesc>Describes the interfaces provided by the DMAv2 platform
       
    13 service.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    14 <section id="GUID-37ADE1EE-C4AB-41FD-B639-DE447AA4BD53"><title>Client
       
    15 functions</title><p>The clients that require to use the DMA framework
       
    16 functionality use the <xref href="GUID-780F4D53-5546-3B69-B328-0226C70EBDE2.dita"><apiname>DDmaRequest</apiname></xref> class functions
       
    17 to request DMA transfers. The clients should not set any parameters
       
    18 directly but use functions of the <xref href="GUID-780F4D53-5546-3B69-B328-0226C70EBDE2.dita"><apiname>DDmaRequest</apiname></xref> class.</p><table id="GUID-B53C9C8A-C5D5-4CA2-A81B-85D5EF9F86EA">
       
    19 <tgroup cols="2"><colspec colname="col1" colwidth="1.00*"/><colspec colname="col2" colwidth="1.00*"/>
       
    20 <thead>
       
    21 <row>
       
    22 <entry>API</entry>
       
    23 <entry>Description</entry>
       
    24 </row>
       
    25 </thead>
       
    26 <tbody>
       
    27 <row>
       
    28 <entry><xref href="GUID-780F4D53-5546-3B69-B328-0226C70EBDE2.dita#GUID-780F4D53-5546-3B69-B328-0226C70EBDE2/GUID-311897BE-5079-3945-A299-333B9B8E4071"><apiname>DDmaRequest::DDmaRequest(TDmaChannel&amp; aChannel,
       
    29 TCallback, TAny*, TInt)</apiname></xref></entry>
       
    30 <entry>The constructor for the <codeph>DDmaRequest</codeph> class. </entry>
       
    31 </row>
       
    32 <row>
       
    33 <entry><xref href="GUID-780F4D53-5546-3B69-B328-0226C70EBDE2.dita#GUID-780F4D53-5546-3B69-B328-0226C70EBDE2/GUID-55E31857-CCA8-3463-BB72-D45A8952A39F"><apiname>DDmaRequest::Fragment(const TDmaTransferArgs&amp;
       
    34 aTransferArgs)</apiname></xref></entry>
       
    35 <entry>Split request into a list of fragments small enough to be fed
       
    36 to the DMA Controller. The size of the fragment should be less than
       
    37 or equal to the maximum transfer size supported by the DMA controller.</entry>
       
    38 </row>
       
    39 <row>
       
    40 <entry><xref href="GUID-780F4D53-5546-3B69-B328-0226C70EBDE2.dita#GUID-780F4D53-5546-3B69-B328-0226C70EBDE2/GUID-0A83F782-DB62-39ED-8D32-DBD5949C8D3F"><apiname>DDmaRequest::Queue()</apiname></xref></entry>
       
    41 <entry>Asynchronous transfer request.</entry>
       
    42 </row>
       
    43 <row>
       
    44 <entry><xref href="GUID-780F4D53-5546-3B69-B328-0226C70EBDE2.dita#GUID-780F4D53-5546-3B69-B328-0226C70EBDE2/GUID-E91276AA-EC8A-39C7-802F-22F713E2BBAC"><apiname>DDmaRequest::ExpandDesList(TInt)</apiname></xref></entry>
       
    45 <entry>Add new descriptors to the existing list. The function is to
       
    46 be used by the clients that require to build a custom descriptor list.</entry>
       
    47 </row>
       
    48 <row>
       
    49 <entry><xref href="GUID-780F4D53-5546-3B69-B328-0226C70EBDE2.dita#GUID-780F4D53-5546-3B69-B328-0226C70EBDE2/GUID-8A34A869-3593-308E-93CC-36951C8B310B"><apiname>DDmaRequest::ExpandSrcDesList(TInt)</apiname></xref></entry>
       
    50 <entry>Add new descriptors to the existing source port descriptor
       
    51 list.</entry>
       
    52 </row>
       
    53 <row>
       
    54 <entry><xref href="GUID-780F4D53-5546-3B69-B328-0226C70EBDE2.dita#GUID-780F4D53-5546-3B69-B328-0226C70EBDE2/GUID-6A9CE3CA-BECF-3A8C-802A-D53FBB152627"><apiname>DDmaRequest::ExpandDstDesList(TInt)</apiname></xref></entry>
       
    55 <entry>Add new descriptors to the existing destination port descriptor
       
    56 list.</entry>
       
    57 </row>
       
    58 <row>
       
    59 <entry><xref href="GUID-780F4D53-5546-3B69-B328-0226C70EBDE2.dita#GUID-780F4D53-5546-3B69-B328-0226C70EBDE2/GUID-6E1A6759-E6E0-3C04-BEED-318AF42A892F"><apiname>DDmaRequest::FreeDesList()</apiname></xref></entry>
       
    60 <entry>Free resources associated with this request.</entry>
       
    61 </row>
       
    62 <row>
       
    63 <entry><xref href="GUID-780F4D53-5546-3B69-B328-0226C70EBDE2.dita#GUID-780F4D53-5546-3B69-B328-0226C70EBDE2/GUID-57047E56-CEC0-364D-A276-6F66AC2B2F3F"><apiname>DDmaRequest::FreeSrcDesList()</apiname></xref></entry>
       
    64 <entry>Free resources associated with this request from the source
       
    65 port descriptor chain.</entry>
       
    66 </row>
       
    67 <row>
       
    68 <entry><xref href="GUID-780F4D53-5546-3B69-B328-0226C70EBDE2.dita#GUID-780F4D53-5546-3B69-B328-0226C70EBDE2/GUID-1826EE8C-817B-3086-B524-CEC9329007DC"><apiname>DDmaRequest::FreeDstDesList()</apiname></xref></entry>
       
    69 <entry>Free resources associated with this request from the destination
       
    70 port descriptor chain.</entry>
       
    71 </row>
       
    72 <row>
       
    73 <entry><xref href="GUID-780F4D53-5546-3B69-B328-0226C70EBDE2.dita#GUID-780F4D53-5546-3B69-B328-0226C70EBDE2/GUID-C5CFD281-7E51-3366-8BAE-1D702F9BD142"><apiname>DDmaRequest::EnableSrcElementCounting(TBool)</apiname></xref></entry>
       
    74 <entry>Enables the functionality for counting the transferred source
       
    75 elements.</entry>
       
    76 </row>
       
    77 <row>
       
    78 <entry><xref href="GUID-780F4D53-5546-3B69-B328-0226C70EBDE2.dita#GUID-780F4D53-5546-3B69-B328-0226C70EBDE2/GUID-7C978E94-20B0-3445-9785-4135FAEFAFE3"><apiname>DDmaRequest::EnableDstElementCounting(TBool)</apiname></xref></entry>
       
    79 <entry>Enables the functionality for counting the transferred destination
       
    80 elements.</entry>
       
    81 </row>
       
    82 <row>
       
    83 <entry><xref href="GUID-780F4D53-5546-3B69-B328-0226C70EBDE2.dita#GUID-780F4D53-5546-3B69-B328-0226C70EBDE2/GUID-ED613C3E-CD72-342B-B8A1-F26F4B3319A8"><apiname>DDmaRequest::DisableSrcElementCounting()</apiname></xref></entry>
       
    84 <entry>Disables  the functionality for counting the transferred source
       
    85 elements.</entry>
       
    86 </row>
       
    87 <row>
       
    88 <entry><xref href="GUID-780F4D53-5546-3B69-B328-0226C70EBDE2.dita#GUID-780F4D53-5546-3B69-B328-0226C70EBDE2/GUID-021492C7-B778-3F58-A097-376A414B40B6"><apiname>DDmaRequest::DisableDstElementCounting()</apiname></xref></entry>
       
    89 <entry>Disables the functionality for counting the transferred destination
       
    90 elements.</entry>
       
    91 </row>
       
    92 <row>
       
    93 <entry><xref href="GUID-780F4D53-5546-3B69-B328-0226C70EBDE2.dita#GUID-780F4D53-5546-3B69-B328-0226C70EBDE2/GUID-6613A1DA-1E18-34A8-9FD8-4DE9269FA2B9"><apiname>DDmaRequest::TotalNumSrcElementsTransferred()</apiname></xref></entry>
       
    94 <entry>Get the number of transferred elements at the source port.
       
    95 This function can only be used if the counting is enabled.</entry>
       
    96 </row>
       
    97 <row>
       
    98 <entry><xref href="GUID-780F4D53-5546-3B69-B328-0226C70EBDE2.dita#GUID-780F4D53-5546-3B69-B328-0226C70EBDE2/GUID-5B1350AB-FFF6-3172-BB08-B50925CB89E9"><apiname>DDmaRequest::TotalNumDstElementsTransferred()</apiname></xref></entry>
       
    99 <entry>Get the number of transferred elements at the destination port.
       
   100 This function can only be used if the counting is enabled.</entry>
       
   101 </row>
       
   102 <row>
       
   103 <entry><xref href="GUID-780F4D53-5546-3B69-B328-0226C70EBDE2.dita#GUID-780F4D53-5546-3B69-B328-0226C70EBDE2/GUID-A43A6A70-EEA7-31B1-A9FB-A75865D64FC4"><apiname>DDmaRequest::FragmentCount()</apiname></xref></entry>
       
   104 <entry>Returns the number of fragments that are created by this transfer
       
   105 request. </entry>
       
   106 </row>
       
   107 <row>
       
   108 <entry><xref href="GUID-780F4D53-5546-3B69-B328-0226C70EBDE2.dita#GUID-780F4D53-5546-3B69-B328-0226C70EBDE2/GUID-F2B9B9ED-A2DF-3E43-A080-323CC67CD9DD"><apiname>DDmaRequest::SrcFragmentCount()</apiname></xref></entry>
       
   109 <entry>Returns the number of source port fragments that are created
       
   110 by this transfer request.</entry>
       
   111 </row>
       
   112 <row>
       
   113 <entry><xref href="GUID-780F4D53-5546-3B69-B328-0226C70EBDE2.dita#GUID-780F4D53-5546-3B69-B328-0226C70EBDE2/GUID-74BEEB4D-04B6-3722-A7CD-8ED9EE3267AC"><apiname>DDmaRequest::DstFragmentCount()</apiname></xref></entry>
       
   114 <entry>Returns the number of destination port fragments that are created
       
   115 by this transfer request.</entry>
       
   116 </row>
       
   117 <row>
       
   118 <entry><xref href="GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37.dita#GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37/GUID-C10135FD-8CCB-3032-9865-F86A8428A54D"><apiname>TDmaChannel::Open(const SCreateInfo&amp; aInfo, TDmaChannel*&amp;
       
   119 aChannel)</apiname></xref></entry>
       
   120 <entry>Open a specified channel.</entry>
       
   121 </row>
       
   122 <row>
       
   123 <entry><xref href="GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37.dita#GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37/GUID-8204AFBD-2A60-372E-B626-35BD19851FF7"><apiname>TDmaChannel::Close()</apiname></xref></entry>
       
   124 <entry>Close a previously opened channel.</entry>
       
   125 </row>
       
   126 <row>
       
   127 <entry><xref href="GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37.dita#GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37/GUID-0588547C-300B-3558-8173-E7581956D8DB"><apiname>TDmaChannel::LinkToChannel(TDmaChannel* aChannel)</apiname></xref></entry>
       
   128 <entry>Logically link a channel with the specified argument. When
       
   129 the argument is NULL the channel is unlinked.</entry>
       
   130 </row>
       
   131 <row>
       
   132 <entry><xref href="GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37.dita#GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37/GUID-39306527-CBB8-3C89-90F5-BB21A7F34A0F"><apiname>TDmaChannel::Pause()</apiname></xref></entry>
       
   133 <entry>Pause an active transfer.</entry>
       
   134 </row>
       
   135 <row>
       
   136 <entry><xref href="GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37.dita#GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37/GUID-5BC3DDA2-D6EB-375D-9FFC-DD40F26BD01C"><apiname>TDmaChannel::Resume()</apiname></xref></entry>
       
   137 <entry>Resume transfer on this channel.</entry>
       
   138 </row>
       
   139 <row>
       
   140 <entry><xref href="GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37.dita#GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37/GUID-0A98D2DC-2A61-3FBD-AB7A-623FE926A183"><apiname>TDmaChannel::CancelAll()</apiname></xref></entry>
       
   141 <entry>Cancel current and all pending requests.</entry>
       
   142 </row>
       
   143 <row>
       
   144 <entry><xref href="GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37.dita#GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37/GUID-FC57221E-0C3D-3150-80DC-B3532725607F"><apiname>TDmaChannel::MaxTransferLength(TUint aSrcFlags, TUint
       
   145 aDstFlags, TUint32 aPslInfo)</apiname></xref></entry>
       
   146 <entry>Get the maximum transfer length of the current channel.</entry>
       
   147 </row>
       
   148 <row>
       
   149 <entry><xref href="GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37.dita#GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37/GUID-F53A4F88-971E-37E9-973E-33DF9AD4847A"><apiname>TDmaChannel::AddressAlignMask(TUint aTargetFlags,
       
   150 TUint aElementSize, TUint32 aPslInfo)</apiname></xref></entry>
       
   151 <entry>Get the address or memory alignment mask.</entry>
       
   152 </row>
       
   153 <row>
       
   154 <entry><xref href="GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37.dita#GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37/GUID-4DCC8674-E4C7-365B-AE19-244F62C2273D"><apiname>TDmaChannel::DmacCaps()</apiname></xref></entry>
       
   155 <entry>Get the reference to the structure that contains the features
       
   156 and the capabilities of the DMAC associated with the current channel.</entry>
       
   157 </row>
       
   158 <row>
       
   159 <entry><xref href="GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37.dita#GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37/GUID-5C1CB8FB-31BC-3968-A5BD-B187EE0051D0"><apiname>TDmaChannel::IsrRedoRequest(TUint32 aSrcAddr=KPhysAddrInvalid,
       
   160 TUint32 aDstAddr=KPhysAddrInvalid, TUint aTransferCount=0, TUint32
       
   161 aPslRequestInfo=0, TBool aIsrCb=ETrue)</apiname></xref></entry>
       
   162 <entry>Repeat the current transfer request with modified parameters.</entry>
       
   163 </row>
       
   164 <row>
       
   165 <entry><xref href="GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37.dita#GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37/GUID-B3887AA6-FEB6-3109-A98A-2854ED903628"><apiname>TDmaChannel::IsQueueEmpty()</apiname></xref></entry>
       
   166 <entry>Check if the current transfer queue is empty.</entry>
       
   167 </row>
       
   168 <row>
       
   169 <entry><xref href="GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37.dita#GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37/GUID-A84A0711-4573-3ED1-A20E-759215F21255"><apiname>TDmaChannel::PslId()</apiname></xref></entry>
       
   170 <entry>Get the PSL specific ID of the current channel. This function
       
   171 is used for debugging by the PIL.</entry>
       
   172 </row>
       
   173 <row>
       
   174 <entry><xref href="GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37.dita#GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37/GUID-B65DAEB8-C389-33DC-AD46-EFB0D34C42FC"><apiname>TDmaChannel::FailNext(TInt)</apiname></xref></entry>
       
   175 <entry>Force to fail the next transfer request. This function is for
       
   176 testing purpose only.</entry>
       
   177 </row>
       
   178 <row>
       
   179 <entry><xref href="GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37.dita#GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37/GUID-640C7397-434C-3EB4-9931-9E462CE0FB22"><apiname>TDmaChannel::MissNextInterrupts(TInt)</apiname></xref></entry>
       
   180 <entry>Force the DMAC to miss one or more interrupts.</entry>
       
   181 </row>
       
   182 <row>
       
   183 <entry><xref href="GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37.dita#GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37/GUID-DEABB054-CAF1-3FC4-BC14-87581AFD5370"><apiname>TDmaChannel::Extension(TInt aCmd, TAny* aArg)</apiname></xref></entry>
       
   184 <entry>Allows PSL to extend the DMA API with a channel specific functionality.</entry>
       
   185 </row>
       
   186 <row>
       
   187 <entry><xref href="GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37.dita#GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37/GUID-89BD759C-7269-3C93-ABE2-34E6DA087DA6"><apiname>TDmaChannel::StaticExtension(TInt aCmd, TAny* aArg)</apiname></xref></entry>
       
   188 <entry>Allows PSL to extend the DMA API with a channel independent
       
   189 functionality.</entry>
       
   190 </row>
       
   191 </tbody>
       
   192 </tgroup>
       
   193 </table></section>
       
   194 <section id="GUID-827B3A45-FB7F-4E4E-901A-BB50C2D19EC3"><title>DMA
       
   195 controller implementation</title>The <xref href="GUID-25398075-927B-36E4-B953-16785EC4086C.dita"><apiname>TDmac</apiname></xref> class
       
   196 provides the functions of a DMA controller:<table id="GUID-FCA888C8-F648-4A9F-8595-1ABF8AE305C5">
       
   197 <tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
       
   198 <thead>
       
   199 <row>
       
   200 <entry valign="top">API</entry>
       
   201 <entry valign="top">Description</entry>
       
   202 </row>
       
   203 </thead>
       
   204 <tbody>
       
   205 <row>
       
   206 <entry><xref href="GUID-25398075-927B-36E4-B953-16785EC4086C.dita#GUID-25398075-927B-36E4-B953-16785EC4086C/GUID-5B418CE9-7050-3301-927E-059C55B2FC0F"><apiname>TDmac::Transfer(const TDmaChannel&amp; aChannel, const
       
   207 SDmaDesHdr&amp; aHdr)</apiname></xref></entry>
       
   208 <entry>Initiate a transfer request on a specified channel.</entry>
       
   209 </row>
       
   210 <row>
       
   211 <entry><xref href="GUID-25398075-927B-36E4-B953-16785EC4086C.dita#GUID-25398075-927B-36E4-B953-16785EC4086C/GUID-5191C7E1-A805-3BD1-9743-76B94A457538"><apiname>TDmac::StopTransfer(const TDmaChannel&amp; aChannel)</apiname></xref></entry>
       
   212 <entry>Stop a data transfer on a specified channel.</entry>
       
   213 </row>
       
   214 <row>
       
   215 <entry><xref href="GUID-25398075-927B-36E4-B953-16785EC4086C.dita#GUID-25398075-927B-36E4-B953-16785EC4086C/GUID-216083D9-6506-3DD0-B884-80AB16A929A2"><apiname>TDmac::IsIdle(const TDmaChannel&amp; aChannel)</apiname></xref></entry>
       
   216 <entry>Get the state of a specified channel.</entry>
       
   217 </row>
       
   218 <row>
       
   219 <entry><xref href="GUID-25398075-927B-36E4-B953-16785EC4086C.dita#GUID-25398075-927B-36E4-B953-16785EC4086C/GUID-D6D011E9-9D75-3881-87D8-1986FFBBA106"><apiname>TDmac::Extension()</apiname></xref></entry>
       
   220 <entry>Implement a platform specific functionality per channel.</entry>
       
   221 </row>
       
   222 </tbody>
       
   223 </tgroup>
       
   224 </table></section>
       
   225 <section id="GUID-FD5756CA-CAA7-4259-8508-2F37E2D30C42"><title>Channel
       
   226 manager implementation</title><p>The <xref href="GUID-176B8E0D-0422-341B-A134-7C85432E1303.dita"><apiname>DmaChannelMgr</apiname></xref> class provides functions to open and close the channels by the PIL.
       
   227 Implement the following functions in the PSL:</p><table id="GUID-965FE251-FE92-4D1A-B35D-92E5104CBB6F">
       
   228 <tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
       
   229 <thead>
       
   230 <row>
       
   231 <entry valign="top">API</entry>
       
   232 <entry valign="top">Description</entry>
       
   233 </row>
       
   234 </thead>
       
   235 <tbody>
       
   236 <row>
       
   237 <entry><xref href="GUID-176B8E0D-0422-341B-A134-7C85432E1303.dita#GUID-176B8E0D-0422-341B-A134-7C85432E1303/GUID-23FE411E-A058-3C6F-957C-BB36F0EBE3E6"><apiname>DmaChannelMgr::Open(TUint32 aOpenId, TBool aDynChannel,
       
   238 TUint aPriority)</apiname></xref></entry>
       
   239 <entry>Open a channel with a specified channel ID.</entry>
       
   240 </row>
       
   241 <row>
       
   242 <entry><xref href="GUID-176B8E0D-0422-341B-A134-7C85432E1303.dita#GUID-176B8E0D-0422-341B-A134-7C85432E1303/GUID-909D795A-7303-3A76-9C8E-3B07A97DD716"><apiname>DmaChannelMgr::Close() </apiname></xref></entry>
       
   243 <entry>Close a channel.</entry>
       
   244 </row>
       
   245 </tbody>
       
   246 </tgroup>
       
   247 </table></section>
       
   248 <section id="GUID-868DC865-577F-43F2-A8F2-E5649804F1AD"><title>DMA
       
   249 channel implementation</title><p>The <xref href="GUID-83882548-FAC5-3EFF-92ED-14D1D9A85D37.dita"><apiname>TDmaChannel</apiname></xref> class provides the functions to implement a DMA channel. There are
       
   250 three types of DMA channels that be can be implemented as described
       
   251 below.</p> <table id="GUID-7EDF7986-AA5A-456C-8BF4-0ADE3E348F65">
       
   252 <tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
       
   253 <thead>
       
   254 <row>
       
   255 <entry valign="top">Class</entry>
       
   256 <entry valign="top">Description</entry>
       
   257 </row>
       
   258 </thead>
       
   259 <tbody>
       
   260 <row>
       
   261 <entry><xref href="GUID-A8B4AD1B-770C-363E-A0DE-C78A9786CBDC.dita"><apiname>TDmaSbChannel</apiname></xref></entry>
       
   262 <entry>Class to implement a single buffer channel.</entry>
       
   263 </row>
       
   264 <row>
       
   265 <entry><xref href="GUID-FD76AF08-6250-3054-8A06-16343E385B23.dita"><apiname>TDmaDbChannel</apiname></xref></entry>
       
   266 <entry>Class to implement a double buffer channel.</entry>
       
   267 </row>
       
   268 <row>
       
   269 <entry><xref href="GUID-2D4CFBB1-8D64-3CF5-B6F0-B24D16D5BAD4.dita"><apiname>TDmaSgChannel</apiname></xref></entry>
       
   270 <entry>Class to implement a scatter-gather channel.</entry>
       
   271 </row>
       
   272 <row>
       
   273 <entry><xref href="GUID-B0100F2B-6C01-3429-8B48-DFFB96EA85D0.dita"><apiname>TDmaAsymSgChannel</apiname></xref></entry>
       
   274 <entry>Channel class for controllers using asymmetric descriptor lists.</entry>
       
   275 </row>
       
   276 </tbody>
       
   277 </tgroup>
       
   278 </table></section>
       
   279 </conbody></concept>