embeddedsw/XilinxProcessorIPLib/drivers/emaclite/doc/html/api/xemaclite_8h.html
Kedareswara rao Appana 659fb81abd doxygen: Update doxygen for the drivers to include .h files in documentation.
This patch updates the doxygen for the drivers
emaclite,dmaps, emacps,gpio,gpiops 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:33 +05:30

943 lines
49 KiB
HTML
Executable file

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver dmaps v4_0: xemaclite.h 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>xemaclite.h File Reference</h1><code>#include &quot;xenv.h&quot;</code><br/>
<code>#include &quot;xil_types.h&quot;</code><br/>
<code>#include &quot;xil_assert.h&quot;</code><br/>
<code>#include &quot;xstatus.h&quot;</code><br/>
<code>#include &quot;<a class="el" href="xemaclite__l_8h.html">xemaclite_l.h</a>&quot;</code><br/>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_lite___config.html">XEmacLite_Config</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_lite.html">XEmacLite</a></td></tr>
<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="xemaclite_8h.html#a52d1a768dfa187c3ef41f05068a69738">XEMACLITE_H</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#a529b4a45111f7a6a68d4e6e2df08bbac">XEL_DEVICE_NAME</a>&nbsp;&nbsp;&nbsp;&quot;xemaclite&quot;</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#a21df4aef1415dfcfb1a6472a0aed56b2">XEL_DEVICE_DESC</a>&nbsp;&nbsp;&nbsp;&quot;Xilinx Ethernet Lite 10/100 MAC&quot;</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#a5a02b0090a1bab8c4151fb3154e9fa0f">XEmacLite_NextTransmitAddr</a>(InstancePtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#a541b8f45d82969dc9b9116420bfdb1c3">XEmacLite_NextReceiveAddr</a>(InstancePtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#aabbc302961b99a3f92f553c08549a92b">XEmacLite_IsMdioConfigured</a>(InstancePtr)&nbsp;&nbsp;&nbsp;((InstancePtr)-&gt;EmacLiteConfig.MdioInclude == 1)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#ab7c326fd248dbfd0e82513810febeee9">XEmacLite_IsLoopbackConfigured</a>(InstancePtr)&nbsp;&nbsp;&nbsp;((InstancePtr)-&gt;EmacLiteConfig.Loopback == 1)</td></tr>
<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#adfca662ba36ecd3fa7f5816d33e1235a">XEmacLite_Handler</a> )(void *CallBackRef)</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="xemaclite_8h.html#a24330d0e9ca51b8e9cd097ca4b870e91">XEmacLite_CfgInitialize</a> (<a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *InstancePtr, <a class="el" href="struct_x_emac_lite___config.html">XEmacLite_Config</a> *EmacLiteConfigPtr, u32 EffectiveAddr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#aaf404b645896f5fb74e87b4ada362809">XEmacLite_SetMacAddress</a> (<a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *InstancePtr, u8 *AddressPtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#a3f75e1a5a0b8d0e5e085880919ad693a">XEmacLite_TxBufferAvailable</a> (<a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#ae7ced3b39bd2f06d037660e884c0706b">XEmacLite_FlushReceive</a> (<a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#aa509977aea023dfeef6bddb10b2597dc">XEmacLite_Send</a> (<a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *InstancePtr, u8 *FramePtr, unsigned ByteCount)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u16&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#a6b771b95e193baa02186c6e106c7aefb">XEmacLite_Recv</a> (<a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *InstancePtr, u8 *FramePtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#a444ab091bdc373bf2e1a266d5febecd0">XEmacLite_PhyRead</a> (<a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *InstancePtr, u32 PhyAddress, u32 RegNum, u16 *PhyDataPtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#a63ef92abf534fcf6f41601e93efa4cc7">XEmacLite_PhyWrite</a> (<a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *InstancePtr, u32 PhyAddress, u32 RegNum, u16 PhyData)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#a1bd8c7361add009208f4c6778644a83c">XEmacLite_EnableLoopBack</a> (<a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#a55c4a0b58c4e35dbf81c4866946f368a">XEmacLite_DisableLoopBack</a> (<a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_x_emac_lite___config.html">XEmacLite_Config</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#a147bbe6b3cf64cc36324d1db67e22500">XEmacLite_LookupConfig</a> (u16 DeviceId)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#af0c3a796e557b59a64a61a9b486a323e">XEmacLite_Initialize</a> (<a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *InstancePtr, u16 DeviceId)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#a28a0b4547f8b9b8eb675123df8ab8907">XEmacLite_EnableInterrupts</a> (<a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#acac27172503eee6a171afe1679c20f2c">XEmacLite_DisableInterrupts</a> (<a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#a72db0e7e81077c3ad3947009a5299fdf">XEmacLite_InterruptHandler</a> (void *InstancePtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#a5bacfdd394bc95a6b34dec438bfad8bf">XEmacLite_SetRecvHandler</a> (<a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *InstancePtr, void *CallBackRef, <a class="el" href="xemaclite_8h.html#adfca662ba36ecd3fa7f5816d33e1235a">XEmacLite_Handler</a> FuncPtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#a2e48d33c6b41774f4cb37bffc85f59a1">XEmacLite_SetSendHandler</a> (<a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *InstancePtr, void *CallBackRef, <a class="el" href="xemaclite_8h.html#adfca662ba36ecd3fa7f5816d33e1235a">XEmacLite_Handler</a> FuncPtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemaclite_8h.html#a0ea2a0f4e13ef174477a3cf2a9f86e69">XEmacLite_SelfTest</a> (<a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *InstancePtr)</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="a21df4aef1415dfcfb1a6472a0aed56b2"></a><!-- doxytag: member="xemaclite.h::XEL_DEVICE_DESC" ref="a21df4aef1415dfcfb1a6472a0aed56b2" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XEL_DEVICE_DESC&nbsp;&nbsp;&nbsp;&quot;Xilinx Ethernet Lite 10/100 MAC&quot;</td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a529b4a45111f7a6a68d4e6e2df08bbac"></a><!-- doxytag: member="xemaclite.h::XEL_DEVICE_NAME" ref="a529b4a45111f7a6a68d4e6e2df08bbac" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XEL_DEVICE_NAME&nbsp;&nbsp;&nbsp;&quot;xemaclite&quot;</td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a52d1a768dfa187c3ef41f05068a69738"></a><!-- doxytag: member="xemaclite.h::XEMACLITE_H" ref="a52d1a768dfa187c3ef41f05068a69738" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XEMACLITE_H</td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="ab7c326fd248dbfd0e82513810febeee9"></a><!-- doxytag: member="xemaclite.h::XEmacLite_IsLoopbackConfigured" ref="ab7c326fd248dbfd0e82513810febeee9" args="(InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XEmacLite_IsLoopbackConfigured</td>
<td>(</td>
<td class="paramtype">InstancePtr&nbsp;</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;((InstancePtr)-&gt;EmacLiteConfig.Loopback == 1)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This macro determines if the device is currently configured for internal loopback.</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 pointer to the instance of the EmacLite driver.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>TRUE if the device is configured for internal loopback.</li>
<li>FALSE if the device is NOT configured for internal loopback.</li>
</ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>C-Style signature: int <a class="el" href="xemaclite_8h.html#ab7c326fd248dbfd0e82513810febeee9">XEmacLite_IsLoopbackConfigured(XEmacLite *InstancePtr)</a> </dd></dl>
</div>
</div>
<a class="anchor" id="aabbc302961b99a3f92f553c08549a92b"></a><!-- doxytag: member="xemaclite.h::XEmacLite_IsMdioConfigured" ref="aabbc302961b99a3f92f553c08549a92b" args="(InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XEmacLite_IsMdioConfigured</td>
<td>(</td>
<td class="paramtype">InstancePtr&nbsp;</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;((InstancePtr)-&gt;EmacLiteConfig.MdioInclude == 1)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This macro determines if the device is currently configured for MDIO.</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 pointer to the instance of the EmacLite driver.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>TRUE if the device is configured for MDIO.</li>
<li>FALSE if the device is NOT configured for MDIO.</li>
</ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>C-Style signature: int <a class="el" href="xemaclite_8h.html#aabbc302961b99a3f92f553c08549a92b">XEmacLite_IsMdioConfigured(XEmacLite *InstancePtr)</a> </dd></dl>
</div>
</div>
<a class="anchor" id="a541b8f45d82969dc9b9116420bfdb1c3"></a><!-- doxytag: member="xemaclite.h::XEmacLite_NextReceiveAddr" ref="a541b8f45d82969dc9b9116420bfdb1c3" args="(InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XEmacLite_NextReceiveAddr</td>
<td>(</td>
<td class="paramtype">InstancePtr&nbsp;</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">((InstancePtr)-&gt;EmacLiteConfig.BaseAddress + \
(InstancePtr)-&gt;NextRxBufferToUse)
</pre></div><p>Return the next expected Receive Buffer's address.</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 pointer to the instance of the driver to be worked on</td></tr>
</table>
</dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>C-Style signature: u32 <a class="el" href="xemaclite_8h.html#a541b8f45d82969dc9b9116420bfdb1c3">XEmacLite_NextReceiveAddr(XEmacLite *InstancePtr)</a>;</dd></dl>
<p>This macro returns the address of the next receive buffer to read data from. This is the expected receive buffer address if the driver is in sync. </p>
</div>
</div>
<a class="anchor" id="a5a02b0090a1bab8c4151fb3154e9fa0f"></a><!-- doxytag: member="xemaclite.h::XEmacLite_NextTransmitAddr" ref="a5a02b0090a1bab8c4151fb3154e9fa0f" args="(InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XEmacLite_NextTransmitAddr</td>
<td>(</td>
<td class="paramtype">InstancePtr&nbsp;</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">((InstancePtr)-&gt;EmacLiteConfig.BaseAddress + \
(InstancePtr)-&gt;NextTxBufferToUse) + <a class="code" href="xemaclite__l_8h.html#a4dbb708d2fea4f6a716bcf9eb0aaad66">XEL_TXBUFF_OFFSET</a>
</pre></div><p>Return the next expected Transmit Buffer's address.</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 pointer to the instance of the driver to be worked on</td></tr>
</table>
</dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>C-Style signature: u32 <a class="el" href="xemaclite_8h.html#a5a02b0090a1bab8c4151fb3154e9fa0f">XEmacLite_NextTransmitAddr(XEmacLite *InstancePtr)</a>;</dd></dl>
<p>This macro returns the address of the next transmit buffer to put data into. This is used to determine the destination of the next transmit data frame. </p>
</div>
</div>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="adfca662ba36ecd3fa7f5816d33e1235a"></a><!-- doxytag: member="xemaclite.h::XEmacLite_Handler" ref="adfca662ba36ecd3fa7f5816d33e1235a" args=")(void *CallBackRef)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* <a class="el" href="xemaclite_8h.html#adfca662ba36ecd3fa7f5816d33e1235a">XEmacLite_Handler</a>)(void *CallBackRef)</td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a24330d0e9ca51b8e9cd097ca4b870e91"></a><!-- doxytag: member="xemaclite.h::XEmacLite_CfgInitialize" ref="a24330d0e9ca51b8e9cd097ca4b870e91" args="(XEmacLite *InstancePtr, XEmacLite_Config *EmacLiteConfigPtr, u32 EffectiveAddr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacLite_CfgInitialize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_lite.html">XEmacLite</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_emac_lite___config.html">XEmacLite_Config</a> *&nbsp;</td>
<td class="paramname"> <em>EmacLiteConfigPtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&nbsp;</td>
<td class="paramname"> <em>EffectiveAddr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Initialize a specific <a class="el" href="struct_x_emac_lite.html">XEmacLite</a> instance/driver. The initialization entails:</p>
<ul>
<li>Initialize fields of the <a class="el" href="struct_x_emac_lite.html">XEmacLite</a> instance structure.</li>
</ul>
<p>The driver defaults to polled mode operation.</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 <a class="el" href="struct_x_emac_lite.html">XEmacLite</a> instance. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>EmacLiteConfigPtr</em>&nbsp;</td><td>points to the <a class="el" href="struct_x_emac_lite.html">XEmacLite</a> device configuration structure. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>EffectiveAddr</em>&nbsp;</td><td>is the device base address in the virtual memory address space. If the address translation is not used then the physical address is passed. Unexpected errors may occur if the address mapping is changed after this function is invoked.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if initialization was successful.</li>
</ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The initialization of the PHY device is not done in this function. The user needs to use XEmacLite_PhyRead and XEmacLite_PhyWrite functions to access the PHY device. </dd></dl>
</div>
</div>
<a class="anchor" id="acac27172503eee6a171afe1679c20f2c"></a><!-- doxytag: member="xemaclite.h::XEmacLite_DisableInterrupts" ref="acac27172503eee6a171afe1679c20f2c" args="(XEmacLite *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XEmacLite_DisableInterrupts </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Disables the interrupts from the device (the higher layer software is responsible for disabling interrupts at the interrupt controller).</p>
<p>To start using the device again, _EnableInterrupts must be 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 <a class="el" href="struct_x_emac_lite.html">XEmacLite</a> instance .</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>None. </dd></dl>
</div>
</div>
<a class="anchor" id="a55c4a0b58c4e35dbf81c4866946f368a"></a><!-- doxytag: member="xemaclite.h::XEmacLite_DisableLoopBack" ref="a55c4a0b58c4e35dbf81c4866946f368a" args="(XEmacLite *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XEmacLite_DisableLoopBack </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Disable Internal loop back functionality.</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 pointer to the instance of the driver.</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>None. </dd></dl>
</div>
</div>
<a class="anchor" id="a28a0b4547f8b9b8eb675123df8ab8907"></a><!-- doxytag: member="xemaclite.h::XEmacLite_EnableInterrupts" ref="a28a0b4547f8b9b8eb675123df8ab8907" args="(XEmacLite *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacLite_EnableInterrupts </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Enable the EmacLite Interrupts.</p>
<p>This function must be called before other functions to send or receive data in interrupt driven mode. The user should have connected the interrupt handler of the driver to an interrupt source such as an interrupt controller or the processor interrupt prior to this function being 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 <a class="el" href="struct_x_emac_lite.html">XEmacLite</a> instance.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the device interrupts were enabled successfully.</li>
<li>XST_NO_CALLBACK if the callbacks were not set.</li>
</ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div>
<a class="anchor" id="a1bd8c7361add009208f4c6778644a83c"></a><!-- doxytag: member="xemaclite.h::XEmacLite_EnableLoopBack" ref="a1bd8c7361add009208f4c6778644a83c" args="(XEmacLite *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XEmacLite_EnableLoopBack </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Enable Internal loop back functionality.</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 pointer to the instance of the driver.</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>None. </dd></dl>
</div>
</div>
<a class="anchor" id="ae7ced3b39bd2f06d037660e884c0706b"></a><!-- doxytag: member="xemaclite.h::XEmacLite_FlushReceive" ref="ae7ced3b39bd2f06d037660e884c0706b" args="(XEmacLite *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XEmacLite_FlushReceive </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Flush the Receive buffers. All data will be lost.</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 pointer to the instance of the driver 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>None. </dd></dl>
</div>
</div>
<a class="anchor" id="af0c3a796e557b59a64a61a9b486a323e"></a><!-- doxytag: member="xemaclite.h::XEmacLite_Initialize" ref="af0c3a796e557b59a64a61a9b486a323e" args="(XEmacLite *InstancePtr, u16 DeviceId)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacLite_Initialize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>DeviceId</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Initialize a specific <a class="el" href="struct_x_emac_lite.html">XEmacLite</a> instance/driver. The initialization entails:</p>
<ul>
<li>Initialize fields of the <a class="el" href="struct_x_emac_lite.html">XEmacLite</a> instance structure.</li>
</ul>
<p>The driver defaults to polled mode operation.</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 <a class="el" href="struct_x_emac_lite.html">XEmacLite</a> instance. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>DeviceId</em>&nbsp;</td><td>is the unique id of the device controlled by this <a class="el" href="struct_x_emac_lite.html">XEmacLite</a> instance. Passing in a device id associates the generic <a class="el" href="struct_x_emac_lite.html">XEmacLite</a> instance to a specific device, as chosen by the caller or application developer.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if initialization was successful.</li>
<li>XST_DEVICE_NOT_FOUND/XST_FAILURE if device configuration information was not found for a device with the supplied device ID.</li>
</ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="a72db0e7e81077c3ad3947009a5299fdf"></a><!-- doxytag: member="xemaclite.h::XEmacLite_InterruptHandler" ref="a72db0e7e81077c3ad3947009a5299fdf" args="(void *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XEmacLite_InterruptHandler </td>
<td>(</td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Interrupt handler for the EmacLite driver. It performs the following processing:</p>
<ul>
<li>Get the interrupt status from the registers to determine the source of the interrupt.</li>
<li>Call the appropriate handler based on the source of the interrupt.</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>contains a pointer to the EmacLite device instance for the interrupt.</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>None. </dd></dl>
</div>
</div>
<a class="anchor" id="a147bbe6b3cf64cc36324d1db67e22500"></a><!-- doxytag: member="xemaclite.h::XEmacLite_LookupConfig" ref="a147bbe6b3cf64cc36324d1db67e22500" args="(u16 DeviceId)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="struct_x_emac_lite___config.html">XEmacLite_Config</a>* XEmacLite_LookupConfig </td>
<td>(</td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>DeviceId</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Lookup the device configuration based on the unique device ID. The table XEmacLite_ConfigTable contains the configuration info for each device in the system.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>DeviceId</em>&nbsp;</td><td>is the unique device ID of the device being looked up.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to the configuration table entry corresponding to the given device ID, or NULL if no match is found.</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div>
<a class="anchor" id="a444ab091bdc373bf2e1a266d5febecd0"></a><!-- doxytag: member="xemaclite.h::XEmacLite_PhyRead" ref="a444ab091bdc373bf2e1a266d5febecd0" args="(XEmacLite *InstancePtr, u32 PhyAddress, u32 RegNum, u16 *PhyDataPtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacLite_PhyRead </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_lite.html">XEmacLite</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>PhyAddress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&nbsp;</td>
<td class="paramname"> <em>RegNum</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16 *&nbsp;</td>
<td class="paramname"> <em>PhyDataPtr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Read the specified PHY register.</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 pointer to the instance of the driver. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>PhyAddress</em>&nbsp;</td><td>is the address of the PHY device. The valid range is is from 0 to 31. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>RegNum</em>&nbsp;</td><td>is the register number in the PHY device which is to be read. The valid range is is from 0 to 31. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>PhyDataPtr</em>&nbsp;</td><td>is a pointer to the data in which the data read from the PHY device is returned.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the data is read from the PHY.</li>
<li>XST_DEVICE_BUSY if MDIO is busy.</li>
</ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>This function waits for the completion of MDIO data transfer. </dd></dl>
</div>
</div>
<a class="anchor" id="a63ef92abf534fcf6f41601e93efa4cc7"></a><!-- doxytag: member="xemaclite.h::XEmacLite_PhyWrite" ref="a63ef92abf534fcf6f41601e93efa4cc7" args="(XEmacLite *InstancePtr, u32 PhyAddress, u32 RegNum, u16 PhyData)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacLite_PhyWrite </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_lite.html">XEmacLite</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>PhyAddress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&nbsp;</td>
<td class="paramname"> <em>RegNum</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>PhyData</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Write the given data to the specified register in the PHY device.</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 pointer to the instance of the driver. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>PhyAddress</em>&nbsp;</td><td>is the address of the PHY device. The valid range is is from 0 to 31. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>RegNum</em>&nbsp;</td><td>is the register number in the PHY device which is to be written. The valid range is is from 0 to 31. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>PhyData</em>&nbsp;</td><td>is the data to be written to the specified register in the PHY device.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the data is written to the PHY.</li>
<li>XST_DEVICE_BUSY if MDIO is busy.</li>
</ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>This function waits for the completion of MDIO data transfer. </dd></dl>
</div>
</div>
<a class="anchor" id="a6b771b95e193baa02186c6e106c7aefb"></a><!-- doxytag: member="xemaclite.h::XEmacLite_Recv" ref="a6b771b95e193baa02186c6e106c7aefb" args="(XEmacLite *InstancePtr, u8 *FramePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u16 XEmacLite_Recv </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8 *&nbsp;</td>
<td class="paramname"> <em>FramePtr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Receive a frame. Intended to be called from the interrupt context or with a wrapper which waits for the receive frame to be available.</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 <a class="el" href="struct_x_emac_lite.html">XEmacLite</a> instance. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>FramePtr</em>&nbsp;</td><td>is a pointer to a buffer where the frame will be stored. The buffer must be at least XEL_MAX_FRAME_SIZE bytes. For optimal performance, a 32-bit aligned buffer should be used but it is not required, the function will align the data if necessary.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
<p>The type/length field of the frame received. When the type/length field contains the type, XEL_MAX_FRAME_SIZE bytes will be copied out of the buffer and it is up to the higher layers to sort out the frame. Function returns 0 if there is no data waiting in the receive buffer or the pong buffer if configured.</p>
<dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
<p>This function call is not blocking in nature, i.e. it will not wait until a frame arrives. </p>
</div>
</div>
<a class="anchor" id="a0ea2a0f4e13ef174477a3cf2a9f86e69"></a><!-- doxytag: member="xemaclite.h::XEmacLite_SelfTest" ref="a0ea2a0f4e13ef174477a3cf2a9f86e69" args="(XEmacLite *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacLite_SelfTest </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Performs a SelfTest on the EmacLite device as follows:</p>
<ul>
<li>Writes to the mandatory TX buffer and reads back to verify.</li>
<li>If configured, writes to the secondary TX buffer and reads back to verify.</li>
<li>Writes to the mandatory RX buffer and reads back to verify.</li>
<li>If configured, writes to the secondary RX buffer and reads back to verify.</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 a pointer to the <a class="el" href="struct_x_emac_lite.html">XEmacLite</a> instance .</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the device Passed the Self Test.</li>
<li>XST_FAILURE if any of the data read backs fail.</li>
</ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div>
<a class="anchor" id="aa509977aea023dfeef6bddb10b2597dc"></a><!-- doxytag: member="xemaclite.h::XEmacLite_Send" ref="aa509977aea023dfeef6bddb10b2597dc" args="(XEmacLite *InstancePtr, u8 *FramePtr, unsigned ByteCount)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacLite_Send </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8 *&nbsp;</td>
<td class="paramname"> <em>FramePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&nbsp;</td>
<td class="paramname"> <em>ByteCount</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Send an Ethernet frame. The ByteCount is the total frame size, including header.</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 <a class="el" href="struct_x_emac_lite.html">XEmacLite</a> instance. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>FramePtr</em>&nbsp;</td><td>is a pointer to frame. For optimal performance, a 32-bit aligned buffer should be used but it is not required, the function will align the data if necessary. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>ByteCount</em>&nbsp;</td><td>is the size, in bytes, of the frame</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if data was transmitted.</li>
<li>XST_FAILURE if buffer(s) was (were) full and no valid data was transmitted.</li>
</ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
<p>This function call is not blocking in nature, i.e. it will not wait until the frame is transmitted. </p>
</div>
</div>
<a class="anchor" id="aaf404b645896f5fb74e87b4ada362809"></a><!-- doxytag: member="xemaclite.h::XEmacLite_SetMacAddress" ref="aaf404b645896f5fb74e87b4ada362809" args="(XEmacLite *InstancePtr, u8 *AddressPtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XEmacLite_SetMacAddress </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8 *&nbsp;</td>
<td class="paramname"> <em>AddressPtr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Set the MAC address for this device. The address is a 48-bit value.</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 <a class="el" href="struct_x_emac_lite.html">XEmacLite</a> instance. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>AddressPtr</em>&nbsp;</td><td>is a pointer to a 6-byte MAC address. the format of the MAC address is major octet to minor octet</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></dd></dl>
<ul>
<li>TX must be idle and RX should be idle for deterministic results. It is recommended that this function should be called after the initialization and before transmission of any packets from the device.</li>
<li>Function will not return if hardware is absent or not functioning properly.</li>
<li>The MAC address can be programmed using any of the two transmit buffers (if configured). </li>
</ul>
</div>
</div>
<a class="anchor" id="a5bacfdd394bc95a6b34dec438bfad8bf"></a><!-- doxytag: member="xemaclite.h::XEmacLite_SetRecvHandler" ref="a5bacfdd394bc95a6b34dec438bfad8bf" args="(XEmacLite *InstancePtr, void *CallBackRef, XEmacLite_Handler FuncPtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XEmacLite_SetRecvHandler </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>CallBackRef</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="xemaclite_8h.html#adfca662ba36ecd3fa7f5816d33e1235a">XEmacLite_Handler</a>&nbsp;</td>
<td class="paramname"> <em>FuncPtr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Sets the callback function for handling received frames in interrupt mode. The upper layer software should call this function during initialization. The callback is called when a frame is received. The callback function should communicate the data to a thread such that the processing is not performed in an interrupt context.</p>
<p>The callback is invoked by the driver within interrupt context, so it needs to do its job quickly. If there are other potentially slow operations within the callback, these should be done at task-level.</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 <a class="el" href="struct_x_emac_lite.html">XEmacLite</a> instance.. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>CallBackRef</em>&nbsp;</td><td>is a reference pointer to be passed back to the application in the callback. This helps the application correlate the callback to a particular driver. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>FuncPtr</em>&nbsp;</td><td>is the pointer to the callback function.</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>None. </dd></dl>
</div>
</div>
<a class="anchor" id="a2e48d33c6b41774f4cb37bffc85f59a1"></a><!-- doxytag: member="xemaclite.h::XEmacLite_SetSendHandler" ref="a2e48d33c6b41774f4cb37bffc85f59a1" args="(XEmacLite *InstancePtr, void *CallBackRef, XEmacLite_Handler FuncPtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XEmacLite_SetSendHandler </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>CallBackRef</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="xemaclite_8h.html#adfca662ba36ecd3fa7f5816d33e1235a">XEmacLite_Handler</a>&nbsp;</td>
<td class="paramname"> <em>FuncPtr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Sets the callback function for handling transmitted frames in interrupt mode. The upper layer software should call this function during initialization. The callback is called when a frame is transmitted. The callback function should communicate the data to a thread such that the processing is not performed in an interrupt context.</p>
<p>The callback is invoked by the driver within interrupt context, so it needs to do its job quickly. If there are other potentially slow operations within the callback, these should be done at task-level.</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 <a class="el" href="struct_x_emac_lite.html">XEmacLite</a> instance. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>CallBackRef</em>&nbsp;</td><td>is a reference pointer to be passed back to the application in the callback. This helps the application correlate the callback to a particular driver. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>FuncPtr</em>&nbsp;</td><td>is the pointer to the callback function.</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>None. </dd></dl>
</div>
</div>
<a class="anchor" id="a3f75e1a5a0b8d0e5e085880919ad693a"></a><!-- doxytag: member="xemaclite.h::XEmacLite_TxBufferAvailable" ref="a3f75e1a5a0b8d0e5e085880919ad693a" args="(XEmacLite *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacLite_TxBufferAvailable </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_lite.html">XEmacLite</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Determine if there is a transmit buffer available.</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 pointer to the instance of the driver to be worked on.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>TRUE if there is a TX buffer available for data to be written</li>
<li>FALSE if Tx Buffer is not available.</li>
</ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>