embeddedsw/XilinxProcessorIPLib/drivers/axidma/doc/html/api/xaxidma_8c.html
Kedareswara rao Appana 7e9c762d45 doxygen: Update doxygen for the drivers to include .h files in documentation.
This patch updates the doxygen for the drivers
axicdma,axidma, axipcie,axietherent,axipmon to include .h files
in the listof files provided in the index.html file.

Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com>
2014-09-02 11:21:28 +05:30

481 lines
22 KiB
HTML

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver dma v8_0: xaxidma.c File Reference
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>xaxidma.c File Reference</h1><code>#include &quot;<a class="el" href="xaxidma_8h.html">xaxidma.h</a>&quot;</code><br/>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaxidma_8c.html#abe69b65d3c4422df39418eb2a64f435f">XAXIDMA_RESET_TIMEOUT</a>&nbsp;&nbsp;&nbsp;500</td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaxidma_8c.html#a8026e76c90d891d21c9c355ff776cb77">XAxiDma_CfgInitialize</a> (<a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *InstancePtr, <a class="el" href="struct_x_axi_dma___config.html">XAxiDma_Config</a> *Config)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaxidma_8c.html#a5b7d1248ef065915fd8c9e8d5e00640f">XAxiDma_Reset</a> (<a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaxidma_8c.html#af73e1329e40c8ac1ae47a7d9c104af75">XAxiDma_ResetIsDone</a> (<a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaxidma_8c.html#adb572b623215a7df62b1e0468e3bd68c">XAxiDma_Pause</a> (<a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaxidma_8c.html#a847cd9a0255fcb444bce58b945de8574">XAxiDma_Resume</a> (<a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaxidma_8c.html#aff68c0ba3e9e25dfe5e39153301862f8">XAxiDma_Busy</a> (<a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *InstancePtr, int Direction)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaxidma_8c.html#a5becc8b0f9945af34e372ced2b37aebb">XAxiDma_SelectKeyHole</a> (<a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *InstancePtr, int Direction, int Select)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaxidma_8c.html#a2d93bfcf1c3e34cb9fc4a22da6148dc5">XAxiDma_SelectCyclicMode</a> (<a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *InstancePtr, int Direction, int Select)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaxidma_8c.html#ac6b3c1d4b2401251ae23728e35814ef5">XAxiDma_SimpleTransfer</a> (<a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *InstancePtr, u32 BuffAddr, u32 Length, int Direction)</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>This file implements DMA engine-wise initialization and control functions. For more information on the implementation of this driver, see <a class="el" href="xaxidma_8h.html">xaxidma.h</a>.</p>
<pre>
MODIFICATION HISTORY:</pre><pre> Ver Who Date Changes
----- ---- -------- -------------------------------------------------------
1.00a jz 05/18/10 First release
2.00a jz 08/10/10 Second release, added in <a class="el" href="xaxidma__g_8c.html">xaxidma_g.c</a>, <a class="el" href="xaxidma__sinit_8c.html">xaxidma_sinit.c</a>,
updated tcl file, added <a class="el" href="xaxidma__porting__guide_8h.html">xaxidma_porting_guide.h</a>
3.00a jz 11/22/10 Support IP core parameters change
4.00a rkv 02/22/11 Added support for simple DMA mode
New API added for simple DMA mode are</p>
<ul>
<li>XAxiDma_Busy</li>
<li>XAxiDma_SimpleTransfer
6.00a srt 01/24/12 Added support for Multi-Channel DMA mode.</li>
</ul>
</pre><pre>Changed APIs:
* XAxiDma_Start(XAxiDma * InstancePtr, int RingIndex)
* XAxiDma_Started(XAxiDma * InstancePtr, int RingIndex)
* XAxiDma_Pause(XAxiDma * InstancePtr, int RingIndex)
* XAxiDma_Resume(XAxiDma * InstancePtr, int RingIndex)
* XAxiDma_SimpleTransfer(<a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *InstancePtr,
u32 BuffAddr, u32 Length,
int Direction, int RingIndex)</p>
<ul>
<li>New API:
* XAxiDma_SelectKeyHole(<a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *InstancePtr,
int Direction, int Select)
7.00a srt 06/18/12 All the APIs changed in v6_00_a are reverted back for
backward compatibility.
7.01a srt 10/26/12 Fixed issue with driver as it fails with IP version
&lt; 6.00a as the parameter C_NUM_*_CHANNELS is not
applicable.
8.0 srt 01/29/14 Added support for Micro DMA Mode and Cyclic mode of
operations.</li>
<li>New API:
* XAxiDma_SelectCyclicMode(<a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *InstancePtr,
int Direction, int Select)</li>
</ul>
</pre><pre> </pre> <hr/><h2>Define Documentation</h2>
<a class="anchor" id="abe69b65d3c4422df39418eb2a64f435f"></a><!-- doxytag: member="xaxidma.c::XAXIDMA_RESET_TIMEOUT" ref="abe69b65d3c4422df39418eb2a64f435f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XAXIDMA_RESET_TIMEOUT&nbsp;&nbsp;&nbsp;500</td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="aff68c0ba3e9e25dfe5e39153301862f8"></a><!-- doxytag: member="xaxidma.c::XAxiDma_Busy" ref="aff68c0ba3e9e25dfe5e39153301862f8" args="(XAxiDma *InstancePtr, int Direction)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 XAxiDma_Busy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>Direction</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This function checks whether specified DMA channel is busy</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is the driver instance we are working on</td></tr>
<tr><td valign="top"></td><td valign="top"><em>Direction</em>&nbsp;</td><td>is DMA transfer direction, valid values are</p>
<ul>
<li>XAXIDMA_DMA_TO_DEVICE.</li>
<li>XAXIDMA_DEVICE_TO_DMA.</li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>- TRUE if channel is busy<ul>
<li>FALSE if channel is idle</li>
</ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div>
<a class="anchor" id="a8026e76c90d891d21c9c355ff776cb77"></a><!-- doxytag: member="xaxidma.c::XAxiDma_CfgInitialize" ref="a8026e76c90d891d21c9c355ff776cb77" args="(XAxiDma *InstancePtr, XAxiDma_Config *Config)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XAxiDma_CfgInitialize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_x_axi_dma___config.html">XAxiDma_Config</a> *&nbsp;</td>
<td class="paramname"> <em>Config</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This function initializes a DMA engine. This function must be called prior to using a DMA engine. Initializing a engine includes setting up the register base address, setting up the instance data, and ensuring the hardware is in a quiescent state.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the DMA engine instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Config</em>&nbsp;</td><td>is a pointer to an <a class="el" href="struct_x_axi_dma___config.html">XAxiDma_Config</a> structure. It contains the information about the hardware build, including base address,and whether status control stream (StsCntrlStrm), MM2S and S2MM are included in the build.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS for successful initialization</li>
<li>XST_INVALID_PARAM if pointer to the configuration structure is NULL</li>
<li>XST_DMA_ERROR if reset operation failed at the end of initialization</li>
</ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>We assume the hardware building tool will check and error out for a hardware build that has no transfer channels. </dd></dl>
</div>
</div>
<a class="anchor" id="adb572b623215a7df62b1e0468e3bd68c"></a><!-- doxytag: member="xaxidma.c::XAxiDma_Pause" ref="adb572b623215a7df62b1e0468e3bd68c" args="(XAxiDma *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XAxiDma_Pause </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Pause DMA transactions on both channels.</p>
<p>If the engine is running and doing transfers, this function does not stop the DMA transactions immediately, because then hardware will throw away our previously queued transfers. All submitted transfers will finish. Transfers submitted after this function will not start until <a class="el" href="xaxidma__bdring_8c.html#aafd18a1df185c30b4745c147e3295ac3">XAxiDma_BdRingStart()</a> or <a class="el" href="xaxidma_8c.html#a847cd9a0255fcb444bce58b945de8574">XAxiDma_Resume()</a> is called.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the DMA engine instance to be worked on.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if successful</li>
<li>XST_NOT_SGDMA, if the driver instance is not initialized</li>
</ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="a5b7d1248ef065915fd8c9e8d5e00640f"></a><!-- doxytag: member="xaxidma.c::XAxiDma_Reset" ref="a5b7d1248ef065915fd8c9e8d5e00640f" args="(XAxiDma *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XAxiDma_Reset </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reset both TX and RX channels of a DMA engine.</p>
<p>Reset one channel resets the whole AXI DMA engine.</p>
<p>Any DMA transaction in progress will finish gracefully before engine starts reset. Any other transactions that have been submitted to hardware will be discarded by the hardware.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the DMA engine instance to be worked on.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>None</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>After the reset:<ul>
<li>All interrupts are disabled.</li>
<li>Engine is halted </li>
</ul>
</dd></dl>
</div>
</div>
<a class="anchor" id="af73e1329e40c8ac1ae47a7d9c104af75"></a><!-- doxytag: member="xaxidma.c::XAxiDma_ResetIsDone" ref="af73e1329e40c8ac1ae47a7d9c104af75" args="(XAxiDma *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XAxiDma_ResetIsDone </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Check whether reset is done</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the DMA engine instance to be worked on.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>1 if reset is done.</li>
<li>0 if reset is not done</li>
</ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="a847cd9a0255fcb444bce58b945de8574"></a><!-- doxytag: member="xaxidma.c::XAxiDma_Resume" ref="a847cd9a0255fcb444bce58b945de8574" args="(XAxiDma *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XAxiDma_Resume </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Resume DMA transactions on both channels.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the DMA engine instance to be worked on.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS for success</li>
<li>XST_NOT_SGDMA if the driver instance has not been initialized</li>
<li>XST_DMA_ERROR if one of the channels fails to start</li>
</ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="a2d93bfcf1c3e34cb9fc4a22da6148dc5"></a><!-- doxytag: member="xaxidma.c::XAxiDma_SelectCyclicMode" ref="a2d93bfcf1c3e34cb9fc4a22da6148dc5" args="(XAxiDma *InstancePtr, int Direction, int Select)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XAxiDma_SelectCyclicMode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>Direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>Select</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This function Enable or Disable Cyclic Mode Feature</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is the driver instance we are working on</td></tr>
<tr><td valign="top"></td><td valign="top"><em>Direction</em>&nbsp;</td><td>is DMA transfer direction, valid values are</p>
<ul>
<li>XAXIDMA_DMA_TO_DEVICE.</li>
<li>XAXIDMA_DEVICE_TO_DMA. Select is the option to enable (TRUE) or disable (FALSE).</li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>- XST_SUCCESS for success</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div>
<a class="anchor" id="a5becc8b0f9945af34e372ced2b37aebb"></a><!-- doxytag: member="xaxidma.c::XAxiDma_SelectKeyHole" ref="a5becc8b0f9945af34e372ced2b37aebb" args="(XAxiDma *InstancePtr, int Direction, int Select)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XAxiDma_SelectKeyHole </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>Direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>Select</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This function Enable or Disable KeyHole Feature</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is the driver instance we are working on</td></tr>
<tr><td valign="top"></td><td valign="top"><em>Direction</em>&nbsp;</td><td>is DMA transfer direction, valid values are</p>
<ul>
<li>XAXIDMA_DMA_TO_DEVICE.</li>
<li>XAXIDMA_DEVICE_TO_DMA. Select is the option to enable (TRUE) or disable (FALSE).</li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>- XST_SUCCESS for success</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div>
<a class="anchor" id="ac6b3c1d4b2401251ae23728e35814ef5"></a><!-- doxytag: member="xaxidma.c::XAxiDma_SimpleTransfer" ref="ac6b3c1d4b2401251ae23728e35814ef5" args="(XAxiDma *InstancePtr, u32 BuffAddr, u32 Length, int Direction)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XAxiDma_SimpleTransfer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_axi_dma.html">XAxiDma</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&nbsp;</td>
<td class="paramname"> <em>BuffAddr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&nbsp;</td>
<td class="paramname"> <em>Length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>Direction</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This function does one simple transfer submission</p>
<p>It checks in the following sequence:</p>
<ul>
<li>if engine is busy, cannot submit</li>
<li>if engine is in SG mode , cannot submit</li>
</ul>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is the pointer to the driver instance </td></tr>
<tr><td valign="top"></td><td valign="top"><em>BuffAddr</em>&nbsp;</td><td>is the address of the source/destination buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Length</em>&nbsp;</td><td>is the length of the transfer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Direction</em>&nbsp;</td><td>is DMA transfer direction, valid values are</p>
<ul>
<li>XAXIDMA_DMA_TO_DEVICE.</li>
<li>XAXIDMA_DEVICE_TO_DMA.</li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS for success of submission</li>
<li>XST_FAILURE for submission failure, maybe caused by: Another simple transfer is still going</li>
<li>XST_INVALID_PARAM if:Length out of valid range [1:8M] Or, address not aligned when DRE is not built in</li>
</ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>This function is used only when system is configured as Simple mode. </dd></dl>
</div>
</div>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>