Files
KSDK_2.0_MK22FN512xxx12/docs/Kinetis SDK v.2.0 API Reference Manual/group__enet.html
2016-08-09 18:06:35 +02:00

3141 lines
192 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>Kinetis SDK v.2.0 API Reference Manual: ENET: Ethernet MAC Driver</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="fs_logo.gif"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">Kinetis SDK v.2.0 API Reference Manual
&#160;<span id="projectnumber">Rev. 0</span>
</div>
<div id="projectbrief">Freescale Semiconductor, Inc.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>API&#160;Reference</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__enet.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#files">Files</a> &#124;
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">ENET: Ethernet MAC Driver</div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<p>The KSDK provides a peripheral driver for the 10/100 Mbps Ethernet MAC (ENET) module of Kinetis devices.</p>
<p>The MII interface is the interface connected with MAC and PHY. the Serial management interface - MII management interface should be set firstly before any access to external PHY chip register. So call <a class="el" href="group__enet.html#ga4e2546cfd538bd06950f2145592858f1" title="Sets the ENET SMI(serial management interface)- MII management interface. ">ENET_SetSMI()</a> to initialize MII management interface. Use <a class="el" href="group__enet.html#ga4b0247aa4825019f9939b2e468cf5758" title="Starts an SMI (Serial Management Interface) read command. ">ENET_StartSMIRead()</a>, <a class="el" href="group__enet.html#ga0ef39cbb1042eb31189cf59fb3509b9a" title="Starts a SMI write command. ">ENET_StartSMIWrite()</a> and <a class="el" href="group__enet.html#ga1720662e45648e0f081b9152c36b3156" title="Reads data from the PHY register through SMI interface. ">ENET_ReadSMIData()</a> to read/write phy registers. This function group sets up the MII and serial management SMI interface, gets data from the SMI interface, and starts the SMI read and write command. Use <a class="el" href="group__enet.html#ga9008a47cdf43fe2eddde467c9841fc7b" title="Sets the ENET MII speed and duplex. ">ENET_SetMII()</a> to configure the MII before successfully get the data from the external PHY.</p>
<p>This group sets/gets the ENET mac address, setting the multicast group address filter. <a class="el" href="group__enet.html#ga5b9495b14a42f5b1ee24dcc5a6a9f227" title="Adds the ENET device to a multicast group. ">ENET_AddMulticastGroup()</a> should be called to add the ENET MAC to multicast group. It is important for 1588 feature to receive the PTP message.</p>
<p>For ENET receive side, <a class="el" href="group__enet.html#ga2bafd955a25a2e42279a6fcf4f0b81f9" title="Gets the size of the read frame. ">ENET_GetRxFrameSize()</a> must be called firstly used to get the received data size, then call <a class="el" href="group__enet.html#ga5fc5b46149c07df5be3a292db5c6ac15" title="Reads a frame from the ENET device. ">ENET_ReadFrame()</a> to get the received data. If the received error happen, call <a class="el" href="group__enet.html#gacc74925085246e648528cabf7c93a277" title="Gets the ENET the error statistics of a received frame. ">ENET_GetRxErrBeforeReadFrame()</a> after <a class="el" href="group__enet.html#ga2bafd955a25a2e42279a6fcf4f0b81f9" title="Gets the size of the read frame. ">ENET_GetRxFrameSize()</a> and before <a class="el" href="group__enet.html#ga5fc5b46149c07df5be3a292db5c6ac15" title="Reads a frame from the ENET device. ">ENET_ReadFrame()</a> to get the detail error informations.</p>
<p>For ENET transmit side, simply call <a class="el" href="group__enet.html#gaab45575aff382eece62289f530b4bd9d" title="Transmits an ENET frame. ">ENET_SendFrame()</a> to send the data out. The transmit data error information only accessible for 1588 enhanced buffer descriptor mode. So when ENET_ENHANCEDBUFFERDESCRIPTOR_MODE is defined the ENET_GetTxErrAfterSendFrame() can be used to get the detail transmit error information. The transmit error information only be updated by uDMA after the data is transmit. So ENET_GetTxErrAfterSendFrame() is recommended to be called on transmit interrupt handler.</p>
<p>This function group configures the PTP 1588 feature, starts/stops/gets/sets/adjusts the PTP IEEE 1588 timer, gets the receive/transmit frame timestamp, and PTP IEEE 1588 timer channel feature setting.</p>
<p>ENET_Ptp1588Configure() must be called when ENET_ENHANCEDBUFFERDESCRIPTOR_MODE is defined and the 1588 feature is required. The ENET_GetRxFrameTime() and ENET_GetTxFrameTime() are called by PTP stack to get the timestamp captured by ENET driver.</p>
<h1><a class="anchor" id="ENETTpyUC"></a>
Typical use case</h1>
<h2><a class="anchor" id="ENETInitRxTxOps"></a>
ENET Initialization, receive, and transmit operation</h2>
<p>For ENET_ENHANCEDBUFFERDESCRIPTOR_MODE not defined use case, use the legacy type buffer descriptor transmit/receive the frame: </p>
<div class="fragment"><div class="line"> <a class="code" href="group__enet.html#structenet__config__t">enet_config_t</a> config;</div>
<div class="line"> uint32_t length = 0;</div>
<div class="line"> uint32_t sysClock;</div>
<div class="line"> uint32_t phyAddr = 0;</div>
<div class="line"> <span class="keywordtype">bool</span> link = <span class="keyword">false</span>;</div>
<div class="line"> phy_speed_t speed;</div>
<div class="line"> phy_duplex_t duplex;</div>
<div class="line"> enet_status_t result;</div>
<div class="line"> <a class="code" href="group__enet.html#structenet__data__error__stats__t">enet_data_error_stats_t</a> eErrorStatic;</div>
<div class="line"> <span class="comment">// Prepares the buffer configuration.</span></div>
<div class="line"> <a class="code" href="group__enet.html#structenet__buffer__config__t">enet_buffer_config_t</a> buffCfg =</div>
<div class="line"> {</div>
<div class="line"> ENET_RXBD_NUM,</div>
<div class="line"> ENET_TXBD_NUM,</div>
<div class="line"> ENET_BuffSizeAlign(ENET_RXBUFF_SIZE),</div>
<div class="line"> ENET_BuffSizeAlign(ENET_TXBUFF_SIZE),</div>
<div class="line"> &amp;RxBuffDescrip[0], <span class="comment">// Prepare buffers</span></div>
<div class="line"> &amp;TxBuffDescrip[0], <span class="comment">// Prepare buffers</span></div>
<div class="line"> &amp;RxDataBuff[0][0], <span class="comment">// Prepare buffers</span></div>
<div class="line"> &amp;TxDataBuff[0][0], <span class="comment">// Prepare buffers</span></div>
<div class="line"> };</div>
<div class="line"></div>
<div class="line"> sysClock = <a class="code" href="group__mcglite.html#ga53acae220d651789bb505c53c73ecf2b">CLOCK_GetFreq</a>(<a class="code" href="group__mcglite.html#ggaf74854e9bcee544d7646c5bafdc00bd3a1de4a40f5399eb025d5faefda7491918">kCLOCK_CoreSysClk</a>);</div>
<div class="line"></div>
<div class="line"> <span class="comment">// Gets the default configuration.</span></div>
<div class="line"> <a class="code" href="group__enet.html#gaf0992a0c9c3a27b2a40226ac38a26d1e">ENET_GetDefaultConfig</a>(&amp;config);</div>
<div class="line"> PHY_Init(EXAMPLE_ENET, 0, sysClock);</div>
<div class="line"> <span class="comment">// Changes the link status to PHY auto-negotiated link status.</span></div>
<div class="line"> PHY_GetLinkStatus(EXAMPLE_ENET, phyAddr, &amp;link);</div>
<div class="line"> <span class="keywordflow">if</span> (link)</div>
<div class="line"> {</div>
<div class="line"> PHY_GetLinkSpeedDuplex(EXAMPLE_ENET, phyAddr, &amp;speed, &amp;duplex);</div>
<div class="line"> config.<a class="code" href="group__enet.html#a073bdafc878d858c56533323322be6a9">miiSpeed</a> = (<a class="code" href="group__enet.html#ga8bbf729066c3400712a19ed1d9179e4c">enet_mii_speed_t</a>)speed;</div>
<div class="line"> config.<a class="code" href="group__enet.html#a0704352d744c4da14bf1e836e95ff072">miiDuplex</a> = (<a class="code" href="group__enet.html#ga0784f279168ea4e3fc2fc07018dcb9bf">enet_mii_duplex_t</a>)duplex;</div>
<div class="line"> }</div>
<div class="line"> <a class="code" href="group__enet.html#gac3ebae64ff0908b9315aa4c3c27689a3">ENET_Init</a>(EXAMPLE_ENET, &amp;handle, &amp;config, &amp;buffCfg, &amp;macAddr[0], sysClock);</div>
<div class="line"> <a class="code" href="group__enet.html#ga6e067d2d9b41ad32ce7b32ecad8cefc3">ENET_ActiveRead</a>(EXAMPLE_ENET);</div>
<div class="line"></div>
<div class="line"> <span class="keywordflow">while</span> (1)</div>
<div class="line"> {</div>
<div class="line"> <span class="comment">// Gets the frame size.</span></div>
<div class="line"> result = <a class="code" href="group__enet.html#ga2bafd955a25a2e42279a6fcf4f0b81f9">ENET_GetRxFrameSize</a>(&amp;handle, &amp;length);</div>
<div class="line"> <span class="comment">// Calls the ENET_ReadFrame when there is a received frame.</span></div>
<div class="line"> <span class="keywordflow">if</span> (length != 0)</div>
<div class="line"> {</div>
<div class="line"> <span class="comment">// Receives a valid frame and delivers the receive buffer with the size equal to length.</span></div>
<div class="line"> uint8_t *data = (uint8_t *)malloc(length);</div>
<div class="line"> <a class="code" href="group__enet.html#ga5fc5b46149c07df5be3a292db5c6ac15">ENET_ReadFrame</a>(EXAMPLE_ENET, &amp;handle, data, length);</div>
<div class="line"> <span class="comment">// Delivers the data to the upper layer.</span></div>
<div class="line"> .........</div>
<div class="line"> free(data);</div>
<div class="line"> }</div>
<div class="line"> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (result == kStatus_ENET_RxFrameErr)</div>
<div class="line"> {</div>
<div class="line"> <span class="comment">// Updates the received buffer when an error occurs.</span></div>
<div class="line"> <a class="code" href="group__enet.html#gacc74925085246e648528cabf7c93a277">ENET_GetRxErrBeforeReadFrame</a>(&amp;handle, &amp;eErrStatic);</div>
<div class="line"> <span class="comment">// Updates the receive buffer.</span></div>
<div class="line"> <a class="code" href="group__enet.html#ga5fc5b46149c07df5be3a292db5c6ac15">ENET_ReadFrame</a>(EXAMPLE_ENET, &amp;handle, NULL, 0);</div>
<div class="line"> }</div>
<div class="line"></div>
<div class="line"> <span class="comment">// Sends a multicast frame when the PHY is linked up.</span></div>
<div class="line"> <span class="keywordflow">if</span>(kStatus_Success == PHY_GetLinkStatus(EXAMPLE_ENET, phyAddr, &amp;link))</div>
<div class="line"> {</div>
<div class="line"> <span class="keywordflow">if</span>(link)</div>
<div class="line"> {</div>
<div class="line"> <a class="code" href="group__enet.html#gaab45575aff382eece62289f530b4bd9d">ENET_SendFrame</a>(EXAMPLE_ENET, &amp;handle, &amp;frame[0], ENET_DATA_LENGTH);</div>
<div class="line"> }</div>
<div class="line"> }</div>
<div class="line">}</div>
</div><!-- fragment --><p>For ENET_ENHANCEDBUFFERDESCRIPTOR_MODE defined case, add the PTP IEEE 1588 configuration to enable the PTP IEEE 1588 feature. The initialization occurs as follows: </p>
<div class="fragment"><div class="line"><a class="code" href="group__enet.html#structenet__config__t">enet_config_t</a> config;</div>
<div class="line">uint32_t length = 0;</div>
<div class="line">uint32_t sysClock;</div>
<div class="line">uint32_t phyAddr = 0;</div>
<div class="line"><span class="keywordtype">bool</span> link = <span class="keyword">false</span>;</div>
<div class="line">phy_speed_t speed;</div>
<div class="line">phy_duplex_t duplex;</div>
<div class="line">enet_status_t result;</div>
<div class="line">enet_data_err_stats_t eErrStatic;</div>
<div class="line"><a class="code" href="group__enet.html#structenet__buffer__config__t">enet_buffer_config_t</a> buffCfg =</div>
<div class="line">{</div>
<div class="line"> ENET_RXBD_NUM,</div>
<div class="line"> ENET_TXBD_NUM,</div>
<div class="line"> ENET_BuffSizeAlign(ENET_RXBUFF_SIZE),</div>
<div class="line"> ENET_BuffSizeAlign(ENET_TXBUFF_SIZE),</div>
<div class="line"> &amp;RxBuffDescrip[0],</div>
<div class="line"> &amp;TxBuffDescrip[0],</div>
<div class="line"> &amp;RxDataBuff[0][0],</div>
<div class="line"> &amp;TxDataBuff[0][0],</div>
<div class="line">};</div>
<div class="line"></div>
<div class="line">sysClock = <a class="code" href="group__mcglite.html#ga53acae220d651789bb505c53c73ecf2b">CLOCK_GetFreq</a>(<a class="code" href="group__mcglite.html#ggaf74854e9bcee544d7646c5bafdc00bd3a1de4a40f5399eb025d5faefda7491918">kCLOCK_CoreSysClk</a>);</div>
<div class="line"></div>
<div class="line"><span class="comment">// Sets the PTP 1588 source.</span></div>
<div class="line">CLOCK_SetEnetTime0Clock(2);</div>
<div class="line">ptpClock = <a class="code" href="group__mcglite.html#ga53acae220d651789bb505c53c73ecf2b">CLOCK_GetFreq</a>(<a class="code" href="group__mcglite.html#ggaf74854e9bcee544d7646c5bafdc00bd3a8e2da5897653f8a36ecc88a122bef6ec">kCLOCK_Osc0ErClk</a>);</div>
<div class="line"><span class="comment">// Prepares the PTP configuration.</span></div>
<div class="line">enet_ptp_config_t ptpConfig =</div>
<div class="line">{</div>
<div class="line"> ENET_RXBD_NUM,</div>
<div class="line"> ENET_TXBD_NUM,</div>
<div class="line"> &amp;g_rxPtpTsBuff[0],</div>
<div class="line"> &amp;g_txPtpTsBuff[0],</div>
<div class="line"> kENET_PtpTimerChannel1,</div>
<div class="line"> ptpClock,</div>
<div class="line">};</div>
<div class="line"></div>
<div class="line"><span class="comment">// Gets the default configuration.</span></div>
<div class="line"><a class="code" href="group__enet.html#gaf0992a0c9c3a27b2a40226ac38a26d1e">ENET_GetDefaultConfig</a>(&amp;config);</div>
<div class="line"></div>
<div class="line">PHY_Init(EXAMPLE_ENET, 0, sysClock);</div>
<div class="line"><span class="comment">// Changes the link status to PHY auto-negotiated link status.</span></div>
<div class="line">PHY_GetLinkStatus(EXAMPLE_ENET, phyAddr, &amp;link);</div>
<div class="line"><span class="keywordflow">if</span> (link)</div>
<div class="line">{</div>
<div class="line"> PHY_GetLinkSpeedDuplex(EXAMPLE_ENET, phyAddr, &amp;speed, &amp;duplex);</div>
<div class="line"> config.<a class="code" href="group__enet.html#a073bdafc878d858c56533323322be6a9">miiSpeed</a> = (<a class="code" href="group__enet.html#ga8bbf729066c3400712a19ed1d9179e4c">enet_mii_speed_t</a>)speed;</div>
<div class="line"> config.<a class="code" href="group__enet.html#a0704352d744c4da14bf1e836e95ff072">miiDuplex</a> = (<a class="code" href="group__enet.html#ga0784f279168ea4e3fc2fc07018dcb9bf">enet_mii_duplex_t</a>)duplex;</div>
<div class="line">}</div>
<div class="line"></div>
<div class="line"><a class="code" href="group__enet.html#gac3ebae64ff0908b9315aa4c3c27689a3">ENET_Init</a>(EXAMPLE_ENET, &amp;handle, &amp;config, &amp;buffCfg, &amp;macAddr[0], sysClock);</div>
<div class="line"></div>
<div class="line"><span class="comment">// Configures the PTP 1588 feature.</span></div>
<div class="line">ENET_Ptp1588Configure(EXAMPLE_ENET, &amp;handle, &amp;ptpConfig);</div>
<div class="line"><span class="comment">// Adds the device to the PTP multicast group.</span></div>
<div class="line"><a class="code" href="group__enet.html#ga5b9495b14a42f5b1ee24dcc5a6a9f227">ENET_AddMulticastGroup</a>(EXAMPLE_ENET, &amp;mGAddr[0]);</div>
<div class="line"></div>
<div class="line"><a class="code" href="group__enet.html#ga6e067d2d9b41ad32ce7b32ecad8cefc3">ENET_ActiveRead</a>(EXAMPLE_ENET);</div>
</div><!-- fragment --> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:fsl__enet_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsl__enet_8h.html">fsl_enet.h</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:structenet__rx__bd__struct__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#structenet__rx__bd__struct__t">enet_rx_bd_struct_t</a></td></tr>
<tr class="memdesc:structenet__rx__bd__struct__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the receive buffer descriptor structure for the little endian system. <a href="group__enet.html#structenet__rx__bd__struct__t">More...</a><br/></td></tr>
<tr class="separator:structenet__rx__bd__struct__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structenet__tx__bd__struct__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#structenet__tx__bd__struct__t">enet_tx_bd_struct_t</a></td></tr>
<tr class="memdesc:structenet__tx__bd__struct__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the enhanced transmit buffer descriptor structure for the little endian system. <a href="group__enet.html#structenet__tx__bd__struct__t">More...</a><br/></td></tr>
<tr class="separator:structenet__tx__bd__struct__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structenet__data__error__stats__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#structenet__data__error__stats__t">enet_data_error_stats_t</a></td></tr>
<tr class="memdesc:structenet__data__error__stats__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the ENET data error statistic structure. <a href="group__enet.html#structenet__data__error__stats__t">More...</a><br/></td></tr>
<tr class="separator:structenet__data__error__stats__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structenet__buffer__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#structenet__buffer__config__t">enet_buffer_config_t</a></td></tr>
<tr class="memdesc:structenet__buffer__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the receive buffer descriptor configure structure. <a href="group__enet.html#structenet__buffer__config__t">More...</a><br/></td></tr>
<tr class="separator:structenet__buffer__config__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structenet__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#structenet__config__t">enet_config_t</a></td></tr>
<tr class="memdesc:structenet__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the basic configuration structure for the ENET device. <a href="group__enet.html#structenet__config__t">More...</a><br/></td></tr>
<tr class="separator:structenet__config__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:struct__enet__handle"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#struct__enet__handle">enet_handle_t</a></td></tr>
<tr class="memdesc:struct__enet__handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the ENET handler structure. <a href="group__enet.html#struct__enet__handle">More...</a><br/></td></tr>
<tr class="separator:struct__enet__handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gaa47652ada5e7cc078bc37979d5487b46"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#gaa47652ada5e7cc078bc37979d5487b46">ENET_BUFFDESCRIPTOR_RX_ERR_MASK</a></td></tr>
<tr class="memdesc:gaa47652ada5e7cc078bc37979d5487b46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the receive error status flag mask. <a href="#gaa47652ada5e7cc078bc37979d5487b46">More...</a><br/></td></tr>
<tr class="separator:gaa47652ada5e7cc078bc37979d5487b46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae9e50e322b991831fd71514002a3ca7b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#gae9e50e322b991831fd71514002a3ca7b">ENET_FIFO_MIN_RX_FULL</a>&#160;&#160;&#160;5U</td></tr>
<tr class="memdesc:gae9e50e322b991831fd71514002a3ca7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">ENET minimum receive FIFO full. <a href="#gae9e50e322b991831fd71514002a3ca7b">More...</a><br/></td></tr>
<tr class="separator:gae9e50e322b991831fd71514002a3ca7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaedbdd29c8a3e25c856b42f13edebcd8d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#gaedbdd29c8a3e25c856b42f13edebcd8d">ENET_RX_MIN_BUFFERSIZE</a>&#160;&#160;&#160;256U</td></tr>
<tr class="memdesc:gaedbdd29c8a3e25c856b42f13edebcd8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">ENET minimum buffer size. <a href="#gaedbdd29c8a3e25c856b42f13edebcd8d">More...</a><br/></td></tr>
<tr class="separator:gaedbdd29c8a3e25c856b42f13edebcd8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0f83120d7461f8851bd187aa747693e4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga0f83120d7461f8851bd187aa747693e4">ENET_BUFF_ALIGNMENT</a>&#160;&#160;&#160;16U</td></tr>
<tr class="memdesc:ga0f83120d7461f8851bd187aa747693e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ethernet buffer alignment. <a href="#ga0f83120d7461f8851bd187aa747693e4">More...</a><br/></td></tr>
<tr class="separator:ga0f83120d7461f8851bd187aa747693e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1f4edc29c5f534c4bd8f1afbd0185a4f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga1f4edc29c5f534c4bd8f1afbd0185a4f">ENET_PHY_MAXADDRESS</a>&#160;&#160;&#160;(ENET_MMFR_PA_MASK &gt;&gt; ENET_MMFR_PA_SHIFT)</td></tr>
<tr class="memdesc:ga1f4edc29c5f534c4bd8f1afbd0185a4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the PHY address scope for the ENET. <a href="#ga1f4edc29c5f534c4bd8f1afbd0185a4f">More...</a><br/></td></tr>
<tr class="separator:ga1f4edc29c5f534c4bd8f1afbd0185a4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga9d3c290746379a84b1e9cb744c9e452f"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga9d3c290746379a84b1e9cb744c9e452f">enet_callback_t</a> )(ENET_Type *base, enet_handle_t *handle, <a class="el" href="group__enet.html#gab6a6012153064f5996a44ecb79559fbe">enet_event_t</a> event, void *userData)</td></tr>
<tr class="memdesc:ga9d3c290746379a84b1e9cb744c9e452f"><td class="mdescLeft">&#160;</td><td class="mdescRight">ENET callback function. <a href="#ga9d3c290746379a84b1e9cb744c9e452f">More...</a><br/></td></tr>
<tr class="separator:ga9d3c290746379a84b1e9cb744c9e452f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga2763713429a9379805f0e70ddd22df0c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga2763713429a9379805f0e70ddd22df0c">_enet_status</a> { <br/>
&#160;&#160;<a class="el" href="group__enet.html#gga2763713429a9379805f0e70ddd22df0caef1f945a6dc8fcf6267d57aac2a19f99">kStatus_ENET_RxFrameError</a> = MAKE_STATUS(kStatusGroup_ENET, 0U),
<br/>
&#160;&#160;<a class="el" href="group__enet.html#gga2763713429a9379805f0e70ddd22df0ca97bf0aacb16c8874c7a0a016483cb2ec">kStatus_ENET_RxFrameFail</a> = MAKE_STATUS(kStatusGroup_ENET, 1U),
<br/>
&#160;&#160;<a class="el" href="group__enet.html#gga2763713429a9379805f0e70ddd22df0ca50e097caecebfb4afacf2c8a667a5409">kStatus_ENET_RxFrameEmpty</a> = MAKE_STATUS(kStatusGroup_ENET, 2U),
<br/>
&#160;&#160;<a class="el" href="group__enet.html#gga2763713429a9379805f0e70ddd22df0cad15b9b2af39f28f90889bb19f568e844">kStatus_ENET_TxFrameBusy</a>,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#gga2763713429a9379805f0e70ddd22df0ca34b4c8ff24db933516a0cf13fc8174ad">kStatus_ENET_TxFrameFail</a> = MAKE_STATUS(kStatusGroup_ENET, 4U)
<br/>
}</td></tr>
<tr class="memdesc:ga2763713429a9379805f0e70ddd22df0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the status return codes for transaction. <a href="group__enet.html#ga2763713429a9379805f0e70ddd22df0c">More...</a><br/></td></tr>
<tr class="separator:ga2763713429a9379805f0e70ddd22df0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4ae0699c0a7f9706deffbaf201025669"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga4ae0699c0a7f9706deffbaf201025669">enet_mii_mode_t</a> { <br/>
&#160;&#160;<a class="el" href="group__enet.html#gga4ae0699c0a7f9706deffbaf201025669a8625ad828cb3aae19fa0c2e6934e9368">kENET_MiiMode</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#gga4ae0699c0a7f9706deffbaf201025669ae44236ebbdfcc0ae1e3520edd3d2d602">kENET_RmiiMode</a>
<br/>
}</td></tr>
<tr class="memdesc:ga4ae0699c0a7f9706deffbaf201025669"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the RMII or MII mode for data interface between the MAC and the PHY. <a href="group__enet.html#ga4ae0699c0a7f9706deffbaf201025669">More...</a><br/></td></tr>
<tr class="separator:ga4ae0699c0a7f9706deffbaf201025669"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8bbf729066c3400712a19ed1d9179e4c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga8bbf729066c3400712a19ed1d9179e4c">enet_mii_speed_t</a> { <br/>
&#160;&#160;<a class="el" href="group__enet.html#gga8bbf729066c3400712a19ed1d9179e4ca6e8f095a5a1944d54425565b5beb835c">kENET_MiiSpeed10M</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#gga8bbf729066c3400712a19ed1d9179e4ca267390f53c987b908852257bf5407e8e">kENET_MiiSpeed100M</a>
<br/>
}</td></tr>
<tr class="memdesc:ga8bbf729066c3400712a19ed1d9179e4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the 10 Mbps or 100 Mbps speed for the MII data interface. <a href="group__enet.html#ga8bbf729066c3400712a19ed1d9179e4c">More...</a><br/></td></tr>
<tr class="separator:ga8bbf729066c3400712a19ed1d9179e4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0784f279168ea4e3fc2fc07018dcb9bf"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga0784f279168ea4e3fc2fc07018dcb9bf">enet_mii_duplex_t</a> { <br/>
&#160;&#160;<a class="el" href="group__enet.html#gga0784f279168ea4e3fc2fc07018dcb9bfad3b58af3cb1b983f8e3cd45b585c91b9">kENET_MiiHalfDuplex</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#gga0784f279168ea4e3fc2fc07018dcb9bfa0d2ad2c3708231614c716bc921503d6c">kENET_MiiFullDuplex</a>
<br/>
}</td></tr>
<tr class="memdesc:ga0784f279168ea4e3fc2fc07018dcb9bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the half or full duplex for the MII data interface. <a href="group__enet.html#ga0784f279168ea4e3fc2fc07018dcb9bf">More...</a><br/></td></tr>
<tr class="separator:ga0784f279168ea4e3fc2fc07018dcb9bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0efd18bb4f4b754039fc30c440e38b02"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga0efd18bb4f4b754039fc30c440e38b02">enet_mii_write_t</a> { <br/>
&#160;&#160;<a class="el" href="group__enet.html#gga0efd18bb4f4b754039fc30c440e38b02afa74c106f9ed2436e47a5c3f54382b71">kENET_MiiWriteNoCompliant</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#gga0efd18bb4f4b754039fc30c440e38b02a1611c88e328da10f5c43bd138eca6794">kENET_MiiWriteValidFrame</a>
<br/>
}</td></tr>
<tr class="memdesc:ga0efd18bb4f4b754039fc30c440e38b02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the write operation for the MII management frame. <a href="group__enet.html#ga0efd18bb4f4b754039fc30c440e38b02">More...</a><br/></td></tr>
<tr class="separator:ga0efd18bb4f4b754039fc30c440e38b02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9c0264e7da8e7d0a3ead667d3a7b1a89"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga9c0264e7da8e7d0a3ead667d3a7b1a89">enet_mii_read_t</a> { <br/>
&#160;&#160;<a class="el" href="group__enet.html#gga9c0264e7da8e7d0a3ead667d3a7b1a89a25d7fb88a8252dc7250617be5ea78f91">kENET_MiiReadValidFrame</a> = 2U,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#gga9c0264e7da8e7d0a3ead667d3a7b1a89a3a3402b126399caf1ad17a2981f69a14">kENET_MiiReadNoCompliant</a> = 3U
<br/>
}</td></tr>
<tr class="memdesc:ga9c0264e7da8e7d0a3ead667d3a7b1a89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the read operation for the MII management frame. <a href="group__enet.html#ga9c0264e7da8e7d0a3ead667d3a7b1a89">More...</a><br/></td></tr>
<tr class="separator:ga9c0264e7da8e7d0a3ead667d3a7b1a89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3dd434e4f34bd4c640cefd471763e834"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga3dd434e4f34bd4c640cefd471763e834">enet_special_control_flag_t</a> { <br/>
&#160;&#160;<a class="el" href="group__enet.html#gga3dd434e4f34bd4c640cefd471763e834a2274920ae245b67edc1538ecc662e2e7">kENET_ControlFlowControlEnable</a> = 0x0001U,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#gga3dd434e4f34bd4c640cefd471763e834a9493b832848510c47488327ef49e4d09">kENET_ControlRxPayloadCheckEnable</a> = 0x0002U,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#gga3dd434e4f34bd4c640cefd471763e834aa29ba1cc644bf602ffc8ef9e1ae02892">kENET_ControlRxPadRemoveEnable</a> = 0x0004U,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#gga3dd434e4f34bd4c640cefd471763e834ade873dafe5c7263f8cc62b0ca92aada3">kENET_ControlRxBroadCastRejectEnable</a> = 0x0008U,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#gga3dd434e4f34bd4c640cefd471763e834ac806eb5baebf350b694cca943bc812c7">kENET_ControlMacAddrInsert</a> = 0x0010U,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#gga3dd434e4f34bd4c640cefd471763e834abb1b113283cf4f67722599cc58803643">kENET_ControlStoreAndFwdDisable</a> = 0x0020U,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#gga3dd434e4f34bd4c640cefd471763e834a8eb7a5389fe9cf0a867066be878efcf1">kENET_ControlSMIPreambleDisable</a> = 0x0040U,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#gga3dd434e4f34bd4c640cefd471763e834a51af87f0cfef162bc4c48fd0884c0cab">kENET_ControlPromiscuousEnable</a> = 0x0080U,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#gga3dd434e4f34bd4c640cefd471763e834a8cfbb36dc3a0bebf378ed53d527e93af">kENET_ControlMIILoopEnable</a> = 0x0100U,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#gga3dd434e4f34bd4c640cefd471763e834a3553f9aa0fdc655ffff8e0f46f6cb4b7">kENET_ControlVLANTagEnable</a> = 0x0200U
<br/>
}</td></tr>
<tr class="memdesc:ga3dd434e4f34bd4c640cefd471763e834"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines a special configuration for ENET MAC controller. <a href="group__enet.html#ga3dd434e4f34bd4c640cefd471763e834">More...</a><br/></td></tr>
<tr class="separator:ga3dd434e4f34bd4c640cefd471763e834"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb9d440ac05cadfab906714b2db65027"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#gafb9d440ac05cadfab906714b2db65027">enet_interrupt_enable_t</a> { <br/>
&#160;&#160;<a class="el" href="group__enet.html#ggafb9d440ac05cadfab906714b2db65027a2723f07cc888d945f74650566d79e82e">kENET_BabrInterrupt</a> = ENET_EIR_BABR_MASK,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#ggafb9d440ac05cadfab906714b2db65027a103227b91492fa90cf41212e63b1e7ae">kENET_BabtInterrupt</a> = ENET_EIR_BABT_MASK,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#ggafb9d440ac05cadfab906714b2db65027a1a3e80425de2ce87abc060cef41d1f9e">kENET_GraceStopInterrupt</a> = ENET_EIR_GRA_MASK,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#ggafb9d440ac05cadfab906714b2db65027a7b2529920e9b97d937aa6b420bf1d51f">kENET_TxFrameInterrupt</a> = ENET_EIR_TXF_MASK,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#ggafb9d440ac05cadfab906714b2db65027a639816df292014011a7e9520d99b4bf9">kENET_TxByteInterrupt</a> = ENET_EIR_TXB_MASK,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#ggafb9d440ac05cadfab906714b2db65027a35d716ce614f33b7afbcf168922f1e70">kENET_RxFrameInterrupt</a> = ENET_EIR_RXF_MASK,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#ggafb9d440ac05cadfab906714b2db65027a22a1f9cf1df91e407e6714a366d74f21">kENET_RxByteInterrupt</a> = ENET_EIR_RXB_MASK,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#ggafb9d440ac05cadfab906714b2db65027af14e66a1e3dd261481ae560fb2794340">kENET_MiiInterrupt</a> = ENET_EIR_MII_MASK,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#ggafb9d440ac05cadfab906714b2db65027ace73af088e05b63d6f8d6aeda6a9908e">kENET_EBusERInterrupt</a> = ENET_EIR_EBERR_MASK,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#ggafb9d440ac05cadfab906714b2db65027a1495716c4d2b819469d0243c3768eac1">kENET_LateCollisionInterrupt</a> = ENET_EIR_LC_MASK,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#ggafb9d440ac05cadfab906714b2db65027a39343a8e490ffbc2146a517b8c4a82b2">kENET_RetryLimitInterrupt</a> = ENET_EIR_RL_MASK,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#ggafb9d440ac05cadfab906714b2db65027a1fa3a1323a0da32594d84172db1e95ed">kENET_UnderrunInterrupt</a> = ENET_EIR_UN_MASK,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#ggafb9d440ac05cadfab906714b2db65027aefe7250848088c6a514d609ff1bd6b2c">kENET_PayloadRxInterrupt</a> = ENET_EIR_PLR_MASK,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#ggafb9d440ac05cadfab906714b2db65027a25974ac3cc05e3d928eab800a0f09c27">kENET_WakeupInterrupt</a> = ENET_EIR_WAKEUP_MASK
<br/>
}</td></tr>
<tr class="memdesc:gafb9d440ac05cadfab906714b2db65027"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of interrupts supported by the peripheral. <a href="group__enet.html#gafb9d440ac05cadfab906714b2db65027">More...</a><br/></td></tr>
<tr class="separator:gafb9d440ac05cadfab906714b2db65027"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab6a6012153064f5996a44ecb79559fbe"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#gab6a6012153064f5996a44ecb79559fbe">enet_event_t</a> { <br/>
&#160;&#160;<a class="el" href="group__enet.html#ggab6a6012153064f5996a44ecb79559fbea0ef30a1e4757622d27d6ca879f300cb6">kENET_RxEvent</a>,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#ggab6a6012153064f5996a44ecb79559fbeaae83f9ee29da3fe085f4d1e24983bef7">kENET_TxEvent</a>,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#ggab6a6012153064f5996a44ecb79559fbea1b4966d24ea40b037e7f0e1022441ea7">kENET_ErrEvent</a>,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#ggab6a6012153064f5996a44ecb79559fbea6e0c81e642fcb382d2f38ad32a32ec07">kENET_WakeUpEvent</a>
<br/>
}</td></tr>
<tr class="memdesc:gab6a6012153064f5996a44ecb79559fbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the common interrupt event for callback use. <a href="group__enet.html#gab6a6012153064f5996a44ecb79559fbe">More...</a><br/></td></tr>
<tr class="separator:gab6a6012153064f5996a44ecb79559fbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5ab4bff47ce41714000c94e1f5a8a6a8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga5ab4bff47ce41714000c94e1f5a8a6a8">enet_tx_accelerator_t</a> { <br/>
&#160;&#160;<a class="el" href="group__enet.html#gga5ab4bff47ce41714000c94e1f5a8a6a8a7db407a277c41ca9d215412e2ef05476">kENET_TxAccelIsShift16Enabled</a> = ENET_TACC_SHIFT16_MASK,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#gga5ab4bff47ce41714000c94e1f5a8a6a8ad2f2ea0738c6b7fcaee5e02f8f1a8645">kENET_TxAccelIpCheckEnabled</a> = ENET_TACC_IPCHK_MASK,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#gga5ab4bff47ce41714000c94e1f5a8a6a8aa85f2b263781a1c43c304c3f380556ae">kENET_TxAccelProtoCheckEnabled</a> = ENET_TACC_PROCHK_MASK
<br/>
}</td></tr>
<tr class="memdesc:ga5ab4bff47ce41714000c94e1f5a8a6a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the transmit accelerator configuration. <a href="group__enet.html#ga5ab4bff47ce41714000c94e1f5a8a6a8">More...</a><br/></td></tr>
<tr class="separator:ga5ab4bff47ce41714000c94e1f5a8a6a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaa83596ca3d01b86f8da9e7e2c90cced"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#gaaa83596ca3d01b86f8da9e7e2c90cced">enet_rx_accelerator_t</a> { <br/>
&#160;&#160;<a class="el" href="group__enet.html#ggaaa83596ca3d01b86f8da9e7e2c90cceda55ba5425899621f83b28c0c8e61b9060">kENET_RxAccelPadRemoveEnabled</a> = ENET_RACC_PADREM_MASK,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#ggaaa83596ca3d01b86f8da9e7e2c90cceda517175d18302c670ad3b0999a9a1c9b1">kENET_RxAccelIpCheckEnabled</a> = ENET_RACC_IPDIS_MASK,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#ggaaa83596ca3d01b86f8da9e7e2c90cceda122f314d9f24c28b18ce350398fcce98">kENET_RxAccelProtoCheckEnabled</a> = ENET_RACC_PRODIS_MASK,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#ggaaa83596ca3d01b86f8da9e7e2c90cceda3082dc2e884e8b71a82f857c9f24890d">kENET_RxAccelMacCheckEnabled</a> = ENET_RACC_LINEDIS_MASK,
<br/>
&#160;&#160;<a class="el" href="group__enet.html#ggaaa83596ca3d01b86f8da9e7e2c90cceda659e8b06edb4f6944c9969dd56649b89">kENET_RxAccelisShift16Enabled</a> = ENET_RACC_SHIFT16_MASK
<br/>
}</td></tr>
<tr class="memdesc:gaaa83596ca3d01b86f8da9e7e2c90cced"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the receive accelerator configuration. <a href="group__enet.html#gaaa83596ca3d01b86f8da9e7e2c90cced">More...</a><br/></td></tr>
<tr class="separator:gaaa83596ca3d01b86f8da9e7e2c90cced"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Driver version</h2></td></tr>
<tr class="memitem:ga869f211125798c5e1f17464dee22704e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga869f211125798c5e1f17464dee22704e">FSL_ENET_DRIVER_VERSION</a>&#160;&#160;&#160;(<a class="el" href="group__flash__driver.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 0, 0))</td></tr>
<tr class="memdesc:ga869f211125798c5e1f17464dee22704e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the driver version. <a href="#ga869f211125798c5e1f17464dee22704e">More...</a><br/></td></tr>
<tr class="separator:ga869f211125798c5e1f17464dee22704e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Control and status region bit masks of the receive buffer descriptor.</h2></td></tr>
<tr class="memitem:ga4ecdb738a6f27b81eb9ad44d24d2f1db"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga4ecdb738a6f27b81eb9ad44d24d2f1db">ENET_BUFFDESCRIPTOR_RX_EMPTY_MASK</a>&#160;&#160;&#160;0x8000U</td></tr>
<tr class="memdesc:ga4ecdb738a6f27b81eb9ad44d24d2f1db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty bit mask. <a href="#ga4ecdb738a6f27b81eb9ad44d24d2f1db">More...</a><br/></td></tr>
<tr class="separator:ga4ecdb738a6f27b81eb9ad44d24d2f1db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac3815af5aedc53cf345ae5186f711d6d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#gac3815af5aedc53cf345ae5186f711d6d">ENET_BUFFDESCRIPTOR_RX_SOFTOWNER1_MASK</a>&#160;&#160;&#160;0x4000U</td></tr>
<tr class="memdesc:gac3815af5aedc53cf345ae5186f711d6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Software owner one mask. <a href="#gac3815af5aedc53cf345ae5186f711d6d">More...</a><br/></td></tr>
<tr class="separator:gac3815af5aedc53cf345ae5186f711d6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga37f7e7094697aa06285df27da4e3791f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga37f7e7094697aa06285df27da4e3791f">ENET_BUFFDESCRIPTOR_RX_WRAP_MASK</a>&#160;&#160;&#160;0x2000U</td></tr>
<tr class="memdesc:ga37f7e7094697aa06285df27da4e3791f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Next buffer descriptor is the start address. <a href="#ga37f7e7094697aa06285df27da4e3791f">More...</a><br/></td></tr>
<tr class="separator:ga37f7e7094697aa06285df27da4e3791f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6097b5e5b8015de197db0e54cbb5425f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga6097b5e5b8015de197db0e54cbb5425f">ENET_BUFFDESCRIPTOR_RX_SOFTOWNER2_Mask</a>&#160;&#160;&#160;0x1000U</td></tr>
<tr class="memdesc:ga6097b5e5b8015de197db0e54cbb5425f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Software owner two mask. <a href="#ga6097b5e5b8015de197db0e54cbb5425f">More...</a><br/></td></tr>
<tr class="separator:ga6097b5e5b8015de197db0e54cbb5425f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae302c57c88bade74af59c4bcfcac7d0f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#gae302c57c88bade74af59c4bcfcac7d0f">ENET_BUFFDESCRIPTOR_RX_LAST_MASK</a>&#160;&#160;&#160;0x0800U</td></tr>
<tr class="memdesc:gae302c57c88bade74af59c4bcfcac7d0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Last BD of the frame mask. <a href="#gae302c57c88bade74af59c4bcfcac7d0f">More...</a><br/></td></tr>
<tr class="separator:gae302c57c88bade74af59c4bcfcac7d0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad622789c0bb27a6ac2ab54e3526d2712"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#gad622789c0bb27a6ac2ab54e3526d2712">ENET_BUFFDESCRIPTOR_RX_MISS_MASK</a>&#160;&#160;&#160;0x0100U</td></tr>
<tr class="memdesc:gad622789c0bb27a6ac2ab54e3526d2712"><td class="mdescLeft">&#160;</td><td class="mdescRight">Received because of the promiscuous mode. <a href="#gad622789c0bb27a6ac2ab54e3526d2712">More...</a><br/></td></tr>
<tr class="separator:gad622789c0bb27a6ac2ab54e3526d2712"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae4cfa2a92c961ee34445976e2949c00d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#gae4cfa2a92c961ee34445976e2949c00d">ENET_BUFFDESCRIPTOR_RX_BROADCAST_MASK</a>&#160;&#160;&#160;0x0080U</td></tr>
<tr class="memdesc:gae4cfa2a92c961ee34445976e2949c00d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Broadcast packet mask. <a href="#gae4cfa2a92c961ee34445976e2949c00d">More...</a><br/></td></tr>
<tr class="separator:gae4cfa2a92c961ee34445976e2949c00d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf47a7a6cf15a885878a39749f9d645ed"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#gaf47a7a6cf15a885878a39749f9d645ed">ENET_BUFFDESCRIPTOR_RX_MULTICAST_MASK</a>&#160;&#160;&#160;0x0040U</td></tr>
<tr class="memdesc:gaf47a7a6cf15a885878a39749f9d645ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multicast packet mask. <a href="#gaf47a7a6cf15a885878a39749f9d645ed">More...</a><br/></td></tr>
<tr class="separator:gaf47a7a6cf15a885878a39749f9d645ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7b3cbc3ed367bd8fcbcbb6bcc14ef06f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga7b3cbc3ed367bd8fcbcbb6bcc14ef06f">ENET_BUFFDESCRIPTOR_RX_LENVLIOLATE_MASK</a>&#160;&#160;&#160;0x0020U</td></tr>
<tr class="memdesc:ga7b3cbc3ed367bd8fcbcbb6bcc14ef06f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Length violation mask. <a href="#ga7b3cbc3ed367bd8fcbcbb6bcc14ef06f">More...</a><br/></td></tr>
<tr class="separator:ga7b3cbc3ed367bd8fcbcbb6bcc14ef06f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga67881a213531011e78cc56a3ac017549"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga67881a213531011e78cc56a3ac017549">ENET_BUFFDESCRIPTOR_RX_NOOCTET_MASK</a>&#160;&#160;&#160;0x0010U</td></tr>
<tr class="memdesc:ga67881a213531011e78cc56a3ac017549"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-octet aligned frame mask. <a href="#ga67881a213531011e78cc56a3ac017549">More...</a><br/></td></tr>
<tr class="separator:ga67881a213531011e78cc56a3ac017549"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4f57d5345b3a3f349e834e0d46645ce3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga4f57d5345b3a3f349e834e0d46645ce3">ENET_BUFFDESCRIPTOR_RX_CRC_MASK</a>&#160;&#160;&#160;0x0004U</td></tr>
<tr class="memdesc:ga4f57d5345b3a3f349e834e0d46645ce3"><td class="mdescLeft">&#160;</td><td class="mdescRight">CRC error mask. <a href="#ga4f57d5345b3a3f349e834e0d46645ce3">More...</a><br/></td></tr>
<tr class="separator:ga4f57d5345b3a3f349e834e0d46645ce3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga31d458f38d3123c1eb398bf57d1ebacc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga31d458f38d3123c1eb398bf57d1ebacc">ENET_BUFFDESCRIPTOR_RX_OVERRUN_MASK</a>&#160;&#160;&#160;0x0002U</td></tr>
<tr class="memdesc:ga31d458f38d3123c1eb398bf57d1ebacc"><td class="mdescLeft">&#160;</td><td class="mdescRight">FIFO overrun mask. <a href="#ga31d458f38d3123c1eb398bf57d1ebacc">More...</a><br/></td></tr>
<tr class="separator:ga31d458f38d3123c1eb398bf57d1ebacc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9e3e6bac667500c8ff096be418e7a0e1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga9e3e6bac667500c8ff096be418e7a0e1">ENET_BUFFDESCRIPTOR_RX_TRUNC_MASK</a>&#160;&#160;&#160;0x0001U</td></tr>
<tr class="memdesc:ga9e3e6bac667500c8ff096be418e7a0e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frame is truncated mask. <a href="#ga9e3e6bac667500c8ff096be418e7a0e1">More...</a><br/></td></tr>
<tr class="separator:ga9e3e6bac667500c8ff096be418e7a0e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Control and status bit masks of the transmit buffer descriptor.</h2></td></tr>
<tr class="memitem:ga842251a5e8c62968a87578698f0dd083"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga842251a5e8c62968a87578698f0dd083">ENET_BUFFDESCRIPTOR_TX_READY_MASK</a>&#160;&#160;&#160;0x8000U</td></tr>
<tr class="memdesc:ga842251a5e8c62968a87578698f0dd083"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ready bit mask. <a href="#ga842251a5e8c62968a87578698f0dd083">More...</a><br/></td></tr>
<tr class="separator:ga842251a5e8c62968a87578698f0dd083"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae76d465c3a9f07b28f48433022a005cc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#gae76d465c3a9f07b28f48433022a005cc">ENET_BUFFDESCRIPTOR_TX_SOFTOWENER1_MASK</a>&#160;&#160;&#160;0x4000U</td></tr>
<tr class="memdesc:gae76d465c3a9f07b28f48433022a005cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Software owner one mask. <a href="#gae76d465c3a9f07b28f48433022a005cc">More...</a><br/></td></tr>
<tr class="separator:gae76d465c3a9f07b28f48433022a005cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga159bc70ce067d81c7b44917f16ab596e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga159bc70ce067d81c7b44917f16ab596e">ENET_BUFFDESCRIPTOR_TX_WRAP_MASK</a>&#160;&#160;&#160;0x2000U</td></tr>
<tr class="memdesc:ga159bc70ce067d81c7b44917f16ab596e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrap buffer descriptor mask. <a href="#ga159bc70ce067d81c7b44917f16ab596e">More...</a><br/></td></tr>
<tr class="separator:ga159bc70ce067d81c7b44917f16ab596e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga09c9ab0c2b634f6e97df4e5b5c4bc8a1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga09c9ab0c2b634f6e97df4e5b5c4bc8a1">ENET_BUFFDESCRIPTOR_TX_SOFTOWENER2_MASK</a>&#160;&#160;&#160;0x1000U</td></tr>
<tr class="memdesc:ga09c9ab0c2b634f6e97df4e5b5c4bc8a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Software owner two mask. <a href="#ga09c9ab0c2b634f6e97df4e5b5c4bc8a1">More...</a><br/></td></tr>
<tr class="separator:ga09c9ab0c2b634f6e97df4e5b5c4bc8a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga59497a4cfa4e8df8ceb6e6b39549ea1d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga59497a4cfa4e8df8ceb6e6b39549ea1d">ENET_BUFFDESCRIPTOR_TX_LAST_MASK</a>&#160;&#160;&#160;0x0800U</td></tr>
<tr class="memdesc:ga59497a4cfa4e8df8ceb6e6b39549ea1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Last BD of the frame mask. <a href="#ga59497a4cfa4e8df8ceb6e6b39549ea1d">More...</a><br/></td></tr>
<tr class="separator:ga59497a4cfa4e8df8ceb6e6b39549ea1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4119af7a03ab546888a3853f228b09bd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga4119af7a03ab546888a3853f228b09bd">ENET_BUFFDESCRIPTOR_TX_TRANMITCRC_MASK</a>&#160;&#160;&#160;0x0400U</td></tr>
<tr class="memdesc:ga4119af7a03ab546888a3853f228b09bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmit CRC mask. <a href="#ga4119af7a03ab546888a3853f228b09bd">More...</a><br/></td></tr>
<tr class="separator:ga4119af7a03ab546888a3853f228b09bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Defines the maximum Ethernet frame size.</h2></td></tr>
<tr class="memitem:ga4fa46b5ee409f6d147980adc57493f6d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga4fa46b5ee409f6d147980adc57493f6d">ENET_FRAME_MAX_FRAMELEN</a>&#160;&#160;&#160;1518U</td></tr>
<tr class="memdesc:ga4fa46b5ee409f6d147980adc57493f6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum Ethernet frame size. <a href="#ga4fa46b5ee409f6d147980adc57493f6d">More...</a><br/></td></tr>
<tr class="separator:ga4fa46b5ee409f6d147980adc57493f6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga45ddb9b57534827471df761fdb03bf8f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga45ddb9b57534827471df761fdb03bf8f">ENET_FRAME_MAX_VALNFRAMELEN</a>&#160;&#160;&#160;1522U</td></tr>
<tr class="memdesc:ga45ddb9b57534827471df761fdb03bf8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum VLAN frame size. <a href="#ga45ddb9b57534827471df761fdb03bf8f">More...</a><br/></td></tr>
<tr class="separator:ga45ddb9b57534827471df761fdb03bf8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Initialization and De-initialization</h2></td></tr>
<tr class="memitem:gaf0992a0c9c3a27b2a40226ac38a26d1e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#gaf0992a0c9c3a27b2a40226ac38a26d1e">ENET_GetDefaultConfig</a> (<a class="el" href="group__enet.html#structenet__config__t">enet_config_t</a> *config)</td></tr>
<tr class="memdesc:gaf0992a0c9c3a27b2a40226ac38a26d1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the ENET default configuration structure. <a href="#gaf0992a0c9c3a27b2a40226ac38a26d1e">More...</a><br/></td></tr>
<tr class="separator:gaf0992a0c9c3a27b2a40226ac38a26d1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac3ebae64ff0908b9315aa4c3c27689a3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#gac3ebae64ff0908b9315aa4c3c27689a3">ENET_Init</a> (ENET_Type *base, enet_handle_t *handle, const <a class="el" href="group__enet.html#structenet__config__t">enet_config_t</a> *config, const <a class="el" href="group__enet.html#structenet__buffer__config__t">enet_buffer_config_t</a> *bufferConfig, uint8_t *macAddr, uint32_t srcClock_Hz)</td></tr>
<tr class="memdesc:gac3ebae64ff0908b9315aa4c3c27689a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the ENET module. <a href="#gac3ebae64ff0908b9315aa4c3c27689a3">More...</a><br/></td></tr>
<tr class="separator:gac3ebae64ff0908b9315aa4c3c27689a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga72f7e3493a2f4134324e9e72492bdbbc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga72f7e3493a2f4134324e9e72492bdbbc">ENET_Deinit</a> (ENET_Type *base)</td></tr>
<tr class="memdesc:ga72f7e3493a2f4134324e9e72492bdbbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deinitializes the ENET module. <a href="#ga72f7e3493a2f4134324e9e72492bdbbc">More...</a><br/></td></tr>
<tr class="separator:ga72f7e3493a2f4134324e9e72492bdbbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga809c3f91a850b53afa5511603b1c91df"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga809c3f91a850b53afa5511603b1c91df">ENET_Reset</a> (ENET_Type *base)</td></tr>
<tr class="memdesc:ga809c3f91a850b53afa5511603b1c91df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the ENET module. <a href="#ga809c3f91a850b53afa5511603b1c91df">More...</a><br/></td></tr>
<tr class="separator:ga809c3f91a850b53afa5511603b1c91df"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
MII interface operation</h2></td></tr>
<tr class="memitem:ga9008a47cdf43fe2eddde467c9841fc7b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga9008a47cdf43fe2eddde467c9841fc7b">ENET_SetMII</a> (ENET_Type *base, <a class="el" href="group__enet.html#ga8bbf729066c3400712a19ed1d9179e4c">enet_mii_speed_t</a> speed, <a class="el" href="group__enet.html#ga0784f279168ea4e3fc2fc07018dcb9bf">enet_mii_duplex_t</a> duplex)</td></tr>
<tr class="memdesc:ga9008a47cdf43fe2eddde467c9841fc7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the ENET MII speed and duplex. <a href="#ga9008a47cdf43fe2eddde467c9841fc7b">More...</a><br/></td></tr>
<tr class="separator:ga9008a47cdf43fe2eddde467c9841fc7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4e2546cfd538bd06950f2145592858f1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga4e2546cfd538bd06950f2145592858f1">ENET_SetSMI</a> (ENET_Type *base, uint32_t srcClock_Hz, bool isPreambleDisabled)</td></tr>
<tr class="memdesc:ga4e2546cfd538bd06950f2145592858f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the ENET SMI(serial management interface)- MII management interface. <a href="#ga4e2546cfd538bd06950f2145592858f1">More...</a><br/></td></tr>
<tr class="separator:ga4e2546cfd538bd06950f2145592858f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga95deb3a7ea7873830ed7b65cabe93b88"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga95deb3a7ea7873830ed7b65cabe93b88">ENET_GetSMI</a> (ENET_Type *base)</td></tr>
<tr class="memdesc:ga95deb3a7ea7873830ed7b65cabe93b88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the ENET SMI- MII management interface configuration. <a href="#ga95deb3a7ea7873830ed7b65cabe93b88">More...</a><br/></td></tr>
<tr class="separator:ga95deb3a7ea7873830ed7b65cabe93b88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1720662e45648e0f081b9152c36b3156"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga1720662e45648e0f081b9152c36b3156">ENET_ReadSMIData</a> (ENET_Type *base)</td></tr>
<tr class="memdesc:ga1720662e45648e0f081b9152c36b3156"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data from the PHY register through SMI interface. <a href="#ga1720662e45648e0f081b9152c36b3156">More...</a><br/></td></tr>
<tr class="separator:ga1720662e45648e0f081b9152c36b3156"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4b0247aa4825019f9939b2e468cf5758"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga4b0247aa4825019f9939b2e468cf5758">ENET_StartSMIRead</a> (ENET_Type *base, uint32_t phyAddr, uint32_t phyReg, <a class="el" href="group__enet.html#ga9c0264e7da8e7d0a3ead667d3a7b1a89">enet_mii_read_t</a> operation)</td></tr>
<tr class="memdesc:ga4b0247aa4825019f9939b2e468cf5758"><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts an SMI (Serial Management Interface) read command. <a href="#ga4b0247aa4825019f9939b2e468cf5758">More...</a><br/></td></tr>
<tr class="separator:ga4b0247aa4825019f9939b2e468cf5758"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0ef39cbb1042eb31189cf59fb3509b9a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga0ef39cbb1042eb31189cf59fb3509b9a">ENET_StartSMIWrite</a> (ENET_Type *base, uint32_t phyAddr, uint32_t phyReg, <a class="el" href="group__enet.html#ga0efd18bb4f4b754039fc30c440e38b02">enet_mii_write_t</a> operation, uint32_t data)</td></tr>
<tr class="memdesc:ga0ef39cbb1042eb31189cf59fb3509b9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts a SMI write command. <a href="#ga0ef39cbb1042eb31189cf59fb3509b9a">More...</a><br/></td></tr>
<tr class="separator:ga0ef39cbb1042eb31189cf59fb3509b9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
MAC Address Filter</h2></td></tr>
<tr class="memitem:ga924622a35ef81eaf69d4a4fd9302a7be"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga924622a35ef81eaf69d4a4fd9302a7be">ENET_SetMacAddr</a> (ENET_Type *base, uint8_t *macAddr)</td></tr>
<tr class="memdesc:ga924622a35ef81eaf69d4a4fd9302a7be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the ENET module Mac address. <a href="#ga924622a35ef81eaf69d4a4fd9302a7be">More...</a><br/></td></tr>
<tr class="separator:ga924622a35ef81eaf69d4a4fd9302a7be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga89e5a62af8d1ebf7359faa1fc13b56bc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga89e5a62af8d1ebf7359faa1fc13b56bc">ENET_GetMacAddr</a> (ENET_Type *base, uint8_t *macAddr)</td></tr>
<tr class="memdesc:ga89e5a62af8d1ebf7359faa1fc13b56bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the ENET module Mac address. <a href="#ga89e5a62af8d1ebf7359faa1fc13b56bc">More...</a><br/></td></tr>
<tr class="separator:ga89e5a62af8d1ebf7359faa1fc13b56bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5b9495b14a42f5b1ee24dcc5a6a9f227"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga5b9495b14a42f5b1ee24dcc5a6a9f227">ENET_AddMulticastGroup</a> (ENET_Type *base, uint8_t *address)</td></tr>
<tr class="memdesc:ga5b9495b14a42f5b1ee24dcc5a6a9f227"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds the ENET device to a multicast group. <a href="#ga5b9495b14a42f5b1ee24dcc5a6a9f227">More...</a><br/></td></tr>
<tr class="separator:ga5b9495b14a42f5b1ee24dcc5a6a9f227"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2aa6b359b811460a6fb9a2588688bf30"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga2aa6b359b811460a6fb9a2588688bf30">ENET_LeaveMulticastGroup</a> (ENET_Type *base, uint8_t *address)</td></tr>
<tr class="memdesc:ga2aa6b359b811460a6fb9a2588688bf30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the ENET device from a multicast group. <a href="#ga2aa6b359b811460a6fb9a2588688bf30">More...</a><br/></td></tr>
<tr class="separator:ga2aa6b359b811460a6fb9a2588688bf30"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Other basic operation</h2></td></tr>
<tr class="memitem:ga6e067d2d9b41ad32ce7b32ecad8cefc3"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga6e067d2d9b41ad32ce7b32ecad8cefc3">ENET_ActiveRead</a> (ENET_Type *base)</td></tr>
<tr class="memdesc:ga6e067d2d9b41ad32ce7b32ecad8cefc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Activates ENET read or receive. <a href="#ga6e067d2d9b41ad32ce7b32ecad8cefc3">More...</a><br/></td></tr>
<tr class="separator:ga6e067d2d9b41ad32ce7b32ecad8cefc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9a7bb3eb9a6be017e21ce53f2343e8bf"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga9a7bb3eb9a6be017e21ce53f2343e8bf">ENET_EnableSleepMode</a> (ENET_Type *base, bool enable)</td></tr>
<tr class="memdesc:ga9a7bb3eb9a6be017e21ce53f2343e8bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables/disables the MAC to enter sleep mode. <a href="#ga9a7bb3eb9a6be017e21ce53f2343e8bf">More...</a><br/></td></tr>
<tr class="separator:ga9a7bb3eb9a6be017e21ce53f2343e8bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d32189b130fbca31cdee7ceb57bf543"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga8d32189b130fbca31cdee7ceb57bf543">ENET_GetAccelFunction</a> (ENET_Type *base, uint32_t *txAccelOption, uint32_t *rxAccelOption)</td></tr>
<tr class="memdesc:ga8d32189b130fbca31cdee7ceb57bf543"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets ENET transmit and receive accelerator functions from MAC controller. <a href="#ga8d32189b130fbca31cdee7ceb57bf543">More...</a><br/></td></tr>
<tr class="separator:ga8d32189b130fbca31cdee7ceb57bf543"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Interrupts.</h2></td></tr>
<tr class="memitem:gad9e530c5904c36e8f23fe22f8c63651b"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#gad9e530c5904c36e8f23fe22f8c63651b">ENET_EnableInterrupts</a> (ENET_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:gad9e530c5904c36e8f23fe22f8c63651b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the ENET interrupt. <a href="#gad9e530c5904c36e8f23fe22f8c63651b">More...</a><br/></td></tr>
<tr class="separator:gad9e530c5904c36e8f23fe22f8c63651b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6a6f1de5e8f1dd09d217244899c3c8db"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga6a6f1de5e8f1dd09d217244899c3c8db">ENET_DisableInterrupts</a> (ENET_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga6a6f1de5e8f1dd09d217244899c3c8db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the ENET interrupt. <a href="#ga6a6f1de5e8f1dd09d217244899c3c8db">More...</a><br/></td></tr>
<tr class="separator:ga6a6f1de5e8f1dd09d217244899c3c8db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9b9f5a57ff20ccf83fc8887c1bba2cec"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga9b9f5a57ff20ccf83fc8887c1bba2cec">ENET_GetInterruptStatus</a> (ENET_Type *base)</td></tr>
<tr class="memdesc:ga9b9f5a57ff20ccf83fc8887c1bba2cec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the ENET interrupt status flag. <a href="#ga9b9f5a57ff20ccf83fc8887c1bba2cec">More...</a><br/></td></tr>
<tr class="separator:ga9b9f5a57ff20ccf83fc8887c1bba2cec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga98676acb368ed3d238278b4ede220469"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga98676acb368ed3d238278b4ede220469">ENET_ClearInterruptStatus</a> (ENET_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga98676acb368ed3d238278b4ede220469"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the ENET interrupt events status flag. <a href="#ga98676acb368ed3d238278b4ede220469">More...</a><br/></td></tr>
<tr class="separator:ga98676acb368ed3d238278b4ede220469"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Transactional operation</h2></td></tr>
<tr class="memitem:gae529b5e69f900ed93741a14265eee8fa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#gae529b5e69f900ed93741a14265eee8fa">ENET_SetCallback</a> (enet_handle_t *handle, <a class="el" href="group__enet.html#ga9d3c290746379a84b1e9cb744c9e452f">enet_callback_t</a> callback, void *userData)</td></tr>
<tr class="memdesc:gae529b5e69f900ed93741a14265eee8fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the callback function. <a href="#gae529b5e69f900ed93741a14265eee8fa">More...</a><br/></td></tr>
<tr class="separator:gae529b5e69f900ed93741a14265eee8fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacc74925085246e648528cabf7c93a277"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#gacc74925085246e648528cabf7c93a277">ENET_GetRxErrBeforeReadFrame</a> (enet_handle_t *handle, <a class="el" href="group__enet.html#structenet__data__error__stats__t">enet_data_error_stats_t</a> *eErrorStatic)</td></tr>
<tr class="memdesc:gacc74925085246e648528cabf7c93a277"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the ENET the error statistics of a received frame. <a href="#gacc74925085246e648528cabf7c93a277">More...</a><br/></td></tr>
<tr class="separator:gacc74925085246e648528cabf7c93a277"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2bafd955a25a2e42279a6fcf4f0b81f9"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga2bafd955a25a2e42279a6fcf4f0b81f9">ENET_GetRxFrameSize</a> (enet_handle_t *handle, uint32_t *length)</td></tr>
<tr class="memdesc:ga2bafd955a25a2e42279a6fcf4f0b81f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the size of the read frame. <a href="#ga2bafd955a25a2e42279a6fcf4f0b81f9">More...</a><br/></td></tr>
<tr class="separator:ga2bafd955a25a2e42279a6fcf4f0b81f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5fc5b46149c07df5be3a292db5c6ac15"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga5fc5b46149c07df5be3a292db5c6ac15">ENET_ReadFrame</a> (ENET_Type *base, enet_handle_t *handle, uint8_t *data, uint32_t length)</td></tr>
<tr class="memdesc:ga5fc5b46149c07df5be3a292db5c6ac15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a frame from the ENET device. <a href="#ga5fc5b46149c07df5be3a292db5c6ac15">More...</a><br/></td></tr>
<tr class="separator:ga5fc5b46149c07df5be3a292db5c6ac15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaab45575aff382eece62289f530b4bd9d"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#gaab45575aff382eece62289f530b4bd9d">ENET_SendFrame</a> (ENET_Type *base, enet_handle_t *handle, uint8_t *data, uint32_t length)</td></tr>
<tr class="memdesc:gaab45575aff382eece62289f530b4bd9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmits an ENET frame. <a href="#gaab45575aff382eece62289f530b4bd9d">More...</a><br/></td></tr>
<tr class="separator:gaab45575aff382eece62289f530b4bd9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga14ebe20169a322ceb9dcafef235b0afd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga14ebe20169a322ceb9dcafef235b0afd">ENET_TransmitIRQHandler</a> (ENET_Type *base, enet_handle_t *handle)</td></tr>
<tr class="memdesc:ga14ebe20169a322ceb9dcafef235b0afd"><td class="mdescLeft">&#160;</td><td class="mdescRight">The transmit IRQ handler. <a href="#ga14ebe20169a322ceb9dcafef235b0afd">More...</a><br/></td></tr>
<tr class="separator:ga14ebe20169a322ceb9dcafef235b0afd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9a29168893ca340db8d452edac20040b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga9a29168893ca340db8d452edac20040b">ENET_ReceiveIRQHandler</a> (ENET_Type *base, enet_handle_t *handle)</td></tr>
<tr class="memdesc:ga9a29168893ca340db8d452edac20040b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The receive IRQ handler. <a href="#ga9a29168893ca340db8d452edac20040b">More...</a><br/></td></tr>
<tr class="separator:ga9a29168893ca340db8d452edac20040b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga684127bd7163faf3458f07a021ceb448"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ga684127bd7163faf3458f07a021ceb448">ENET_ErrorIRQHandler</a> (ENET_Type *base, enet_handle_t *handle)</td></tr>
<tr class="memdesc:ga684127bd7163faf3458f07a021ceb448"><td class="mdescLeft">&#160;</td><td class="mdescRight">The error IRQ handler. <a href="#ga684127bd7163faf3458f07a021ceb448">More...</a><br/></td></tr>
<tr class="separator:ga684127bd7163faf3458f07a021ceb448"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="structenet__rx__bd__struct__t" id="structenet__rx__bd__struct__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct enet_rx_bd_struct_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a8f1b6c5523159bc56b37bfd98b378ab6"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a8f1b6c5523159bc56b37bfd98b378ab6">length</a></td></tr>
<tr class="memdesc:a8f1b6c5523159bc56b37bfd98b378ab6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Buffer descriptor data length. <a href="#a8f1b6c5523159bc56b37bfd98b378ab6">More...</a><br/></td></tr>
<tr class="separator:a8f1b6c5523159bc56b37bfd98b378ab6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01a2213b5bf50b154c4ca4866c6379ea"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a01a2213b5bf50b154c4ca4866c6379ea">control</a></td></tr>
<tr class="memdesc:a01a2213b5bf50b154c4ca4866c6379ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Buffer descriptor control and status. <a href="#a01a2213b5bf50b154c4ca4866c6379ea">More...</a><br/></td></tr>
<tr class="separator:a01a2213b5bf50b154c4ca4866c6379ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d13fe112ba7cfb37d8467413b0e7c75"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a5d13fe112ba7cfb37d8467413b0e7c75">buffer</a></td></tr>
<tr class="memdesc:a5d13fe112ba7cfb37d8467413b0e7c75"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data buffer pointer. <a href="#a5d13fe112ba7cfb37d8467413b0e7c75">More...</a><br/></td></tr>
<tr class="separator:a5d13fe112ba7cfb37d8467413b0e7c75"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a8f1b6c5523159bc56b37bfd98b378ab6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t enet_rx_bd_struct_t::length</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a01a2213b5bf50b154c4ca4866c6379ea"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t enet_rx_bd_struct_t::control</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a5d13fe112ba7cfb37d8467413b0e7c75"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t* enet_rx_bd_struct_t::buffer</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="structenet__tx__bd__struct__t" id="structenet__tx__bd__struct__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct enet_tx_bd_struct_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a7f6f448911920d9e7d9ac98f83472e1e"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a7f6f448911920d9e7d9ac98f83472e1e">length</a></td></tr>
<tr class="memdesc:a7f6f448911920d9e7d9ac98f83472e1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Buffer descriptor data length. <a href="#a7f6f448911920d9e7d9ac98f83472e1e">More...</a><br/></td></tr>
<tr class="separator:a7f6f448911920d9e7d9ac98f83472e1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26f3d526bcef8f3c3cd2a0e40760e449"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a26f3d526bcef8f3c3cd2a0e40760e449">control</a></td></tr>
<tr class="memdesc:a26f3d526bcef8f3c3cd2a0e40760e449"><td class="mdescLeft">&#160;</td><td class="mdescRight">Buffer descriptor control and status. <a href="#a26f3d526bcef8f3c3cd2a0e40760e449">More...</a><br/></td></tr>
<tr class="separator:a26f3d526bcef8f3c3cd2a0e40760e449"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54a6524c02ec1e5f6f018fd5f6efca66"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a54a6524c02ec1e5f6f018fd5f6efca66">buffer</a></td></tr>
<tr class="memdesc:a54a6524c02ec1e5f6f018fd5f6efca66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data buffer pointer. <a href="#a54a6524c02ec1e5f6f018fd5f6efca66">More...</a><br/></td></tr>
<tr class="separator:a54a6524c02ec1e5f6f018fd5f6efca66"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a7f6f448911920d9e7d9ac98f83472e1e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t enet_tx_bd_struct_t::length</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a26f3d526bcef8f3c3cd2a0e40760e449"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t enet_tx_bd_struct_t::control</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a54a6524c02ec1e5f6f018fd5f6efca66"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t* enet_tx_bd_struct_t::buffer</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="structenet__data__error__stats__t" id="structenet__data__error__stats__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct enet_data_error_stats_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a49a9b5fd12c01f4e3fdf8fb3f4e1cbcf"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a49a9b5fd12c01f4e3fdf8fb3f4e1cbcf">statsRxLenGreaterErr</a></td></tr>
<tr class="memdesc:a49a9b5fd12c01f4e3fdf8fb3f4e1cbcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive length greater than RCR[MAX_FL]. <a href="#a49a9b5fd12c01f4e3fdf8fb3f4e1cbcf">More...</a><br/></td></tr>
<tr class="separator:a49a9b5fd12c01f4e3fdf8fb3f4e1cbcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7aa8325ffacae6ae6ceea48178683da4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7aa8325ffacae6ae6ceea48178683da4"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a7aa8325ffacae6ae6ceea48178683da4">statsRxAlignErr</a></td></tr>
<tr class="memdesc:a7aa8325ffacae6ae6ceea48178683da4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive non-octet alignment/. <br/></td></tr>
<tr class="separator:a7aa8325ffacae6ae6ceea48178683da4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a961dfc75989fe1d056ee40670b01ee8c"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a961dfc75989fe1d056ee40670b01ee8c">statsRxFcsErr</a></td></tr>
<tr class="memdesc:a961dfc75989fe1d056ee40670b01ee8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive CRC error. <a href="#a961dfc75989fe1d056ee40670b01ee8c">More...</a><br/></td></tr>
<tr class="separator:a961dfc75989fe1d056ee40670b01ee8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a75e297619c93fe9d0450ccb6f29c82"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a4a75e297619c93fe9d0450ccb6f29c82">statsRxOverRunErr</a></td></tr>
<tr class="memdesc:a4a75e297619c93fe9d0450ccb6f29c82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive over run. <a href="#a4a75e297619c93fe9d0450ccb6f29c82">More...</a><br/></td></tr>
<tr class="separator:a4a75e297619c93fe9d0450ccb6f29c82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09504e8c4095afe2540e064d9fec42b0"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a09504e8c4095afe2540e064d9fec42b0">statsRxTruncateErr</a></td></tr>
<tr class="memdesc:a09504e8c4095afe2540e064d9fec42b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive truncate. <a href="#a09504e8c4095afe2540e064d9fec42b0">More...</a><br/></td></tr>
<tr class="separator:a09504e8c4095afe2540e064d9fec42b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a49a9b5fd12c01f4e3fdf8fb3f4e1cbcf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t enet_data_error_stats_t::statsRxLenGreaterErr</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a961dfc75989fe1d056ee40670b01ee8c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t enet_data_error_stats_t::statsRxFcsErr</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a4a75e297619c93fe9d0450ccb6f29c82"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t enet_data_error_stats_t::statsRxOverRunErr</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a09504e8c4095afe2540e064d9fec42b0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t enet_data_error_stats_t::statsRxTruncateErr</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="structenet__buffer__config__t" id="structenet__buffer__config__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct enet_buffer_config_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"><p>Note: For the internal DMA requirements, the buffers have a corresponding alignment requirement:</p>
<ol type="1">
<li>The aligned receive and transmit buffer size must be evenly divisible by 16.</li>
<li>The aligned transmit and receive buffer descriptor start address must be at least 64 bit aligned. However, it's recommended to be evenly divisible by 16.</li>
<li>The aligned transmit and receive buffer start address must be evenly divisible by 16. Receive buffers should be continuous with the total size equal to "rxBdNumber * rxBuffSizeAlign". Transmit buffers should be continuous with the total size equal to "txBdNumber * txBuffSizeAlign". </li>
</ol>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a65e1faa923f03d01a64c133a3830bc7f"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a65e1faa923f03d01a64c133a3830bc7f">rxBdNumber</a></td></tr>
<tr class="memdesc:a65e1faa923f03d01a64c133a3830bc7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive buffer descriptor number. <a href="#a65e1faa923f03d01a64c133a3830bc7f">More...</a><br/></td></tr>
<tr class="separator:a65e1faa923f03d01a64c133a3830bc7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f2cfe59fad3a3ea6274ef33edc66676"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a4f2cfe59fad3a3ea6274ef33edc66676">txBdNumber</a></td></tr>
<tr class="memdesc:a4f2cfe59fad3a3ea6274ef33edc66676"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmit buffer descriptor number. <a href="#a4f2cfe59fad3a3ea6274ef33edc66676">More...</a><br/></td></tr>
<tr class="separator:a4f2cfe59fad3a3ea6274ef33edc66676"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01edfb2c2441e18da8cf716c9104ef88"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a01edfb2c2441e18da8cf716c9104ef88">rxBuffSizeAlign</a></td></tr>
<tr class="memdesc:a01edfb2c2441e18da8cf716c9104ef88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Aligned receive data buffer size. <a href="#a01edfb2c2441e18da8cf716c9104ef88">More...</a><br/></td></tr>
<tr class="separator:a01edfb2c2441e18da8cf716c9104ef88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa98c505c9b7b19f77fa07e25d746ddb5"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#aa98c505c9b7b19f77fa07e25d746ddb5">txBuffSizeAlign</a></td></tr>
<tr class="memdesc:aa98c505c9b7b19f77fa07e25d746ddb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Aligned transmit data buffer size. <a href="#aa98c505c9b7b19f77fa07e25d746ddb5">More...</a><br/></td></tr>
<tr class="separator:aa98c505c9b7b19f77fa07e25d746ddb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae90713ccb39a0bb92275a458f03c5dce"><td class="memItemLeft" align="right" valign="top">volatile <a class="el" href="group__enet.html#structenet__rx__bd__struct__t">enet_rx_bd_struct_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ae90713ccb39a0bb92275a458f03c5dce">rxBdStartAddrAlign</a></td></tr>
<tr class="memdesc:ae90713ccb39a0bb92275a458f03c5dce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Aligned receive buffer descriptor start address. <a href="#ae90713ccb39a0bb92275a458f03c5dce">More...</a><br/></td></tr>
<tr class="separator:ae90713ccb39a0bb92275a458f03c5dce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fc178ed9e15d39b55c62d3ad26e05db"><td class="memItemLeft" align="right" valign="top">volatile <a class="el" href="group__enet.html#structenet__tx__bd__struct__t">enet_tx_bd_struct_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a9fc178ed9e15d39b55c62d3ad26e05db">txBdStartAddrAlign</a></td></tr>
<tr class="memdesc:a9fc178ed9e15d39b55c62d3ad26e05db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Aligned transmit buffer descriptor start address. <a href="#a9fc178ed9e15d39b55c62d3ad26e05db">More...</a><br/></td></tr>
<tr class="separator:a9fc178ed9e15d39b55c62d3ad26e05db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0917bce7024fa1d557f742e731849768"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a0917bce7024fa1d557f742e731849768">rxBufferAlign</a></td></tr>
<tr class="memdesc:a0917bce7024fa1d557f742e731849768"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive data buffer start address. <a href="#a0917bce7024fa1d557f742e731849768">More...</a><br/></td></tr>
<tr class="separator:a0917bce7024fa1d557f742e731849768"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70bca73b0157bb5a6985f2c9ecdc4ac8"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a70bca73b0157bb5a6985f2c9ecdc4ac8">txBufferAlign</a></td></tr>
<tr class="memdesc:a70bca73b0157bb5a6985f2c9ecdc4ac8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmit data buffer start address. <a href="#a70bca73b0157bb5a6985f2c9ecdc4ac8">More...</a><br/></td></tr>
<tr class="separator:a70bca73b0157bb5a6985f2c9ecdc4ac8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a65e1faa923f03d01a64c133a3830bc7f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t enet_buffer_config_t::rxBdNumber</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a4f2cfe59fad3a3ea6274ef33edc66676"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t enet_buffer_config_t::txBdNumber</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a01edfb2c2441e18da8cf716c9104ef88"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t enet_buffer_config_t::rxBuffSizeAlign</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa98c505c9b7b19f77fa07e25d746ddb5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t enet_buffer_config_t::txBuffSizeAlign</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae90713ccb39a0bb92275a458f03c5dce"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile <a class="el" href="group__enet.html#structenet__rx__bd__struct__t">enet_rx_bd_struct_t</a>* enet_buffer_config_t::rxBdStartAddrAlign</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a9fc178ed9e15d39b55c62d3ad26e05db"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile <a class="el" href="group__enet.html#structenet__tx__bd__struct__t">enet_tx_bd_struct_t</a>* enet_buffer_config_t::txBdStartAddrAlign</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a0917bce7024fa1d557f742e731849768"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t* enet_buffer_config_t::rxBufferAlign</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a70bca73b0157bb5a6985f2c9ecdc4ac8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t* enet_buffer_config_t::txBufferAlign</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="structenet__config__t" id="structenet__config__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct enet_config_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"><p>Note:</p>
<ol type="1">
<li>macSpecialConfig is used for a special control configuration, A logical OR of "enet_special_control_flag_t". For a special configuration for MAC, set this parameter to 0.</li>
<li>txWatermark is used for a cut-through operation. It is in steps of 64 bytes: 0/1 - 64 bytes written to TX FIFO before transmission of a frame begins. 2 - 128 bytes written to TX FIFO .... 3 - 192 bytes written to TX FIFO .... The maximum of txWatermark is 0x2F - 4032 bytes written to TX FIFO .... txWatermark allows minimizing the transmit latency to set the txWatermark to 0 or 1 or for larger bus access latency 3 or larger due to contention for the system bus.</li>
<li>rxFifoFullThreshold is similar to the txWatermark for cut-through operation in RX. It is in 64-bit words. The minimum is ENET_FIFO_MIN_RX_FULL and the maximum is 0xFF. If the end of the frame is stored in FIFO and the frame size if smaller than the txWatermark, the frame is still transmitted. The rule is the same for rxFifoFullThreshold in the receive direction.</li>
<li>When "kENET_ControlFlowControlEnable" is set in the macSpecialConfig, ensure that the pauseDuration, rxFifoEmptyThreshold, and rxFifoStatEmptyThreshold are set for flow control enabled case.</li>
<li>When "kENET_ControlStoreAndFwdDisabled" is set in the macSpecialConfig, ensure that the rxFifoFullThreshold and txFifoWatermark are set for store and forward disable.</li>
<li>The rxAccelerConfig and txAccelerConfig default setting with 0 - accelerator are disabled. The "enet_tx_accelerator_t" and "enet_rx_accelerator_t" are recommended to be used to enable the transmit and receive accelerator. After the accelerators are enabled, the store and forward feature should be enabled. As a result, kENET_ControlStoreAndFwdDisabled should not be set. </li>
</ol>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:ae18a59c71607550da3eb35ac6a64ac11"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ae18a59c71607550da3eb35ac6a64ac11">macSpecialConfig</a></td></tr>
<tr class="memdesc:ae18a59c71607550da3eb35ac6a64ac11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mac special configuration. <a href="#ae18a59c71607550da3eb35ac6a64ac11">More...</a><br/></td></tr>
<tr class="separator:ae18a59c71607550da3eb35ac6a64ac11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6126ff38c3d09e8f4b305cc0a45befd"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ad6126ff38c3d09e8f4b305cc0a45befd">interrupt</a></td></tr>
<tr class="memdesc:ad6126ff38c3d09e8f4b305cc0a45befd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mac interrupt source. <a href="#ad6126ff38c3d09e8f4b305cc0a45befd">More...</a><br/></td></tr>
<tr class="separator:ad6126ff38c3d09e8f4b305cc0a45befd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8096267beadb3701fb82163d1e9aa6dd"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a8096267beadb3701fb82163d1e9aa6dd">rxMaxFrameLen</a></td></tr>
<tr class="memdesc:a8096267beadb3701fb82163d1e9aa6dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive maximum frame length. <a href="#a8096267beadb3701fb82163d1e9aa6dd">More...</a><br/></td></tr>
<tr class="separator:a8096267beadb3701fb82163d1e9aa6dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5d9f50ec02037d29f6ed4202ffdbc1f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__enet.html#ga4ae0699c0a7f9706deffbaf201025669">enet_mii_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#af5d9f50ec02037d29f6ed4202ffdbc1f">miiMode</a></td></tr>
<tr class="memdesc:af5d9f50ec02037d29f6ed4202ffdbc1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">MII mode. <a href="#af5d9f50ec02037d29f6ed4202ffdbc1f">More...</a><br/></td></tr>
<tr class="separator:af5d9f50ec02037d29f6ed4202ffdbc1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a073bdafc878d858c56533323322be6a9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__enet.html#ga8bbf729066c3400712a19ed1d9179e4c">enet_mii_speed_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a073bdafc878d858c56533323322be6a9">miiSpeed</a></td></tr>
<tr class="memdesc:a073bdafc878d858c56533323322be6a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">MII Speed. <a href="#a073bdafc878d858c56533323322be6a9">More...</a><br/></td></tr>
<tr class="separator:a073bdafc878d858c56533323322be6a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0704352d744c4da14bf1e836e95ff072"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__enet.html#ga0784f279168ea4e3fc2fc07018dcb9bf">enet_mii_duplex_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a0704352d744c4da14bf1e836e95ff072">miiDuplex</a></td></tr>
<tr class="memdesc:a0704352d744c4da14bf1e836e95ff072"><td class="mdescLeft">&#160;</td><td class="mdescRight">MII duplex. <a href="#a0704352d744c4da14bf1e836e95ff072">More...</a><br/></td></tr>
<tr class="separator:a0704352d744c4da14bf1e836e95ff072"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7458a889dfeb4ccd0b62767486e61bbb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a7458a889dfeb4ccd0b62767486e61bbb">rxAccelerConfig</a></td></tr>
<tr class="memdesc:a7458a889dfeb4ccd0b62767486e61bbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive accelerator, A logical OR of "enet_rx_accelerator_t". <a href="#a7458a889dfeb4ccd0b62767486e61bbb">More...</a><br/></td></tr>
<tr class="separator:a7458a889dfeb4ccd0b62767486e61bbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a033caacd25725e29eb07aa98936e6814"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a033caacd25725e29eb07aa98936e6814">txAccelerConfig</a></td></tr>
<tr class="memdesc:a033caacd25725e29eb07aa98936e6814"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmit accelerator, A logical OR of "enet_rx_accelerator_t". <a href="#a033caacd25725e29eb07aa98936e6814">More...</a><br/></td></tr>
<tr class="separator:a033caacd25725e29eb07aa98936e6814"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ad647d398242d29ca34f03903e119a7"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a4ad647d398242d29ca34f03903e119a7">pauseDuration</a></td></tr>
<tr class="memdesc:a4ad647d398242d29ca34f03903e119a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">For flow control enabled case: Pause duration. <a href="#a4ad647d398242d29ca34f03903e119a7">More...</a><br/></td></tr>
<tr class="separator:a4ad647d398242d29ca34f03903e119a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a0b1d0e07cc8817dc37f0af8cce10f6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a1a0b1d0e07cc8817dc37f0af8cce10f6">rxFifoEmptyThreshold</a></td></tr>
<tr class="memdesc:a1a0b1d0e07cc8817dc37f0af8cce10f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">For flow control enabled case: when RX FIFO level reaches this value, it makes MAC generate XOFF pause frame. <a href="#a1a0b1d0e07cc8817dc37f0af8cce10f6">More...</a><br/></td></tr>
<tr class="separator:a1a0b1d0e07cc8817dc37f0af8cce10f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af15c6f6b67b8bbdebda299b2137e3c48"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#af15c6f6b67b8bbdebda299b2137e3c48">rxFifoFullThreshold</a></td></tr>
<tr class="memdesc:af15c6f6b67b8bbdebda299b2137e3c48"><td class="mdescLeft">&#160;</td><td class="mdescRight">For store and forward disable case, the data required in RX FIFO to notify the MAC receive ready status. <a href="#af15c6f6b67b8bbdebda299b2137e3c48">More...</a><br/></td></tr>
<tr class="separator:af15c6f6b67b8bbdebda299b2137e3c48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30ec04b6b5c7018f5fa75723778c7bca"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a30ec04b6b5c7018f5fa75723778c7bca">txFifoWatermark</a></td></tr>
<tr class="memdesc:a30ec04b6b5c7018f5fa75723778c7bca"><td class="mdescLeft">&#160;</td><td class="mdescRight">For store and forward disable case, the data required in TX FIFO before a frame transmit start. <a href="#a30ec04b6b5c7018f5fa75723778c7bca">More...</a><br/></td></tr>
<tr class="separator:a30ec04b6b5c7018f5fa75723778c7bca"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="ae18a59c71607550da3eb35ac6a64ac11"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t enet_config_t::macSpecialConfig</td>
</tr>
</table>
</div><div class="memdoc">
<p>A logical OR of "enet_special_control_flag_t". </p>
</div>
</div>
<a class="anchor" id="ad6126ff38c3d09e8f4b305cc0a45befd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t enet_config_t::interrupt</td>
</tr>
</table>
</div><div class="memdoc">
<p>A logical OR of "enet_interrupt_enable_t". </p>
</div>
</div>
<a class="anchor" id="a8096267beadb3701fb82163d1e9aa6dd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t enet_config_t::rxMaxFrameLen</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="af5d9f50ec02037d29f6ed4202ffdbc1f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__enet.html#ga4ae0699c0a7f9706deffbaf201025669">enet_mii_mode_t</a> enet_config_t::miiMode</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a073bdafc878d858c56533323322be6a9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__enet.html#ga8bbf729066c3400712a19ed1d9179e4c">enet_mii_speed_t</a> enet_config_t::miiSpeed</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a0704352d744c4da14bf1e836e95ff072"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__enet.html#ga0784f279168ea4e3fc2fc07018dcb9bf">enet_mii_duplex_t</a> enet_config_t::miiDuplex</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7458a889dfeb4ccd0b62767486e61bbb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t enet_config_t::rxAccelerConfig</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a033caacd25725e29eb07aa98936e6814"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t enet_config_t::txAccelerConfig</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a4ad647d398242d29ca34f03903e119a7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t enet_config_t::pauseDuration</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a1a0b1d0e07cc8817dc37f0af8cce10f6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t enet_config_t::rxFifoEmptyThreshold</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="af15c6f6b67b8bbdebda299b2137e3c48"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t enet_config_t::rxFifoFullThreshold</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a30ec04b6b5c7018f5fa75723778c7bca"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t enet_config_t::txFifoWatermark</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="struct__enet__handle" id="struct__enet__handle"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _enet_handle</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:ae7d353e9fc36b64623e4cc032481eba7"><td class="memItemLeft" align="right" valign="top">volatile <a class="el" href="group__enet.html#structenet__rx__bd__struct__t">enet_rx_bd_struct_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ae7d353e9fc36b64623e4cc032481eba7">rxBdBase</a></td></tr>
<tr class="memdesc:ae7d353e9fc36b64623e4cc032481eba7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive buffer descriptor base address pointer. <a href="#ae7d353e9fc36b64623e4cc032481eba7">More...</a><br/></td></tr>
<tr class="separator:ae7d353e9fc36b64623e4cc032481eba7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac73a332d5435fda9e50296f025804418"><td class="memItemLeft" align="right" valign="top">volatile <a class="el" href="group__enet.html#structenet__rx__bd__struct__t">enet_rx_bd_struct_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ac73a332d5435fda9e50296f025804418">rxBdCurrent</a></td></tr>
<tr class="memdesc:ac73a332d5435fda9e50296f025804418"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current available receive buffer descriptor pointer. <a href="#ac73a332d5435fda9e50296f025804418">More...</a><br/></td></tr>
<tr class="separator:ac73a332d5435fda9e50296f025804418"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0323385290f18e4e887ffbc9274bddb4"><td class="memItemLeft" align="right" valign="top">volatile <a class="el" href="group__enet.html#structenet__rx__bd__struct__t">enet_rx_bd_struct_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a0323385290f18e4e887ffbc9274bddb4">rxBdDirty</a></td></tr>
<tr class="memdesc:a0323385290f18e4e887ffbc9274bddb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The dirty receive buffer descriptor needed to be updated from. <a href="#a0323385290f18e4e887ffbc9274bddb4">More...</a><br/></td></tr>
<tr class="separator:a0323385290f18e4e887ffbc9274bddb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acda8bcf00ea56a004f44cc915a06d4f4"><td class="memItemLeft" align="right" valign="top">volatile <a class="el" href="group__enet.html#structenet__tx__bd__struct__t">enet_tx_bd_struct_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#acda8bcf00ea56a004f44cc915a06d4f4">txBdBase</a></td></tr>
<tr class="memdesc:acda8bcf00ea56a004f44cc915a06d4f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmit buffer descriptor base address pointer. <a href="#acda8bcf00ea56a004f44cc915a06d4f4">More...</a><br/></td></tr>
<tr class="separator:acda8bcf00ea56a004f44cc915a06d4f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e5ab6cb102b45ae311b1f107faf2fa9"><td class="memItemLeft" align="right" valign="top">volatile <a class="el" href="group__enet.html#structenet__tx__bd__struct__t">enet_tx_bd_struct_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a2e5ab6cb102b45ae311b1f107faf2fa9">txBdCurrent</a></td></tr>
<tr class="memdesc:a2e5ab6cb102b45ae311b1f107faf2fa9"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current available transmit buffer descriptor pointer. <a href="#a2e5ab6cb102b45ae311b1f107faf2fa9">More...</a><br/></td></tr>
<tr class="separator:a2e5ab6cb102b45ae311b1f107faf2fa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71597b4e788e19065d717b54e0a970af"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a71597b4e788e19065d717b54e0a970af">rxBuffSizeAlign</a></td></tr>
<tr class="memdesc:a71597b4e788e19065d717b54e0a970af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive buffer size alignment. <a href="#a71597b4e788e19065d717b54e0a970af">More...</a><br/></td></tr>
<tr class="separator:a71597b4e788e19065d717b54e0a970af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a741f9e413490fa3002d9e9c6a18cfc"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a2a741f9e413490fa3002d9e9c6a18cfc">txBuffSizeAlign</a></td></tr>
<tr class="memdesc:a2a741f9e413490fa3002d9e9c6a18cfc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmit buffer size alignment. <a href="#a2a741f9e413490fa3002d9e9c6a18cfc">More...</a><br/></td></tr>
<tr class="separator:a2a741f9e413490fa3002d9e9c6a18cfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6f1673b4b3b633bd4e6b0fa8732ea58"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__enet.html#ga9d3c290746379a84b1e9cb744c9e452f">enet_callback_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#ab6f1673b4b3b633bd4e6b0fa8732ea58">callback</a></td></tr>
<tr class="memdesc:ab6f1673b4b3b633bd4e6b0fa8732ea58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function. <a href="#ab6f1673b4b3b633bd4e6b0fa8732ea58">More...</a><br/></td></tr>
<tr class="separator:ab6f1673b4b3b633bd4e6b0fa8732ea58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0fca53e60f7e5646f409633651d8e249"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__enet.html#a0fca53e60f7e5646f409633651d8e249">userData</a></td></tr>
<tr class="memdesc:a0fca53e60f7e5646f409633651d8e249"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function parameter. <a href="#a0fca53e60f7e5646f409633651d8e249">More...</a><br/></td></tr>
<tr class="separator:a0fca53e60f7e5646f409633651d8e249"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="ae7d353e9fc36b64623e4cc032481eba7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile <a class="el" href="group__enet.html#structenet__rx__bd__struct__t">enet_rx_bd_struct_t</a>* enet_handle_t::rxBdBase</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ac73a332d5435fda9e50296f025804418"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile <a class="el" href="group__enet.html#structenet__rx__bd__struct__t">enet_rx_bd_struct_t</a>* enet_handle_t::rxBdCurrent</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a0323385290f18e4e887ffbc9274bddb4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile <a class="el" href="group__enet.html#structenet__rx__bd__struct__t">enet_rx_bd_struct_t</a>* enet_handle_t::rxBdDirty</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="acda8bcf00ea56a004f44cc915a06d4f4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile <a class="el" href="group__enet.html#structenet__tx__bd__struct__t">enet_tx_bd_struct_t</a>* enet_handle_t::txBdBase</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a2e5ab6cb102b45ae311b1f107faf2fa9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile <a class="el" href="group__enet.html#structenet__tx__bd__struct__t">enet_tx_bd_struct_t</a>* enet_handle_t::txBdCurrent</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a71597b4e788e19065d717b54e0a970af"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t enet_handle_t::rxBuffSizeAlign</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a2a741f9e413490fa3002d9e9c6a18cfc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t enet_handle_t::txBuffSizeAlign</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ab6f1673b4b3b633bd4e6b0fa8732ea58"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__enet.html#ga9d3c290746379a84b1e9cb744c9e452f">enet_callback_t</a> enet_handle_t::callback</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a0fca53e60f7e5646f409633651d8e249"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* enet_handle_t::userData</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga869f211125798c5e1f17464dee22704e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FSL_ENET_DRIVER_VERSION&#160;&#160;&#160;(<a class="el" href="group__flash__driver.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 0, 0))</td>
</tr>
</table>
</div><div class="memdoc">
<p>Version 2.0.0. </p>
</div>
</div>
<a class="anchor" id="ga4ecdb738a6f27b81eb9ad44d24d2f1db"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFFDESCRIPTOR_RX_EMPTY_MASK&#160;&#160;&#160;0x8000U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gac3815af5aedc53cf345ae5186f711d6d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFFDESCRIPTOR_RX_SOFTOWNER1_MASK&#160;&#160;&#160;0x4000U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga37f7e7094697aa06285df27da4e3791f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFFDESCRIPTOR_RX_WRAP_MASK&#160;&#160;&#160;0x2000U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga6097b5e5b8015de197db0e54cbb5425f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFFDESCRIPTOR_RX_SOFTOWNER2_Mask&#160;&#160;&#160;0x1000U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gae302c57c88bade74af59c4bcfcac7d0f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFFDESCRIPTOR_RX_LAST_MASK&#160;&#160;&#160;0x0800U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gad622789c0bb27a6ac2ab54e3526d2712"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFFDESCRIPTOR_RX_MISS_MASK&#160;&#160;&#160;0x0100U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gae4cfa2a92c961ee34445976e2949c00d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFFDESCRIPTOR_RX_BROADCAST_MASK&#160;&#160;&#160;0x0080U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaf47a7a6cf15a885878a39749f9d645ed"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFFDESCRIPTOR_RX_MULTICAST_MASK&#160;&#160;&#160;0x0040U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga7b3cbc3ed367bd8fcbcbb6bcc14ef06f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFFDESCRIPTOR_RX_LENVLIOLATE_MASK&#160;&#160;&#160;0x0020U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga67881a213531011e78cc56a3ac017549"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFFDESCRIPTOR_RX_NOOCTET_MASK&#160;&#160;&#160;0x0010U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga4f57d5345b3a3f349e834e0d46645ce3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFFDESCRIPTOR_RX_CRC_MASK&#160;&#160;&#160;0x0004U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga31d458f38d3123c1eb398bf57d1ebacc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFFDESCRIPTOR_RX_OVERRUN_MASK&#160;&#160;&#160;0x0002U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga9e3e6bac667500c8ff096be418e7a0e1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFFDESCRIPTOR_RX_TRUNC_MASK&#160;&#160;&#160;0x0001U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga842251a5e8c62968a87578698f0dd083"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFFDESCRIPTOR_TX_READY_MASK&#160;&#160;&#160;0x8000U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gae76d465c3a9f07b28f48433022a005cc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFFDESCRIPTOR_TX_SOFTOWENER1_MASK&#160;&#160;&#160;0x4000U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga159bc70ce067d81c7b44917f16ab596e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFFDESCRIPTOR_TX_WRAP_MASK&#160;&#160;&#160;0x2000U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga09c9ab0c2b634f6e97df4e5b5c4bc8a1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFFDESCRIPTOR_TX_SOFTOWENER2_MASK&#160;&#160;&#160;0x1000U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga59497a4cfa4e8df8ceb6e6b39549ea1d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFFDESCRIPTOR_TX_LAST_MASK&#160;&#160;&#160;0x0800U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga4119af7a03ab546888a3853f228b09bd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFFDESCRIPTOR_TX_TRANMITCRC_MASK&#160;&#160;&#160;0x0400U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaa47652ada5e7cc078bc37979d5487b46"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFFDESCRIPTOR_RX_ERR_MASK</td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(<a class="code" href="group__enet.html#ga9e3e6bac667500c8ff096be418e7a0e1">ENET_BUFFDESCRIPTOR_RX_TRUNC_MASK</a> | <a class="code" href="group__enet.html#ga31d458f38d3123c1eb398bf57d1ebacc">ENET_BUFFDESCRIPTOR_RX_OVERRUN_MASK</a> | <a class="code" href="group__enet.html#ga7b3cbc3ed367bd8fcbcbb6bcc14ef06f">\</a></div>
<div class="line"><a class="code" href="group__enet.html#ga7b3cbc3ed367bd8fcbcbb6bcc14ef06f"> ENET_BUFFDESCRIPTOR_RX_LENVLIOLATE_MASK</a> | <a class="code" href="group__enet.html#ga67881a213531011e78cc56a3ac017549">ENET_BUFFDESCRIPTOR_RX_NOOCTET_MASK</a> | <a class="code" href="group__enet.html#ga4f57d5345b3a3f349e834e0d46645ce3">ENET_BUFFDESCRIPTOR_RX_CRC_MASK</a>)</div>
<div class="ttc" id="group__enet_html_ga7b3cbc3ed367bd8fcbcbb6bcc14ef06f"><div class="ttname"><a href="group__enet.html#ga7b3cbc3ed367bd8fcbcbb6bcc14ef06f">ENET_BUFFDESCRIPTOR_RX_LENVLIOLATE_MASK</a></div><div class="ttdeci">#define ENET_BUFFDESCRIPTOR_RX_LENVLIOLATE_MASK</div><div class="ttdoc">Length violation mask. </div><div class="ttdef"><b>Definition:</b> fsl_enet.h:62</div></div>
<div class="ttc" id="group__enet_html_ga9e3e6bac667500c8ff096be418e7a0e1"><div class="ttname"><a href="group__enet.html#ga9e3e6bac667500c8ff096be418e7a0e1">ENET_BUFFDESCRIPTOR_RX_TRUNC_MASK</a></div><div class="ttdeci">#define ENET_BUFFDESCRIPTOR_RX_TRUNC_MASK</div><div class="ttdoc">Frame is truncated mask. </div><div class="ttdef"><b>Definition:</b> fsl_enet.h:66</div></div>
<div class="ttc" id="group__enet_html_ga31d458f38d3123c1eb398bf57d1ebacc"><div class="ttname"><a href="group__enet.html#ga31d458f38d3123c1eb398bf57d1ebacc">ENET_BUFFDESCRIPTOR_RX_OVERRUN_MASK</a></div><div class="ttdeci">#define ENET_BUFFDESCRIPTOR_RX_OVERRUN_MASK</div><div class="ttdoc">FIFO overrun mask. </div><div class="ttdef"><b>Definition:</b> fsl_enet.h:65</div></div>
<div class="ttc" id="group__enet_html_ga67881a213531011e78cc56a3ac017549"><div class="ttname"><a href="group__enet.html#ga67881a213531011e78cc56a3ac017549">ENET_BUFFDESCRIPTOR_RX_NOOCTET_MASK</a></div><div class="ttdeci">#define ENET_BUFFDESCRIPTOR_RX_NOOCTET_MASK</div><div class="ttdoc">Non-octet aligned frame mask. </div><div class="ttdef"><b>Definition:</b> fsl_enet.h:63</div></div>
<div class="ttc" id="group__enet_html_ga4f57d5345b3a3f349e834e0d46645ce3"><div class="ttname"><a href="group__enet.html#ga4f57d5345b3a3f349e834e0d46645ce3">ENET_BUFFDESCRIPTOR_RX_CRC_MASK</a></div><div class="ttdeci">#define ENET_BUFFDESCRIPTOR_RX_CRC_MASK</div><div class="ttdoc">CRC error mask. </div><div class="ttdef"><b>Definition:</b> fsl_enet.h:64</div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="ga4fa46b5ee409f6d147980adc57493f6d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_FRAME_MAX_FRAMELEN&#160;&#160;&#160;1518U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga45ddb9b57534827471df761fdb03bf8f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_FRAME_MAX_VALNFRAMELEN&#160;&#160;&#160;1522U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gae9e50e322b991831fd71514002a3ca7b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_FIFO_MIN_RX_FULL&#160;&#160;&#160;5U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaedbdd29c8a3e25c856b42f13edebcd8d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_RX_MIN_BUFFERSIZE&#160;&#160;&#160;256U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga0f83120d7461f8851bd187aa747693e4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_BUFF_ALIGNMENT&#160;&#160;&#160;16U</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga1f4edc29c5f534c4bd8f1afbd0185a4f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENET_PHY_MAXADDRESS&#160;&#160;&#160;(ENET_MMFR_PA_MASK &gt;&gt; ENET_MMFR_PA_SHIFT)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="ga9d3c290746379a84b1e9cb744c9e452f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* enet_callback_t)(ENET_Type *base, enet_handle_t *handle, <a class="el" href="group__enet.html#gab6a6012153064f5996a44ecb79559fbe">enet_event_t</a> event, void *userData)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga2763713429a9379805f0e70ddd22df0c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__enet.html#ga2763713429a9379805f0e70ddd22df0c">_enet_status</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga2763713429a9379805f0e70ddd22df0caef1f945a6dc8fcf6267d57aac2a19f99"></a>kStatus_ENET_RxFrameError</em>&#160;</td><td class="fielddoc">
<p>A frame received but data error happen. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2763713429a9379805f0e70ddd22df0ca97bf0aacb16c8874c7a0a016483cb2ec"></a>kStatus_ENET_RxFrameFail</em>&#160;</td><td class="fielddoc">
<p>Failed to receive a frame. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2763713429a9379805f0e70ddd22df0ca50e097caecebfb4afacf2c8a667a5409"></a>kStatus_ENET_RxFrameEmpty</em>&#160;</td><td class="fielddoc">
<p>No frame arrive. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2763713429a9379805f0e70ddd22df0cad15b9b2af39f28f90889bb19f568e844"></a>kStatus_ENET_TxFrameBusy</em>&#160;</td><td class="fielddoc">
<p>Transmit buffer descriptors are under process. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2763713429a9379805f0e70ddd22df0ca34b4c8ff24db933516a0cf13fc8174ad"></a>kStatus_ENET_TxFrameFail</em>&#160;</td><td class="fielddoc">
<p>Transmit frame fail. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga4ae0699c0a7f9706deffbaf201025669"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__enet.html#ga4ae0699c0a7f9706deffbaf201025669">enet_mii_mode_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga4ae0699c0a7f9706deffbaf201025669a8625ad828cb3aae19fa0c2e6934e9368"></a>kENET_MiiMode</em>&#160;</td><td class="fielddoc">
<p>MII mode for data interface. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4ae0699c0a7f9706deffbaf201025669ae44236ebbdfcc0ae1e3520edd3d2d602"></a>kENET_RmiiMode</em>&#160;</td><td class="fielddoc">
<p>RMII mode for data interface. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga8bbf729066c3400712a19ed1d9179e4c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__enet.html#ga8bbf729066c3400712a19ed1d9179e4c">enet_mii_speed_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga8bbf729066c3400712a19ed1d9179e4ca6e8f095a5a1944d54425565b5beb835c"></a>kENET_MiiSpeed10M</em>&#160;</td><td class="fielddoc">
<p>Speed 10 Mbps. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga8bbf729066c3400712a19ed1d9179e4ca267390f53c987b908852257bf5407e8e"></a>kENET_MiiSpeed100M</em>&#160;</td><td class="fielddoc">
<p>Speed 100 Mbps. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga0784f279168ea4e3fc2fc07018dcb9bf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__enet.html#ga0784f279168ea4e3fc2fc07018dcb9bf">enet_mii_duplex_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga0784f279168ea4e3fc2fc07018dcb9bfad3b58af3cb1b983f8e3cd45b585c91b9"></a>kENET_MiiHalfDuplex</em>&#160;</td><td class="fielddoc">
<p>Half duplex mode. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga0784f279168ea4e3fc2fc07018dcb9bfa0d2ad2c3708231614c716bc921503d6c"></a>kENET_MiiFullDuplex</em>&#160;</td><td class="fielddoc">
<p>Full duplex mode. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga0efd18bb4f4b754039fc30c440e38b02"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__enet.html#ga0efd18bb4f4b754039fc30c440e38b02">enet_mii_write_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga0efd18bb4f4b754039fc30c440e38b02afa74c106f9ed2436e47a5c3f54382b71"></a>kENET_MiiWriteNoCompliant</em>&#160;</td><td class="fielddoc">
<p>Write frame operation, but not MII-compliant. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga0efd18bb4f4b754039fc30c440e38b02a1611c88e328da10f5c43bd138eca6794"></a>kENET_MiiWriteValidFrame</em>&#160;</td><td class="fielddoc">
<p>Write frame operation for a valid MII management frame. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga9c0264e7da8e7d0a3ead667d3a7b1a89"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__enet.html#ga9c0264e7da8e7d0a3ead667d3a7b1a89">enet_mii_read_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga9c0264e7da8e7d0a3ead667d3a7b1a89a25d7fb88a8252dc7250617be5ea78f91"></a>kENET_MiiReadValidFrame</em>&#160;</td><td class="fielddoc">
<p>Read frame operation for a valid MII management frame. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9c0264e7da8e7d0a3ead667d3a7b1a89a3a3402b126399caf1ad17a2981f69a14"></a>kENET_MiiReadNoCompliant</em>&#160;</td><td class="fielddoc">
<p>Read frame operation, but not MII-compliant. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga3dd434e4f34bd4c640cefd471763e834"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__enet.html#ga3dd434e4f34bd4c640cefd471763e834">enet_special_control_flag_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>These control flags are provided for special user requirements. Normally, these control flags are unused for ENET initialization. For special requirements, set the flags to macSpecialConfig in the <a class="el" href="group__enet.html#structenet__config__t" title="Defines the basic configuration structure for the ENET device. ">enet_config_t</a>. The kENET_ControlStoreAndFwdDisable is used to disable the FIFO store and forward. FIFO store and forward means that the FIFO read/send is started when a complete frame is stored in TX/RX FIFO. If this flag is set, configure rxFifoFullThreshold and txFifoWatermark in the <a class="el" href="group__enet.html#structenet__config__t" title="Defines the basic configuration structure for the ENET device. ">enet_config_t</a>. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga3dd434e4f34bd4c640cefd471763e834a2274920ae245b67edc1538ecc662e2e7"></a>kENET_ControlFlowControlEnable</em>&#160;</td><td class="fielddoc">
<p>Enable ENET flow control: pause frame. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3dd434e4f34bd4c640cefd471763e834a9493b832848510c47488327ef49e4d09"></a>kENET_ControlRxPayloadCheckEnable</em>&#160;</td><td class="fielddoc">
<p>Enable ENET receive payload length check. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3dd434e4f34bd4c640cefd471763e834aa29ba1cc644bf602ffc8ef9e1ae02892"></a>kENET_ControlRxPadRemoveEnable</em>&#160;</td><td class="fielddoc">
<p>Padding is removed from received frames. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3dd434e4f34bd4c640cefd471763e834ade873dafe5c7263f8cc62b0ca92aada3"></a>kENET_ControlRxBroadCastRejectEnable</em>&#160;</td><td class="fielddoc">
<p>Enable broadcast frame reject. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3dd434e4f34bd4c640cefd471763e834ac806eb5baebf350b694cca943bc812c7"></a>kENET_ControlMacAddrInsert</em>&#160;</td><td class="fielddoc">
<p>Enable MAC address insert. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3dd434e4f34bd4c640cefd471763e834abb1b113283cf4f67722599cc58803643"></a>kENET_ControlStoreAndFwdDisable</em>&#160;</td><td class="fielddoc">
<p>Enable FIFO store and forward. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3dd434e4f34bd4c640cefd471763e834a8eb7a5389fe9cf0a867066be878efcf1"></a>kENET_ControlSMIPreambleDisable</em>&#160;</td><td class="fielddoc">
<p>Enable SMI preamble. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3dd434e4f34bd4c640cefd471763e834a51af87f0cfef162bc4c48fd0884c0cab"></a>kENET_ControlPromiscuousEnable</em>&#160;</td><td class="fielddoc">
<p>Enable promiscuous mode. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3dd434e4f34bd4c640cefd471763e834a8cfbb36dc3a0bebf378ed53d527e93af"></a>kENET_ControlMIILoopEnable</em>&#160;</td><td class="fielddoc">
<p>Enable ENET MII loop back. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3dd434e4f34bd4c640cefd471763e834a3553f9aa0fdc655ffff8e0f46f6cb4b7"></a>kENET_ControlVLANTagEnable</em>&#160;</td><td class="fielddoc">
<p>Enable VLAN tag frame. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gafb9d440ac05cadfab906714b2db65027"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__enet.html#gafb9d440ac05cadfab906714b2db65027">enet_interrupt_enable_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>This enumeration uses one-bot encoding to allow a logical OR of multiple members. Members usually map to interrupt enable bits in one or more peripheral registers. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggafb9d440ac05cadfab906714b2db65027a2723f07cc888d945f74650566d79e82e"></a>kENET_BabrInterrupt</em>&#160;</td><td class="fielddoc">
<p>Babbling receive error interrupt source. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggafb9d440ac05cadfab906714b2db65027a103227b91492fa90cf41212e63b1e7ae"></a>kENET_BabtInterrupt</em>&#160;</td><td class="fielddoc">
<p>Babbling transmit error interrupt source. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggafb9d440ac05cadfab906714b2db65027a1a3e80425de2ce87abc060cef41d1f9e"></a>kENET_GraceStopInterrupt</em>&#160;</td><td class="fielddoc">
<p>Graceful stop complete interrupt source. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggafb9d440ac05cadfab906714b2db65027a7b2529920e9b97d937aa6b420bf1d51f"></a>kENET_TxFrameInterrupt</em>&#160;</td><td class="fielddoc">
<p>TX FRAME interrupt source. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggafb9d440ac05cadfab906714b2db65027a639816df292014011a7e9520d99b4bf9"></a>kENET_TxByteInterrupt</em>&#160;</td><td class="fielddoc">
<p>TX BYTE interrupt source. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggafb9d440ac05cadfab906714b2db65027a35d716ce614f33b7afbcf168922f1e70"></a>kENET_RxFrameInterrupt</em>&#160;</td><td class="fielddoc">
<p>RX FRAME interrupt source. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggafb9d440ac05cadfab906714b2db65027a22a1f9cf1df91e407e6714a366d74f21"></a>kENET_RxByteInterrupt</em>&#160;</td><td class="fielddoc">
<p>RX BYTE interrupt source. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggafb9d440ac05cadfab906714b2db65027af14e66a1e3dd261481ae560fb2794340"></a>kENET_MiiInterrupt</em>&#160;</td><td class="fielddoc">
<p>MII interrupt source. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggafb9d440ac05cadfab906714b2db65027ace73af088e05b63d6f8d6aeda6a9908e"></a>kENET_EBusERInterrupt</em>&#160;</td><td class="fielddoc">
<p>Ethernet bus error interrupt source. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggafb9d440ac05cadfab906714b2db65027a1495716c4d2b819469d0243c3768eac1"></a>kENET_LateCollisionInterrupt</em>&#160;</td><td class="fielddoc">
<p>Late collision interrupt source. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggafb9d440ac05cadfab906714b2db65027a39343a8e490ffbc2146a517b8c4a82b2"></a>kENET_RetryLimitInterrupt</em>&#160;</td><td class="fielddoc">
<p>Collision Retry Limit interrupt source. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggafb9d440ac05cadfab906714b2db65027a1fa3a1323a0da32594d84172db1e95ed"></a>kENET_UnderrunInterrupt</em>&#160;</td><td class="fielddoc">
<p>Transmit FIFO underrun interrupt source. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggafb9d440ac05cadfab906714b2db65027aefe7250848088c6a514d609ff1bd6b2c"></a>kENET_PayloadRxInterrupt</em>&#160;</td><td class="fielddoc">
<p>Payload Receive interrupt source. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggafb9d440ac05cadfab906714b2db65027a25974ac3cc05e3d928eab800a0f09c27"></a>kENET_WakeupInterrupt</em>&#160;</td><td class="fielddoc">
<p>WAKEUP interrupt source. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gab6a6012153064f5996a44ecb79559fbe"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__enet.html#gab6a6012153064f5996a44ecb79559fbe">enet_event_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggab6a6012153064f5996a44ecb79559fbea0ef30a1e4757622d27d6ca879f300cb6"></a>kENET_RxEvent</em>&#160;</td><td class="fielddoc">
<p>Receive event. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab6a6012153064f5996a44ecb79559fbeaae83f9ee29da3fe085f4d1e24983bef7"></a>kENET_TxEvent</em>&#160;</td><td class="fielddoc">
<p>Transmit event. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab6a6012153064f5996a44ecb79559fbea1b4966d24ea40b037e7f0e1022441ea7"></a>kENET_ErrEvent</em>&#160;</td><td class="fielddoc">
<p>Error event: BABR/BABT/EBERR/LC/RL/UN/PLR . </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab6a6012153064f5996a44ecb79559fbea6e0c81e642fcb382d2f38ad32a32ec07"></a>kENET_WakeUpEvent</em>&#160;</td><td class="fielddoc">
<p>Wake up from sleep mode event. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga5ab4bff47ce41714000c94e1f5a8a6a8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__enet.html#ga5ab4bff47ce41714000c94e1f5a8a6a8">enet_tx_accelerator_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga5ab4bff47ce41714000c94e1f5a8a6a8a7db407a277c41ca9d215412e2ef05476"></a>kENET_TxAccelIsShift16Enabled</em>&#160;</td><td class="fielddoc">
<p>Transmit FIFO shift-16. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga5ab4bff47ce41714000c94e1f5a8a6a8ad2f2ea0738c6b7fcaee5e02f8f1a8645"></a>kENET_TxAccelIpCheckEnabled</em>&#160;</td><td class="fielddoc">
<p>Insert IP header checksum. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga5ab4bff47ce41714000c94e1f5a8a6a8aa85f2b263781a1c43c304c3f380556ae"></a>kENET_TxAccelProtoCheckEnabled</em>&#160;</td><td class="fielddoc">
<p>Insert protocol checksum. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gaaa83596ca3d01b86f8da9e7e2c90cced"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__enet.html#gaaa83596ca3d01b86f8da9e7e2c90cced">enet_rx_accelerator_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaaa83596ca3d01b86f8da9e7e2c90cceda55ba5425899621f83b28c0c8e61b9060"></a>kENET_RxAccelPadRemoveEnabled</em>&#160;</td><td class="fielddoc">
<p>Padding removal for short IP frames. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaaa83596ca3d01b86f8da9e7e2c90cceda517175d18302c670ad3b0999a9a1c9b1"></a>kENET_RxAccelIpCheckEnabled</em>&#160;</td><td class="fielddoc">
<p>Discard with wrong IP header checksum. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaaa83596ca3d01b86f8da9e7e2c90cceda122f314d9f24c28b18ce350398fcce98"></a>kENET_RxAccelProtoCheckEnabled</em>&#160;</td><td class="fielddoc">
<p>Discard with wrong protocol checksum. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaaa83596ca3d01b86f8da9e7e2c90cceda3082dc2e884e8b71a82f857c9f24890d"></a>kENET_RxAccelMacCheckEnabled</em>&#160;</td><td class="fielddoc">
<p>Discard with Mac layer errors. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaaa83596ca3d01b86f8da9e7e2c90cceda659e8b06edb4f6944c9969dd56649b89"></a>kENET_RxAccelisShift16Enabled</em>&#160;</td><td class="fielddoc">
<p>Receive FIFO shift-16. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gaf0992a0c9c3a27b2a40226ac38a26d1e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ENET_GetDefaultConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__enet.html#structenet__config__t">enet_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The purpose of this API is to get the default ENET MAC controller configure structure for <a class="el" href="group__enet.html#gac3ebae64ff0908b9315aa4c3c27689a3" title="Initializes the ENET module. ">ENET_Init()</a>. User may use the initialized structure unchanged in <a class="el" href="group__enet.html#gac3ebae64ff0908b9315aa4c3c27689a3" title="Initializes the ENET module. ">ENET_Init()</a>, or modify some fields of the structure before calling <a class="el" href="group__enet.html#gac3ebae64ff0908b9315aa4c3c27689a3" title="Initializes the ENET module. ">ENET_Init()</a>. Example: </p>
<div class="fragment"><div class="line"><a class="code" href="group__enet.html#structenet__config__t">enet_config_t</a> config;</div>
<div class="line"><a class="code" href="group__enet.html#gaf0992a0c9c3a27b2a40226ac38a26d1e">ENET_GetDefaultConfig</a>(&amp;config);</div>
</div><!-- fragment --> <dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>The ENET mac controller configuration structure pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gac3ebae64ff0908b9315aa4c3c27689a3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ENET_Init </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enet_handle_t *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__enet.html#structenet__config__t">enet_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__enet.html#structenet__buffer__config__t">enet_buffer_config_t</a> *&#160;</td>
<td class="paramname"><em>bufferConfig</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>macAddr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>srcClock_Hz</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function ungates the module clock and initializes it with the ENET configuration.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
<tr><td class="paramname">handle</td><td>ENET handler pointer. </td></tr>
<tr><td class="paramname">config</td><td>ENET mac configuration structure pointer. The "enet_config_t" type mac configuration return from ENET_GetDefaultConfig can be used directly. It is also possible to verify the Mac configuration using other methods. </td></tr>
<tr><td class="paramname">bufferConfig</td><td>ENET buffer configuration structure pointer. The buffer configuration should be prepared for ENET Initialization. </td></tr>
<tr><td class="paramname">macAddr</td><td>ENET mac address of Ethernet device. This MAC address should be provided. </td></tr>
<tr><td class="paramname">srcClock_Hz</td><td>The internal module clock source for MII clock.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>ENET has two buffer descriptors: legacy buffer descriptors and enhanced 1588 buffer descriptors. The legacy descriptor is used by default. To use 1588 feature, use the enhanced 1588 buffer descriptor by defining "ENET_ENHANCEDBUFFERDESCRIPTOR_MODE" and calling ENET_Ptp1588Configure() to configure the 1588 feature and related buffers after calling <a class="el" href="group__enet.html#gac3ebae64ff0908b9315aa4c3c27689a3" title="Initializes the ENET module. ">ENET_Init()</a>. </dd></dl>
</div>
</div>
<a class="anchor" id="ga72f7e3493a2f4134324e9e72492bdbbc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ENET_Deinit </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function gates the module clock, clears ENET interrupts, and disables the ENET module.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga809c3f91a850b53afa5511603b1c91df"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void ENET_Reset </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This function restores the ENET module to reset state. Note that this function sets all registers to reset state. As a result, the ENET module can't work after calling this function.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga9008a47cdf43fe2eddde467c9841fc7b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ENET_SetMII </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__enet.html#ga8bbf729066c3400712a19ed1d9179e4c">enet_mii_speed_t</a>&#160;</td>
<td class="paramname"><em>speed</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__enet.html#ga0784f279168ea4e3fc2fc07018dcb9bf">enet_mii_duplex_t</a>&#160;</td>
<td class="paramname"><em>duplex</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
<tr><td class="paramname">speed</td><td>The speed of the RMII mode. </td></tr>
<tr><td class="paramname">duplex</td><td>The duplex of the RMII mode. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga4e2546cfd538bd06950f2145592858f1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ENET_SetSMI </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>srcClock_Hz</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>isPreambleDisabled</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
<tr><td class="paramname">srcClock_Hz</td><td>This is the ENET module clock frequency. Normally it's the system clock. See clock distribution. </td></tr>
<tr><td class="paramname">isPreambleDisabled</td><td>The preamble disable flag.<ul>
<li>true Enables the preamble.</li>
<li>false Disables the preamble. </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga95deb3a7ea7873830ed7b65cabe93b88"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool ENET_GetSMI </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This API is used to get the SMI configuration to check if the MII management interface has been set.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The SMI setup status true or false. </dd></dl>
</div>
</div>
<a class="anchor" id="ga1720662e45648e0f081b9152c36b3156"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uint32_t ENET_ReadSMIData </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The data read from PHY </dd></dl>
</div>
</div>
<a class="anchor" id="ga4b0247aa4825019f9939b2e468cf5758"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ENET_StartSMIRead </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>phyAddr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>phyReg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__enet.html#ga9c0264e7da8e7d0a3ead667d3a7b1a89">enet_mii_read_t</a>&#160;</td>
<td class="paramname"><em>operation</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
<tr><td class="paramname">phyAddr</td><td>The PHY address. </td></tr>
<tr><td class="paramname">phyReg</td><td>The PHY register. </td></tr>
<tr><td class="paramname">operation</td><td>The read operation. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga0ef39cbb1042eb31189cf59fb3509b9a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ENET_StartSMIWrite </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>phyAddr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>phyReg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__enet.html#ga0efd18bb4f4b754039fc30c440e38b02">enet_mii_write_t</a>&#160;</td>
<td class="paramname"><em>operation</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
<tr><td class="paramname">phyAddr</td><td>The PHY address. </td></tr>
<tr><td class="paramname">phyReg</td><td>The PHY register. </td></tr>
<tr><td class="paramname">operation</td><td>The write operation. </td></tr>
<tr><td class="paramname">data</td><td>The data written to PHY. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga924622a35ef81eaf69d4a4fd9302a7be"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ENET_SetMacAddr </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>macAddr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
<tr><td class="paramname">macAddr</td><td>The six-byte Mac address pointer. The pointer is allocated by application and input into the API. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga89e5a62af8d1ebf7359faa1fc13b56bc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ENET_GetMacAddr </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>macAddr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
<tr><td class="paramname">macAddr</td><td>The six-byte Mac address pointer. The pointer is allocated by application and input into the API. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga5b9495b14a42f5b1ee24dcc5a6a9f227"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ENET_AddMulticastGroup </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>address</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
<tr><td class="paramname">address</td><td>The six-byte multicast group address which is provided by application. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga2aa6b359b811460a6fb9a2588688bf30"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ENET_LeaveMulticastGroup </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>address</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
<tr><td class="paramname">address</td><td>The six-byte multicast group address which is provided by application. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga6e067d2d9b41ad32ce7b32ecad8cefc3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void ENET_ActiveRead </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This must be called after the MAC configuration and state are ready. It must be called after the <a class="el" href="group__enet.html#gac3ebae64ff0908b9315aa4c3c27689a3" title="Initializes the ENET module. ">ENET_Init()</a> and ENET_Ptp1588Configure(). This should be called when the ENET receive required. </dd></dl>
</div>
</div>
<a class="anchor" id="ga9a7bb3eb9a6be017e21ce53f2343e8bf"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void ENET_EnableSleepMode </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This function is used to set the MAC enter sleep mode. When entering sleep mode, the magic frame wakeup interrupt should be enabled to wake up MAC from the sleep mode and reset it to normal mode.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
<tr><td class="paramname">enable</td><td>True enable sleep mode, false disable sleep mode. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga8d32189b130fbca31cdee7ceb57bf543"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void ENET_GetAccelFunction </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>txAccelOption</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>rxAccelOption</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
<tr><td class="paramname">txAccelOption</td><td>The transmit accelerator option. The "enet_tx_accelerator_t" is recommended to be used to as the mask to get the exact the accelerator option. </td></tr>
<tr><td class="paramname">rxAccelOption</td><td>The receive accelerator option. The "enet_rx_accelerator_t" is recommended to be used to as the mask to get the exact the accelerator option. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gad9e530c5904c36e8f23fe22f8c63651b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void ENET_EnableInterrupts </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This function enables the ENET interrupt according to the provided mask. The mask is a logical OR of enumeration members. See <a class="el" href="group__enet.html#gafb9d440ac05cadfab906714b2db65027">enet_interrupt_enable_t</a>. For example, to enable the TX frame interrupt and RX frame interrupt, do this: </p>
<div class="fragment"><div class="line"><a class="code" href="group__enet.html#gad9e530c5904c36e8f23fe22f8c63651b">ENET_EnableInterrupts</a>(ENET, <a class="code" href="group__enet.html#ggafb9d440ac05cadfab906714b2db65027a7b2529920e9b97d937aa6b420bf1d51f">kENET_TxFrameInterrupt</a> | <a class="code" href="group__enet.html#ggafb9d440ac05cadfab906714b2db65027a35d716ce614f33b7afbcf168922f1e70">kENET_RxFrameInterrupt</a>);</div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
<tr><td class="paramname">mask</td><td>ENET interrupts to enable. This is a logical OR of the enumeration :: enet_interrupt_enable_t. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga6a6f1de5e8f1dd09d217244899c3c8db"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void ENET_DisableInterrupts </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This function disables the ENET interrupts according to the provided mask. The mask is a logical OR of enumeration members. See <a class="el" href="group__enet.html#gafb9d440ac05cadfab906714b2db65027">enet_interrupt_enable_t</a>. For example, to disable the TX frame interrupt and RX frame interrupt, do this: </p>
<div class="fragment"><div class="line"><a class="code" href="group__enet.html#ga6a6f1de5e8f1dd09d217244899c3c8db">ENET_DisableInterrupts</a>(ENET, <a class="code" href="group__enet.html#ggafb9d440ac05cadfab906714b2db65027a7b2529920e9b97d937aa6b420bf1d51f">kENET_TxFrameInterrupt</a> | <a class="code" href="group__enet.html#ggafb9d440ac05cadfab906714b2db65027a35d716ce614f33b7afbcf168922f1e70">kENET_RxFrameInterrupt</a>);</div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
<tr><td class="paramname">mask</td><td>ENET interrupts to disable. This is a logical OR of the enumeration :: enet_interrupt_enable_t. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga9b9f5a57ff20ccf83fc8887c1bba2cec"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uint32_t ENET_GetInterruptStatus </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The event status of the interrupt source. This is the logical OR of members of the enumeration :: enet_interrupt_enable_t. </dd></dl>
</div>
</div>
<a class="anchor" id="ga98676acb368ed3d238278b4ede220469"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void ENET_ClearInterruptStatus </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This function clears enabled ENET interrupts according to the provided mask. The mask is a logical OR of enumeration members. See the <a class="el" href="group__enet.html#gafb9d440ac05cadfab906714b2db65027">enet_interrupt_enable_t</a>. For example, to clear the TX frame interrupt and RX frame interrupt, do this: </p>
<div class="fragment"><div class="line"><a class="code" href="group__enet.html#ga98676acb368ed3d238278b4ede220469">ENET_ClearInterruptStatus</a>(ENET, <a class="code" href="group__enet.html#ggafb9d440ac05cadfab906714b2db65027a7b2529920e9b97d937aa6b420bf1d51f">kENET_TxFrameInterrupt</a> | <a class="code" href="group__enet.html#ggafb9d440ac05cadfab906714b2db65027a35d716ce614f33b7afbcf168922f1e70">kENET_RxFrameInterrupt</a>);</div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
<tr><td class="paramname">mask</td><td>ENET interrupt source to be cleared. This is the logical OR of members of the enumeration :: enet_interrupt_enable_t. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gae529b5e69f900ed93741a14265eee8fa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ENET_SetCallback </td>
<td>(</td>
<td class="paramtype">enet_handle_t *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__enet.html#ga9d3c290746379a84b1e9cb744c9e452f">enet_callback_t</a>&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userData</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This API is provided for application callback required case when ENET interrupt is enabled. This API should be called after calling ENET_Init.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>ENET handler pointer. Should be provided by application. </td></tr>
<tr><td class="paramname">callback</td><td>The ENET callback function. </td></tr>
<tr><td class="paramname">userData</td><td>The callback function parameter. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gacc74925085246e648528cabf7c93a277"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ENET_GetRxErrBeforeReadFrame </td>
<td>(</td>
<td class="paramtype">enet_handle_t *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__enet.html#structenet__data__error__stats__t">enet_data_error_stats_t</a> *&#160;</td>
<td class="paramname"><em>eErrorStatic</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This API must be called after the ENET_GetRxFrameSize and before the <a class="el" href="group__enet.html#ga5fc5b46149c07df5be3a292db5c6ac15" title="Reads a frame from the ENET device. ">ENET_ReadFrame()</a>. If the ENET_GetRxFrameSize returns kStatus_ENET_RxFrameError, the ENET_GetRxErrBeforeReadFrame can be used to get the exact error statistics. For example: </p>
<div class="fragment"><div class="line">status = <a class="code" href="group__enet.html#ga2bafd955a25a2e42279a6fcf4f0b81f9">ENET_GetRxFrameSize</a>(&amp;g_handle, &amp;length);</div>
<div class="line"><span class="keywordflow">if</span> (status == <a class="code" href="group__enet.html#gga2763713429a9379805f0e70ddd22df0caef1f945a6dc8fcf6267d57aac2a19f99">kStatus_ENET_RxFrameError</a>)</div>
<div class="line">{</div>
<div class="line"> <span class="comment">// Get the error information of the received frame.</span></div>
<div class="line"> <a class="code" href="group__enet.html#gacc74925085246e648528cabf7c93a277">ENET_GetRxErrBeforeReadFrame</a>(&amp;g_handle, &amp;eErrStatic);</div>
<div class="line"> <span class="comment">// update the receive buffer.</span></div>
<div class="line"> <a class="code" href="group__enet.html#ga5fc5b46149c07df5be3a292db5c6ac15">ENET_ReadFrame</a>(EXAMPLE_ENET, &amp;g_handle, NULL, 0);</div>
<div class="line">}</div>
</div><!-- fragment --> <dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>The ENET handler structure pointer. This is the same handler pointer used in the ENET_Init. </td></tr>
<tr><td class="paramname">eErrorStatic</td><td>The error statistics structure pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga2bafd955a25a2e42279a6fcf4f0b81f9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t ENET_GetRxFrameSize </td>
<td>(</td>
<td class="paramtype">enet_handle_t *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>length</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function reads a received frame size from the ENET buffer descriptors. </p>
<dl class="section note"><dt>Note</dt><dd>The FCS of the frame is removed by MAC controller and the size is the length without the FCS. After calling ENET_GetRxFrameSize, <a class="el" href="group__enet.html#ga5fc5b46149c07df5be3a292db5c6ac15" title="Reads a frame from the ENET device. ">ENET_ReadFrame()</a> should be called to update the receive buffers If the result is not "kStatus_ENET_RxFrameEmpty".</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>The ENET handler structure. This is the same handler pointer used in the ENET_Init. </td></tr>
<tr><td class="paramname">length</td><td>The length of the valid frame received. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_ENET_RxFrameEmpty</td><td>No frame received. Should not call ENET_ReadFrame to read frame. </td></tr>
<tr><td class="paramname">kStatus_ENET_RxFrameError</td><td>Data error happens. ENET_ReadFrame should be called with NULL data and NULL length to update the receive buffers. </td></tr>
<tr><td class="paramname">kStatus_Success</td><td>Receive a frame Successfully then the ENET_ReadFrame should be called with the right data buffer and the captured data length input. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga5fc5b46149c07df5be3a292db5c6ac15"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t ENET_ReadFrame </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enet_handle_t *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>length</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function reads a frame (both the data and the length) from the ENET buffer descriptors. The ENET_GetRxFrameSize should be used to get the size of the prepared data buffer. </p>
<dl class="section note"><dt>Note</dt><dd>The FCS of the frame is removed by MAC controller and is not delivered to the application.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
<tr><td class="paramname">handle</td><td>The ENET handler structure. This is the same handler pointer used in the ENET_Init. </td></tr>
<tr><td class="paramname">data</td><td>The data buffer provided by user to store the frame which memory size should be at least "length". </td></tr>
<tr><td class="paramname">length</td><td>The size of the data buffer which is still the length of the received frame. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The execute status, successful or failure. </dd></dl>
</div>
</div>
<a class="anchor" id="gaab45575aff382eece62289f530b4bd9d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t ENET_SendFrame </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enet_handle_t *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>length</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>The CRC is automatically appended to the data. Input the data to send without the CRC.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
<tr><td class="paramname">handle</td><td>The ENET handler pointer. This is the same handler pointer used in the ENET_Init. </td></tr>
<tr><td class="paramname">data</td><td>The data buffer provided by user to be send. </td></tr>
<tr><td class="paramname">length</td><td>The length of the data to be send. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_Success</td><td>Send frame succeed. </td></tr>
<tr><td class="paramname">kStatus_ENET_TxFrameBusy</td><td>Transmit buffer descriptor is busy under transmit. </td></tr>
<tr><td class="paramname">kStatus_ENET_TxFrameFail</td><td>Transmit frame fail. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga14ebe20169a322ceb9dcafef235b0afd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ENET_TransmitIRQHandler </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enet_handle_t *&#160;</td>
<td class="paramname"><em>handle</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
<tr><td class="paramname">handle</td><td>The ENET handler pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga9a29168893ca340db8d452edac20040b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ENET_ReceiveIRQHandler </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enet_handle_t *&#160;</td>
<td class="paramname"><em>handle</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
<tr><td class="paramname">handle</td><td>The ENET handler pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga684127bd7163faf3458f07a021ceb448"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ENET_ErrorIRQHandler </td>
<td>(</td>
<td class="paramtype">ENET_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enet_handle_t *&#160;</td>
<td class="paramname"><em>handle</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>ENET peripheral base address. </td></tr>
<tr><td class="paramname">handle</td><td>The ENET handler pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.5-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul class="foot">
<li class="footer">&copy; 2016 NXP Semiconductors. All rights reserved.
</li>
</ul>
</div>
</body>
</html>