emacps: Update doxygen for the emacps driver

This patch updates the doxygen for the emacps driver.

Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com>
This commit is contained in:
Kedareswara rao Appana 2014-10-30 15:07:35 +05:30 committed by Suneel Garapati
parent 88303c6d53
commit 9e790c6a41
32 changed files with 6072 additions and 7344 deletions

View file

@ -2,39 +2,28 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: Class List
Class List
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li id="current"><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
<tr><td class="indexkey"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a></td><td class="indexvalue"></td></tr>
</table>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -1,39 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: Alphabetical List
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>Class Index</h1><div class="qindex"><a class="qindex" href="#letter_X">X</a></div>
<table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
<tr><td><a name="letter_X"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;X&nbsp;&nbsp;</div></td></tr></table>
</td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a>&nbsp;&nbsp;&nbsp;</td></tr></table><div class="qindex"><a class="qindex" href="#letter_X">X</a></div>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>

View file

@ -2,31 +2,25 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: File Index
File Index
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li id="current"><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<h1>File List</h1>Here is a list of all files with brief descriptions:<table>
<tr><td class="indexkey"><a class="el" href="xemacps_8c.html">xemacps.c</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="xemacps_8h.html">xemacps.h</a></td><td class="indexvalue"></td></tr>
@ -40,9 +34,4 @@
<tr><td class="indexkey"><a class="el" href="xemacps__intr_8c.html">xemacps_intr.c</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="xemacps__sinit_8c.html">xemacps_sinit.c</a></td><td class="indexvalue"></td></tr>
</table>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,207 +2,110 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: Class Members
Class Members
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="#index_a"><span>a</span></a></li>
<li><a href="#index_b"><span>b</span></a></li>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_e"><span>e</span></a></li>
<li><a href="#index_f"><span>f</span></a></li>
<li><a href="#index_h"><span>h</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_o"><span>o</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_t"><span>t</span></a></li>
</ul>
</div>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li id="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li id="current"><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
<div class="contents">
<div class="tabs">
<ul>
<li><a href="#index_a"><span>a</span></a></li>
<li><a href="#index_b"><span>b</span></a></li>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_e"><span>e</span></a></li>
<li><a href="#index_f"><span>f</span></a></li>
<li><a href="#index_h"><span>h</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_o"><span>o</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_t"><span>t</span></a></li>
</ul>
</div>
<p>
Here is a list of all class members with links to the classes they belong to:
<h3><a class="anchor" id="index_a">- a -</a></h3><ul>
<p>
<h3><a class="anchor" name="index_a">- a -</a></h3><ul>
<li>AllCnt
: <a class="el" href="struct_x_emac_ps___bd_ring.html#ae8aeff495e64c348d6f6416c5697d70b">XEmacPs_BdRing</a>
</li>
</ul>
<h3><a class="anchor" id="index_b">- b -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps___bd_ring.html#e8aeff495e64c348d6f6416c5697d70b">XEmacPs_BdRing</a></ul>
<h3><a class="anchor" name="index_b">- b -</a></h3><ul>
<li>BaseAddress
: <a class="el" href="struct_x_emac_ps___config.html#a75341983ef63abc9073ebde466c1bdbf">XEmacPs_Config</a>
</li>
<li>BaseBdAddr
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a9e0af38f3a491e6bc9e2b606f57c5881">XEmacPs_BdRing</a>
</li>
<li>BdaRestart
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a73561392cb79ccebf64766f0b5a560ab">XEmacPs_BdRing</a>
</li>
</ul>
<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps___config.html#75341983ef63abc9073ebde466c1bdbf">XEmacPs_Config</a><li>BaseBdAddr
: <a class="el" href="struct_x_emac_ps___bd_ring.html#9e0af38f3a491e6bc9e2b606f57c5881">XEmacPs_BdRing</a><li>BdaRestart
: <a class="el" href="struct_x_emac_ps___bd_ring.html#73561392cb79ccebf64766f0b5a560ab">XEmacPs_BdRing</a></ul>
<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
<li>Config
: <a class="el" href="struct_x_emac_ps.html#ac1323d39e5939eb9672ed03f359eef3a">XEmacPs</a>
</li>
</ul>
<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps.html#c1323d39e5939eb9672ed03f359eef3a">XEmacPs</a></ul>
<h3><a class="anchor" name="index_d">- d -</a></h3><ul>
<li>DeviceId
: <a class="el" href="struct_x_emac_ps___config.html#ad78fa68d4dc04a7cbcc21381ba56b584">XEmacPs_Config</a>
</li>
</ul>
<h3><a class="anchor" id="index_e">- e -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps___config.html#d78fa68d4dc04a7cbcc21381ba56b584">XEmacPs_Config</a></ul>
<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
<li>ErrorHandler
: <a class="el" href="struct_x_emac_ps.html#aa1dba4901d36c93560f8bee42de7231a">XEmacPs</a>
</li>
<li>ErrorRef
: <a class="el" href="struct_x_emac_ps.html#a36a859b6210996a19ccd6d08ae4077c7">XEmacPs</a>
</li>
</ul>
<h3><a class="anchor" id="index_f">- f -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps.html#a1dba4901d36c93560f8bee42de7231a">XEmacPs</a><li>ErrorRef
: <a class="el" href="struct_x_emac_ps.html#36a859b6210996a19ccd6d08ae4077c7">XEmacPs</a></ul>
<h3><a class="anchor" name="index_f">- f -</a></h3><ul>
<li>FreeCnt
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a3d1a651344cb2b62f98014166860cbac">XEmacPs_BdRing</a>
</li>
<li>FreeHead
: <a class="el" href="struct_x_emac_ps___bd_ring.html#aa849c1609830416b6cdf8bcb7a0556b7">XEmacPs_BdRing</a>
</li>
</ul>
<h3><a class="anchor" id="index_h">- h -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps___bd_ring.html#3d1a651344cb2b62f98014166860cbac">XEmacPs_BdRing</a><li>FreeHead
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a849c1609830416b6cdf8bcb7a0556b7">XEmacPs_BdRing</a></ul>
<h3><a class="anchor" name="index_h">- h -</a></h3><ul>
<li>HighBdAddr
: <a class="el" href="struct_x_emac_ps___bd_ring.html#ad914f29270701f9a110abe27e673c86f">XEmacPs_BdRing</a>
</li>
<li>HwCnt
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a681237d3509043eb17869fc62fe6992f">XEmacPs_BdRing</a>
</li>
<li>HwHead
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a6ec82a9b24de2bce3e44aa0c75530277">XEmacPs_BdRing</a>
</li>
<li>HwTail
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a0f43d0e8f576aab1628fe351530ec155">XEmacPs_BdRing</a>
</li>
</ul>
<h3><a class="anchor" id="index_i">- i -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps___bd_ring.html#d914f29270701f9a110abe27e673c86f">XEmacPs_BdRing</a><li>HwCnt
: <a class="el" href="struct_x_emac_ps___bd_ring.html#681237d3509043eb17869fc62fe6992f">XEmacPs_BdRing</a><li>HwHead
: <a class="el" href="struct_x_emac_ps___bd_ring.html#6ec82a9b24de2bce3e44aa0c75530277">XEmacPs_BdRing</a><li>HwTail
: <a class="el" href="struct_x_emac_ps___bd_ring.html#0f43d0e8f576aab1628fe351530ec155">XEmacPs_BdRing</a></ul>
<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
<li>IsReady
: <a class="el" href="struct_x_emac_ps.html#a4e73fdbc8a1c1d423802d6ba32a50222">XEmacPs</a>
</li>
<li>IsStarted
: <a class="el" href="struct_x_emac_ps.html#a6884396ec7403ee4a6e41bf4776b7ccd">XEmacPs</a>
</li>
</ul>
<h3><a class="anchor" id="index_l">- l -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps.html#4e73fdbc8a1c1d423802d6ba32a50222">XEmacPs</a><li>IsStarted
: <a class="el" href="struct_x_emac_ps.html#6884396ec7403ee4a6e41bf4776b7ccd">XEmacPs</a></ul>
<h3><a class="anchor" name="index_l">- l -</a></h3><ul>
<li>Length
: <a class="el" href="struct_x_emac_ps___bd_ring.html#af2fa25bbd258aa15039fa8f9c59d3536">XEmacPs_BdRing</a>
</li>
</ul>
<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps___bd_ring.html#f2fa25bbd258aa15039fa8f9c59d3536">XEmacPs_BdRing</a></ul>
<h3><a class="anchor" name="index_o">- o -</a></h3><ul>
<li>Options
: <a class="el" href="struct_x_emac_ps.html#a346a36e93845347bf32680e3fcca449d">XEmacPs</a>
</li>
</ul>
<h3><a class="anchor" id="index_p">- p -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps.html#346a36e93845347bf32680e3fcca449d">XEmacPs</a></ul>
<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
<li>PhysBaseAddr
: <a class="el" href="struct_x_emac_ps___bd_ring.html#af878bc1cb6a8500aab455635f7d01874">XEmacPs_BdRing</a>
</li>
<li>PostCnt
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a1144083249f5e9c220ab49d3aa9b8813">XEmacPs_BdRing</a>
</li>
<li>PostHead
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a4aeea3bd3273381c433a001c3b8d5a26">XEmacPs_BdRing</a>
</li>
<li>PreCnt
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a4c128463933d57a3a5f4a4cc90c370a9">XEmacPs_BdRing</a>
</li>
<li>PreHead
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a2970a0b989dac974893a20fe64f2eee5">XEmacPs_BdRing</a>
</li>
</ul>
<h3><a class="anchor" id="index_r">- r -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps___bd_ring.html#f878bc1cb6a8500aab455635f7d01874">XEmacPs_BdRing</a><li>PostCnt
: <a class="el" href="struct_x_emac_ps___bd_ring.html#1144083249f5e9c220ab49d3aa9b8813">XEmacPs_BdRing</a><li>PostHead
: <a class="el" href="struct_x_emac_ps___bd_ring.html#4aeea3bd3273381c433a001c3b8d5a26">XEmacPs_BdRing</a><li>PreCnt
: <a class="el" href="struct_x_emac_ps___bd_ring.html#4c128463933d57a3a5f4a4cc90c370a9">XEmacPs_BdRing</a><li>PreHead
: <a class="el" href="struct_x_emac_ps___bd_ring.html#2970a0b989dac974893a20fe64f2eee5">XEmacPs_BdRing</a></ul>
<h3><a class="anchor" name="index_r">- r -</a></h3><ul>
<li>RecvHandler
: <a class="el" href="struct_x_emac_ps.html#a9a688f9c70ae40721eb0af5fb7a2c078">XEmacPs</a>
</li>
<li>RecvRef
: <a class="el" href="struct_x_emac_ps.html#a3e52e92b96dee7a5b3981702e4630c29">XEmacPs</a>
</li>
<li>RunState
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a3d8f8bec7b56f5acc05c2290e875156f">XEmacPs_BdRing</a>
</li>
<li>RxBdRing
: <a class="el" href="struct_x_emac_ps.html#ad7da73b9b3f90455ecf3c380d1ad845a">XEmacPs</a>
</li>
</ul>
<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps.html#9a688f9c70ae40721eb0af5fb7a2c078">XEmacPs</a><li>RecvRef
: <a class="el" href="struct_x_emac_ps.html#3e52e92b96dee7a5b3981702e4630c29">XEmacPs</a><li>RunState
: <a class="el" href="struct_x_emac_ps___bd_ring.html#3d8f8bec7b56f5acc05c2290e875156f">XEmacPs_BdRing</a><li>RxBdRing
: <a class="el" href="struct_x_emac_ps.html#d7da73b9b3f90455ecf3c380d1ad845a">XEmacPs</a></ul>
<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
<li>SendHandler
: <a class="el" href="struct_x_emac_ps.html#a69e3bb744dc1d5ac91e6a8bdfe2de363">XEmacPs</a>
</li>
<li>SendRef
: <a class="el" href="struct_x_emac_ps.html#a3bd8b744e0a265cf0efa1333c8d8ddbe">XEmacPs</a>
</li>
<li>Separation
: <a class="el" href="struct_x_emac_ps___bd_ring.html#ae520dbbd110fe4e5f407d6d78066b35e">XEmacPs_BdRing</a>
</li>
</ul>
<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps.html#69e3bb744dc1d5ac91e6a8bdfe2de363">XEmacPs</a><li>SendRef
: <a class="el" href="struct_x_emac_ps.html#3bd8b744e0a265cf0efa1333c8d8ddbe">XEmacPs</a><li>Separation
: <a class="el" href="struct_x_emac_ps___bd_ring.html#e520dbbd110fe4e5f407d6d78066b35e">XEmacPs_BdRing</a></ul>
<h3><a class="anchor" name="index_t">- t -</a></h3><ul>
<li>TxBdRing
: <a class="el" href="struct_x_emac_ps.html#ab021044617f2e76d2746a77105ee2d86">XEmacPs</a>
</li>
</ul>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
: <a class="el" href="struct_x_emac_ps.html#b021044617f2e76d2746a77105ee2d86">XEmacPs</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,207 +2,110 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: Class Members - Variables
Class Members - Variables
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="functions.html"><span>All</span></a></li>
<li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="#index_a"><span>a</span></a></li>
<li><a href="#index_b"><span>b</span></a></li>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_e"><span>e</span></a></li>
<li><a href="#index_f"><span>f</span></a></li>
<li><a href="#index_h"><span>h</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_o"><span>o</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_t"><span>t</span></a></li>
</ul>
</div>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li id="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="functions.html"><span>All</span></a></li>
<li id="current"><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
<div class="contents">
<div class="tabs">
<ul>
<li><a href="#index_a"><span>a</span></a></li>
<li><a href="#index_b"><span>b</span></a></li>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_e"><span>e</span></a></li>
<li><a href="#index_f"><span>f</span></a></li>
<li><a href="#index_h"><span>h</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_o"><span>o</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_t"><span>t</span></a></li>
</ul>
</div>
<p>
&nbsp;
<h3><a class="anchor" id="index_a">- a -</a></h3><ul>
<p>
<h3><a class="anchor" name="index_a">- a -</a></h3><ul>
<li>AllCnt
: <a class="el" href="struct_x_emac_ps___bd_ring.html#ae8aeff495e64c348d6f6416c5697d70b">XEmacPs_BdRing</a>
</li>
</ul>
<h3><a class="anchor" id="index_b">- b -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps___bd_ring.html#e8aeff495e64c348d6f6416c5697d70b">XEmacPs_BdRing</a></ul>
<h3><a class="anchor" name="index_b">- b -</a></h3><ul>
<li>BaseAddress
: <a class="el" href="struct_x_emac_ps___config.html#a75341983ef63abc9073ebde466c1bdbf">XEmacPs_Config</a>
</li>
<li>BaseBdAddr
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a9e0af38f3a491e6bc9e2b606f57c5881">XEmacPs_BdRing</a>
</li>
<li>BdaRestart
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a73561392cb79ccebf64766f0b5a560ab">XEmacPs_BdRing</a>
</li>
</ul>
<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps___config.html#75341983ef63abc9073ebde466c1bdbf">XEmacPs_Config</a><li>BaseBdAddr
: <a class="el" href="struct_x_emac_ps___bd_ring.html#9e0af38f3a491e6bc9e2b606f57c5881">XEmacPs_BdRing</a><li>BdaRestart
: <a class="el" href="struct_x_emac_ps___bd_ring.html#73561392cb79ccebf64766f0b5a560ab">XEmacPs_BdRing</a></ul>
<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
<li>Config
: <a class="el" href="struct_x_emac_ps.html#ac1323d39e5939eb9672ed03f359eef3a">XEmacPs</a>
</li>
</ul>
<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps.html#c1323d39e5939eb9672ed03f359eef3a">XEmacPs</a></ul>
<h3><a class="anchor" name="index_d">- d -</a></h3><ul>
<li>DeviceId
: <a class="el" href="struct_x_emac_ps___config.html#ad78fa68d4dc04a7cbcc21381ba56b584">XEmacPs_Config</a>
</li>
</ul>
<h3><a class="anchor" id="index_e">- e -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps___config.html#d78fa68d4dc04a7cbcc21381ba56b584">XEmacPs_Config</a></ul>
<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
<li>ErrorHandler
: <a class="el" href="struct_x_emac_ps.html#aa1dba4901d36c93560f8bee42de7231a">XEmacPs</a>
</li>
<li>ErrorRef
: <a class="el" href="struct_x_emac_ps.html#a36a859b6210996a19ccd6d08ae4077c7">XEmacPs</a>
</li>
</ul>
<h3><a class="anchor" id="index_f">- f -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps.html#a1dba4901d36c93560f8bee42de7231a">XEmacPs</a><li>ErrorRef
: <a class="el" href="struct_x_emac_ps.html#36a859b6210996a19ccd6d08ae4077c7">XEmacPs</a></ul>
<h3><a class="anchor" name="index_f">- f -</a></h3><ul>
<li>FreeCnt
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a3d1a651344cb2b62f98014166860cbac">XEmacPs_BdRing</a>
</li>
<li>FreeHead
: <a class="el" href="struct_x_emac_ps___bd_ring.html#aa849c1609830416b6cdf8bcb7a0556b7">XEmacPs_BdRing</a>
</li>
</ul>
<h3><a class="anchor" id="index_h">- h -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps___bd_ring.html#3d1a651344cb2b62f98014166860cbac">XEmacPs_BdRing</a><li>FreeHead
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a849c1609830416b6cdf8bcb7a0556b7">XEmacPs_BdRing</a></ul>
<h3><a class="anchor" name="index_h">- h -</a></h3><ul>
<li>HighBdAddr
: <a class="el" href="struct_x_emac_ps___bd_ring.html#ad914f29270701f9a110abe27e673c86f">XEmacPs_BdRing</a>
</li>
<li>HwCnt
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a681237d3509043eb17869fc62fe6992f">XEmacPs_BdRing</a>
</li>
<li>HwHead
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a6ec82a9b24de2bce3e44aa0c75530277">XEmacPs_BdRing</a>
</li>
<li>HwTail
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a0f43d0e8f576aab1628fe351530ec155">XEmacPs_BdRing</a>
</li>
</ul>
<h3><a class="anchor" id="index_i">- i -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps___bd_ring.html#d914f29270701f9a110abe27e673c86f">XEmacPs_BdRing</a><li>HwCnt
: <a class="el" href="struct_x_emac_ps___bd_ring.html#681237d3509043eb17869fc62fe6992f">XEmacPs_BdRing</a><li>HwHead
: <a class="el" href="struct_x_emac_ps___bd_ring.html#6ec82a9b24de2bce3e44aa0c75530277">XEmacPs_BdRing</a><li>HwTail
: <a class="el" href="struct_x_emac_ps___bd_ring.html#0f43d0e8f576aab1628fe351530ec155">XEmacPs_BdRing</a></ul>
<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
<li>IsReady
: <a class="el" href="struct_x_emac_ps.html#a4e73fdbc8a1c1d423802d6ba32a50222">XEmacPs</a>
</li>
<li>IsStarted
: <a class="el" href="struct_x_emac_ps.html#a6884396ec7403ee4a6e41bf4776b7ccd">XEmacPs</a>
</li>
</ul>
<h3><a class="anchor" id="index_l">- l -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps.html#4e73fdbc8a1c1d423802d6ba32a50222">XEmacPs</a><li>IsStarted
: <a class="el" href="struct_x_emac_ps.html#6884396ec7403ee4a6e41bf4776b7ccd">XEmacPs</a></ul>
<h3><a class="anchor" name="index_l">- l -</a></h3><ul>
<li>Length
: <a class="el" href="struct_x_emac_ps___bd_ring.html#af2fa25bbd258aa15039fa8f9c59d3536">XEmacPs_BdRing</a>
</li>
</ul>
<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps___bd_ring.html#f2fa25bbd258aa15039fa8f9c59d3536">XEmacPs_BdRing</a></ul>
<h3><a class="anchor" name="index_o">- o -</a></h3><ul>
<li>Options
: <a class="el" href="struct_x_emac_ps.html#a346a36e93845347bf32680e3fcca449d">XEmacPs</a>
</li>
</ul>
<h3><a class="anchor" id="index_p">- p -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps.html#346a36e93845347bf32680e3fcca449d">XEmacPs</a></ul>
<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
<li>PhysBaseAddr
: <a class="el" href="struct_x_emac_ps___bd_ring.html#af878bc1cb6a8500aab455635f7d01874">XEmacPs_BdRing</a>
</li>
<li>PostCnt
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a1144083249f5e9c220ab49d3aa9b8813">XEmacPs_BdRing</a>
</li>
<li>PostHead
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a4aeea3bd3273381c433a001c3b8d5a26">XEmacPs_BdRing</a>
</li>
<li>PreCnt
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a4c128463933d57a3a5f4a4cc90c370a9">XEmacPs_BdRing</a>
</li>
<li>PreHead
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a2970a0b989dac974893a20fe64f2eee5">XEmacPs_BdRing</a>
</li>
</ul>
<h3><a class="anchor" id="index_r">- r -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps___bd_ring.html#f878bc1cb6a8500aab455635f7d01874">XEmacPs_BdRing</a><li>PostCnt
: <a class="el" href="struct_x_emac_ps___bd_ring.html#1144083249f5e9c220ab49d3aa9b8813">XEmacPs_BdRing</a><li>PostHead
: <a class="el" href="struct_x_emac_ps___bd_ring.html#4aeea3bd3273381c433a001c3b8d5a26">XEmacPs_BdRing</a><li>PreCnt
: <a class="el" href="struct_x_emac_ps___bd_ring.html#4c128463933d57a3a5f4a4cc90c370a9">XEmacPs_BdRing</a><li>PreHead
: <a class="el" href="struct_x_emac_ps___bd_ring.html#2970a0b989dac974893a20fe64f2eee5">XEmacPs_BdRing</a></ul>
<h3><a class="anchor" name="index_r">- r -</a></h3><ul>
<li>RecvHandler
: <a class="el" href="struct_x_emac_ps.html#a9a688f9c70ae40721eb0af5fb7a2c078">XEmacPs</a>
</li>
<li>RecvRef
: <a class="el" href="struct_x_emac_ps.html#a3e52e92b96dee7a5b3981702e4630c29">XEmacPs</a>
</li>
<li>RunState
: <a class="el" href="struct_x_emac_ps___bd_ring.html#a3d8f8bec7b56f5acc05c2290e875156f">XEmacPs_BdRing</a>
</li>
<li>RxBdRing
: <a class="el" href="struct_x_emac_ps.html#ad7da73b9b3f90455ecf3c380d1ad845a">XEmacPs</a>
</li>
</ul>
<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps.html#9a688f9c70ae40721eb0af5fb7a2c078">XEmacPs</a><li>RecvRef
: <a class="el" href="struct_x_emac_ps.html#3e52e92b96dee7a5b3981702e4630c29">XEmacPs</a><li>RunState
: <a class="el" href="struct_x_emac_ps___bd_ring.html#3d8f8bec7b56f5acc05c2290e875156f">XEmacPs_BdRing</a><li>RxBdRing
: <a class="el" href="struct_x_emac_ps.html#d7da73b9b3f90455ecf3c380d1ad845a">XEmacPs</a></ul>
<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
<li>SendHandler
: <a class="el" href="struct_x_emac_ps.html#a69e3bb744dc1d5ac91e6a8bdfe2de363">XEmacPs</a>
</li>
<li>SendRef
: <a class="el" href="struct_x_emac_ps.html#a3bd8b744e0a265cf0efa1333c8d8ddbe">XEmacPs</a>
</li>
<li>Separation
: <a class="el" href="struct_x_emac_ps___bd_ring.html#ae520dbbd110fe4e5f407d6d78066b35e">XEmacPs_BdRing</a>
</li>
</ul>
<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
: <a class="el" href="struct_x_emac_ps.html#69e3bb744dc1d5ac91e6a8bdfe2de363">XEmacPs</a><li>SendRef
: <a class="el" href="struct_x_emac_ps.html#3bd8b744e0a265cf0efa1333c8d8ddbe">XEmacPs</a><li>Separation
: <a class="el" href="struct_x_emac_ps___bd_ring.html#e520dbbd110fe4e5f407d6d78066b35e">XEmacPs_BdRing</a></ul>
<h3><a class="anchor" name="index_t">- t -</a></h3><ul>
<li>TxBdRing
: <a class="el" href="struct_x_emac_ps.html#ab021044617f2e76d2746a77105ee2d86">XEmacPs</a>
</li>
</ul>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
: <a class="el" href="struct_x_emac_ps.html#b021044617f2e76d2746a77105ee2d86">XEmacPs</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,80 +2,54 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: Class Members
Class Members
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="globals.html#index_m"><span>m</span></a></li>
<li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
</ul>
</div>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li id="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li id="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div class="contents">
<div class="tabs">
<ul>
<li id="current"><a href="globals.html#index_m"><span>m</span></a></li>
<li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
</ul>
</div>
<p>
Here is a list of all file members with links to the files they belong to:
<h3><a class="anchor" id="index_m">- m -</a></h3><ul>
<p>
<h3><a class="anchor" name="index_m">- m -</a></h3><ul>
<li>MDC_DIV_128
: <a class="el" href="xemacps__hw_8h.html#aa367ea42c2214b487cf74951453204ffaaeedd69bcc332a3fa5ee0c8d2076e925">xemacps_hw.h</a>
</li>
<li>MDC_DIV_16
: <a class="el" href="xemacps__hw_8h.html#aa367ea42c2214b487cf74951453204ffad425a3d6c5d67550ee128284f5781cba">xemacps_hw.h</a>
</li>
<li>MDC_DIV_224
: <a class="el" href="xemacps__hw_8h.html#aa367ea42c2214b487cf74951453204ffa9572dbb5458c29e70fa31ab506bf2169">xemacps_hw.h</a>
</li>
<li>MDC_DIV_32
: <a class="el" href="xemacps__hw_8h.html#aa367ea42c2214b487cf74951453204ffaaf4a32382efac0e54172b8a27ed48024">xemacps_hw.h</a>
</li>
<li>MDC_DIV_48
: <a class="el" href="xemacps__hw_8h.html#aa367ea42c2214b487cf74951453204ffa9ad2cf178e9a383892b98307ecb501c7">xemacps_hw.h</a>
</li>
<li>MDC_DIV_64
: <a class="el" href="xemacps__hw_8h.html#aa367ea42c2214b487cf74951453204ffa1743739e65c86f8d258ced422fbadbbd">xemacps_hw.h</a>
</li>
<li>MDC_DIV_8
: <a class="el" href="xemacps__hw_8h.html#aa367ea42c2214b487cf74951453204ffa10cc512d51849f92e40812093e300236">xemacps_hw.h</a>
</li>
<li>MDC_DIV_96
: <a class="el" href="xemacps__hw_8h.html#aa367ea42c2214b487cf74951453204ffaeb0086695bb850e112fbcb801b89f2eb">xemacps_hw.h</a>
</li>
</ul>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
: <a class="el" href="xemacps__hw_8h.html#a367ea42c2214b487cf74951453204ffaeedd69bcc332a3fa5ee0c8d2076e925">xemacps_hw.h</a><li>MDC_DIV_16
: <a class="el" href="xemacps__hw_8h.html#a367ea42c2214b487cf74951453204ffd425a3d6c5d67550ee128284f5781cba">xemacps_hw.h</a><li>MDC_DIV_224
: <a class="el" href="xemacps__hw_8h.html#a367ea42c2214b487cf74951453204ff9572dbb5458c29e70fa31ab506bf2169">xemacps_hw.h</a><li>MDC_DIV_32
: <a class="el" href="xemacps__hw_8h.html#a367ea42c2214b487cf74951453204ffaf4a32382efac0e54172b8a27ed48024">xemacps_hw.h</a><li>MDC_DIV_48
: <a class="el" href="xemacps__hw_8h.html#a367ea42c2214b487cf74951453204ff9ad2cf178e9a383892b98307ecb501c7">xemacps_hw.h</a><li>MDC_DIV_64
: <a class="el" href="xemacps__hw_8h.html#a367ea42c2214b487cf74951453204ff1743739e65c86f8d258ced422fbadbbd">xemacps_hw.h</a><li>MDC_DIV_8
: <a class="el" href="xemacps__hw_8h.html#a367ea42c2214b487cf74951453204ff10cc512d51849f92e40812093e300236">xemacps_hw.h</a><li>MDC_DIV_96
: <a class="el" href="xemacps__hw_8h.html#a367ea42c2214b487cf74951453204ffeb0086695bb850e112fbcb801b89f2eb">xemacps_hw.h</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,50 +2,39 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: Class Members
Class Members
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li class="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li id="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li id="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div class="contents">
&nbsp;<ul>
&nbsp;
<p>
<ul>
<li>XEmacPs_MdcDiv
: <a class="el" href="xemacps__hw_8h.html#aa367ea42c2214b487cf74951453204ff">xemacps_hw.h</a>
</li>
</ul>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
: <a class="el" href="xemacps__hw_8h.html#a367ea42c2214b487cf74951453204ff">xemacps_hw.h</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,71 +2,46 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: Class Members
Class Members
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li id="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li id="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div class="contents">
&nbsp;<ul>
&nbsp;
<p>
<ul>
<li>MDC_DIV_128
: <a class="el" href="xemacps__hw_8h.html#aa367ea42c2214b487cf74951453204ffaaeedd69bcc332a3fa5ee0c8d2076e925">xemacps_hw.h</a>
</li>
<li>MDC_DIV_16
: <a class="el" href="xemacps__hw_8h.html#aa367ea42c2214b487cf74951453204ffad425a3d6c5d67550ee128284f5781cba">xemacps_hw.h</a>
</li>
<li>MDC_DIV_224
: <a class="el" href="xemacps__hw_8h.html#aa367ea42c2214b487cf74951453204ffa9572dbb5458c29e70fa31ab506bf2169">xemacps_hw.h</a>
</li>
<li>MDC_DIV_32
: <a class="el" href="xemacps__hw_8h.html#aa367ea42c2214b487cf74951453204ffaaf4a32382efac0e54172b8a27ed48024">xemacps_hw.h</a>
</li>
<li>MDC_DIV_48
: <a class="el" href="xemacps__hw_8h.html#aa367ea42c2214b487cf74951453204ffa9ad2cf178e9a383892b98307ecb501c7">xemacps_hw.h</a>
</li>
<li>MDC_DIV_64
: <a class="el" href="xemacps__hw_8h.html#aa367ea42c2214b487cf74951453204ffa1743739e65c86f8d258ced422fbadbbd">xemacps_hw.h</a>
</li>
<li>MDC_DIV_8
: <a class="el" href="xemacps__hw_8h.html#aa367ea42c2214b487cf74951453204ffa10cc512d51849f92e40812093e300236">xemacps_hw.h</a>
</li>
<li>MDC_DIV_96
: <a class="el" href="xemacps__hw_8h.html#aa367ea42c2214b487cf74951453204ffaeb0086695bb850e112fbcb801b89f2eb">xemacps_hw.h</a>
</li>
</ul>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
: <a class="el" href="xemacps__hw_8h.html#a367ea42c2214b487cf74951453204ffaeedd69bcc332a3fa5ee0c8d2076e925">xemacps_hw.h</a><li>MDC_DIV_16
: <a class="el" href="xemacps__hw_8h.html#a367ea42c2214b487cf74951453204ffd425a3d6c5d67550ee128284f5781cba">xemacps_hw.h</a><li>MDC_DIV_224
: <a class="el" href="xemacps__hw_8h.html#a367ea42c2214b487cf74951453204ff9572dbb5458c29e70fa31ab506bf2169">xemacps_hw.h</a><li>MDC_DIV_32
: <a class="el" href="xemacps__hw_8h.html#a367ea42c2214b487cf74951453204ffaf4a32382efac0e54172b8a27ed48024">xemacps_hw.h</a><li>MDC_DIV_48
: <a class="el" href="xemacps__hw_8h.html#a367ea42c2214b487cf74951453204ff9ad2cf178e9a383892b98307ecb501c7">xemacps_hw.h</a><li>MDC_DIV_64
: <a class="el" href="xemacps__hw_8h.html#a367ea42c2214b487cf74951453204ff1743739e65c86f8d258ced422fbadbbd">xemacps_hw.h</a><li>MDC_DIV_8
: <a class="el" href="xemacps__hw_8h.html#a367ea42c2214b487cf74951453204ff10cc512d51849f92e40812093e300236">xemacps_hw.h</a><li>MDC_DIV_96
: <a class="el" href="xemacps__hw_8h.html#a367ea42c2214b487cf74951453204ffeb0086695bb850e112fbcb801b89f2eb">xemacps_hw.h</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,192 +2,80 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: Class Members
Class Members
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="#index_x"><span>x</span></a></li>
</ul>
</div>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li id="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li id="current"><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div class="contents">
<div class="tabs">
<ul>
<li><a href="#index_x"><span>x</span></a></li>
</ul>
</div>
<p>
&nbsp;
<h3><a class="anchor" id="index_x">- x -</a></h3><ul>
<p>
<h3><a class="anchor" name="index_x">- x -</a></h3><ul>
<li>XEmacPs_BdRingAlloc()
: <a class="el" href="xemacps__bdring_8c.html#a6d7d4a8a571956b6ddef55307f3b2c7b">xemacps_bdring.c</a>
, <a class="el" href="xemacps__bdring_8h.html#a6d7d4a8a571956b6ddef55307f3b2c7b">xemacps_bdring.h</a>
</li>
<li>XEmacPs_BdRingCheck()
: <a class="el" href="xemacps__bdring_8h.html#aacabf15bb439fc0fd795a5cb8358ce27">xemacps_bdring.h</a>
, <a class="el" href="xemacps__bdring_8c.html#aacabf15bb439fc0fd795a5cb8358ce27">xemacps_bdring.c</a>
</li>
<li>XEmacPs_BdRingClone()
: <a class="el" href="xemacps__bdring_8c.html#a270fe8d08e62a06b9a3fd8ed53a72ac5">xemacps_bdring.c</a>
, <a class="el" href="xemacps__bdring_8h.html#a270fe8d08e62a06b9a3fd8ed53a72ac5">xemacps_bdring.h</a>
</li>
<li>XEmacPs_BdRingCreate()
: <a class="el" href="xemacps__bdring_8h.html#a1b6f53633ad6466e00391274d182fc6b">xemacps_bdring.h</a>
, <a class="el" href="xemacps__bdring_8c.html#a1b6f53633ad6466e00391274d182fc6b">xemacps_bdring.c</a>
</li>
<li>XEmacPs_BdRingFree()
: <a class="el" href="xemacps__bdring_8c.html#a7bb4a77d78a9111d56b6bb8dacf6926d">xemacps_bdring.c</a>
, <a class="el" href="xemacps__bdring_8h.html#a7bb4a77d78a9111d56b6bb8dacf6926d">xemacps_bdring.h</a>
</li>
<li>XEmacPs_BdRingFromHwRx()
: <a class="el" href="xemacps__bdring_8c.html#a48529a85670d455aba4cce4cc7887b6b">xemacps_bdring.c</a>
, <a class="el" href="xemacps__bdring_8h.html#a48529a85670d455aba4cce4cc7887b6b">xemacps_bdring.h</a>
</li>
<li>XEmacPs_BdRingFromHwTx()
: <a class="el" href="xemacps__bdring_8c.html#a4079f7078273f2f0082992362cb796f4">xemacps_bdring.c</a>
, <a class="el" href="xemacps__bdring_8h.html#a4079f7078273f2f0082992362cb796f4">xemacps_bdring.h</a>
</li>
<li>XEmacPs_BdRingToHw()
: <a class="el" href="xemacps__bdring_8h.html#adef8169a514444cbb7e615d6e11b05a3">xemacps_bdring.h</a>
, <a class="el" href="xemacps__bdring_8c.html#adef8169a514444cbb7e615d6e11b05a3">xemacps_bdring.c</a>
</li>
<li>XEmacPs_BdRingUnAlloc()
: <a class="el" href="xemacps__bdring_8c.html#a21b6448036402f452539e3f17a36e915">xemacps_bdring.c</a>
, <a class="el" href="xemacps__bdring_8h.html#a21b6448036402f452539e3f17a36e915">xemacps_bdring.h</a>
</li>
<li>XEmacPs_CfgInitialize()
: <a class="el" href="xemacps_8c.html#a500aa2343a5a84ddd80bd52fb184f94f">xemacps.c</a>
, <a class="el" href="xemacps_8h.html#a500aa2343a5a84ddd80bd52fb184f94f">xemacps.h</a>
</li>
<li>XEmacPs_ClearHash()
: <a class="el" href="xemacps_8h.html#a198e6a798ce0be3a5ab09e0d102766ef">xemacps.h</a>
, <a class="el" href="xemacps__control_8c.html#a198e6a798ce0be3a5ab09e0d102766ef">xemacps_control.c</a>
</li>
<li>XEmacPs_ClearOptions()
: <a class="el" href="xemacps_8h.html#a2b82f01f4000f8e6a8ce45d8be43255c">xemacps.h</a>
, <a class="el" href="xemacps__control_8c.html#a2b82f01f4000f8e6a8ce45d8be43255c">xemacps_control.c</a>
</li>
<li>XEmacPs_DeleteHash()
: <a class="el" href="xemacps__control_8c.html#acfd4b44c01f089ec708d1db73c73d40c">xemacps_control.c</a>
</li>
<li>XEmacPs_DMABLengthUpdate()
: <a class="el" href="xemacps_8h.html#a2821b9581e2be4c94990bb98052ce680">xemacps.h</a>
, <a class="el" href="xemacps__control_8c.html#a2821b9581e2be4c94990bb98052ce680">xemacps_control.c</a>
</li>
<li>XEmacPs_GetHash()
: <a class="el" href="xemacps_8h.html#a4d40aa55e3fbbf2e29379e15d07e3bd8">xemacps.h</a>
, <a class="el" href="xemacps__control_8c.html#a4d40aa55e3fbbf2e29379e15d07e3bd8">xemacps_control.c</a>
</li>
<li>XEmacPs_GetMacAddress()
: <a class="el" href="xemacps_8h.html#ac937dc7f20125b0af5b07de435d83df4">xemacps.h</a>
, <a class="el" href="xemacps__control_8c.html#ac937dc7f20125b0af5b07de435d83df4">xemacps_control.c</a>
</li>
<li>XEmacPs_GetOperatingSpeed()
: <a class="el" href="xemacps_8h.html#a0d7ec49a34ff5c1b4592ad6c9830a6b0">xemacps.h</a>
, <a class="el" href="xemacps__control_8c.html#a0d7ec49a34ff5c1b4592ad6c9830a6b0">xemacps_control.c</a>
</li>
<li>XEmacPs_GetOptions()
: <a class="el" href="xemacps_8h.html#a5508f6a12614b8df7369a16a60bc238e">xemacps.h</a>
, <a class="el" href="xemacps__control_8c.html#a5508f6a12614b8df7369a16a60bc238e">xemacps_control.c</a>
</li>
<li>XEmacPs_IntrHandler()
: <a class="el" href="xemacps_8h.html#a59b9d4bbcb0a5e22d95f7363426b3267">xemacps.h</a>
, <a class="el" href="xemacps__intr_8c.html#a7fc1d16432c05d4e773bed878f528184">xemacps_intr.c</a>
</li>
<li>XEmacPs_LookupConfig()
: <a class="el" href="xemacps_8h.html#a54751572e0cfaf72bce1bf26894291fb">xemacps.h</a>
, <a class="el" href="xemacps__sinit_8c.html#a54751572e0cfaf72bce1bf26894291fb">xemacps_sinit.c</a>
</li>
<li>XEmacPs_PhyRead()
: <a class="el" href="xemacps_8h.html#a6169714fe8417a642cfdde141f550b3c">xemacps.h</a>
, <a class="el" href="xemacps__control_8c.html#a6169714fe8417a642cfdde141f550b3c">xemacps_control.c</a>
</li>
<li>XEmacPs_PhyWrite()
: <a class="el" href="xemacps_8h.html#a2aa3ec40827c175ee46a8fd641ff960c">xemacps.h</a>
, <a class="el" href="xemacps__control_8c.html#a2aa3ec40827c175ee46a8fd641ff960c">xemacps_control.c</a>
</li>
<li>XEmacPs_Reset()
: <a class="el" href="xemacps_8c.html#add5f487c873ef70ab8fda69b4ec3938e">xemacps.c</a>
, <a class="el" href="xemacps_8h.html#add5f487c873ef70ab8fda69b4ec3938e">xemacps.h</a>
</li>
<li>XEmacPs_ResetHw()
: <a class="el" href="xemacps__hw_8h.html#a33f7b6941750d70804ecb74cee107a1e">xemacps_hw.h</a>
, <a class="el" href="xemacps__hw_8c.html#a33f7b6941750d70804ecb74cee107a1e">xemacps_hw.c</a>
</li>
<li>XEmacPs_SendPausePacket()
: <a class="el" href="xemacps_8h.html#a6a3673011fb4882dfcfc8366ecee2e6c">xemacps.h</a>
, <a class="el" href="xemacps__control_8c.html#a6a3673011fb4882dfcfc8366ecee2e6c">xemacps_control.c</a>
</li>
<li>XEmacPs_SetHandler()
: <a class="el" href="xemacps__intr_8c.html#a6ff686c1d27451aa864729d78b9570d6">xemacps_intr.c</a>
, <a class="el" href="xemacps_8h.html#a6ff686c1d27451aa864729d78b9570d6">xemacps.h</a>
</li>
<li>XEmacPs_SetHash()
: <a class="el" href="xemacps__control_8c.html#a555ba66cf054a569dcdd602ae61d33d1">xemacps_control.c</a>
, <a class="el" href="xemacps_8h.html#a555ba66cf054a569dcdd602ae61d33d1">xemacps.h</a>
</li>
<li>XEmacPs_SetMacAddress()
: <a class="el" href="xemacps__control_8c.html#a90199e95242edf13a5d83413812ec22d">xemacps_control.c</a>
, <a class="el" href="xemacps_8h.html#a90199e95242edf13a5d83413812ec22d">xemacps.h</a>
</li>
<li>XEmacPs_SetMdioDivisor()
: <a class="el" href="xemacps_8h.html#a5d0b4b9258cdead2c0875a0853c087b3">xemacps.h</a>
, <a class="el" href="xemacps__control_8c.html#a5d0b4b9258cdead2c0875a0853c087b3">xemacps_control.c</a>
</li>
<li>XEmacPs_SetOperatingSpeed()
: <a class="el" href="xemacps_8h.html#ae1f519684cc62697fd17f49e2658abd6">xemacps.h</a>
, <a class="el" href="xemacps__control_8c.html#ae1f519684cc62697fd17f49e2658abd6">xemacps_control.c</a>
</li>
<li>XEmacPs_SetOptions()
: <a class="el" href="xemacps__control_8c.html#aac00eaf66004d2d1d788ca01ed3b512c">xemacps_control.c</a>
, <a class="el" href="xemacps_8h.html#aac00eaf66004d2d1d788ca01ed3b512c">xemacps.h</a>
</li>
<li>XEmacPs_SetTypeIdCheck()
: <a class="el" href="xemacps_8h.html#a54f76825f543ad6a85fadb5609b5bd06">xemacps.h</a>
, <a class="el" href="xemacps__control_8c.html#a54f76825f543ad6a85fadb5609b5bd06">xemacps_control.c</a>
</li>
<li>XEmacPs_Start()
: <a class="el" href="xemacps_8h.html#abe875d0d136e28a166363d66dd7b7f27">xemacps.h</a>
, <a class="el" href="xemacps_8c.html#abe875d0d136e28a166363d66dd7b7f27">xemacps.c</a>
</li>
<li>XEmacPs_Stop()
: <a class="el" href="xemacps_8h.html#af27b057022a2e97201f6d55d61d4a3da">xemacps.h</a>
, <a class="el" href="xemacps_8c.html#af27b057022a2e97201f6d55d61d4a3da">xemacps.c</a>
</li>
<li>XEmacPs_StubHandler()
: <a class="el" href="xemacps_8c.html#ab819378f6d145a165472ca566825462f">xemacps.c</a>
</li>
</ul>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
: <a class="el" href="xemacps__bdring_8h.html#6d7d4a8a571956b6ddef55307f3b2c7b">xemacps_bdring.h</a>, <a class="el" href="xemacps__bdring_8c.html#6d7d4a8a571956b6ddef55307f3b2c7b">xemacps_bdring.c</a><li>XEmacPs_BdRingCheck()
: <a class="el" href="xemacps__bdring_8h.html#acabf15bb439fc0fd795a5cb8358ce27">xemacps_bdring.h</a>, <a class="el" href="xemacps__bdring_8c.html#acabf15bb439fc0fd795a5cb8358ce27">xemacps_bdring.c</a><li>XEmacPs_BdRingClone()
: <a class="el" href="xemacps__bdring_8h.html#270fe8d08e62a06b9a3fd8ed53a72ac5">xemacps_bdring.h</a>, <a class="el" href="xemacps__bdring_8c.html#270fe8d08e62a06b9a3fd8ed53a72ac5">xemacps_bdring.c</a><li>XEmacPs_BdRingCreate()
: <a class="el" href="xemacps__bdring_8h.html#1b6f53633ad6466e00391274d182fc6b">xemacps_bdring.h</a>, <a class="el" href="xemacps__bdring_8c.html#1b6f53633ad6466e00391274d182fc6b">xemacps_bdring.c</a><li>XEmacPs_BdRingFree()
: <a class="el" href="xemacps__bdring_8h.html#7bb4a77d78a9111d56b6bb8dacf6926d">xemacps_bdring.h</a>, <a class="el" href="xemacps__bdring_8c.html#7bb4a77d78a9111d56b6bb8dacf6926d">xemacps_bdring.c</a><li>XEmacPs_BdRingFromHwRx()
: <a class="el" href="xemacps__bdring_8h.html#48529a85670d455aba4cce4cc7887b6b">xemacps_bdring.h</a>, <a class="el" href="xemacps__bdring_8c.html#48529a85670d455aba4cce4cc7887b6b">xemacps_bdring.c</a><li>XEmacPs_BdRingFromHwTx()
: <a class="el" href="xemacps__bdring_8h.html#4079f7078273f2f0082992362cb796f4">xemacps_bdring.h</a>, <a class="el" href="xemacps__bdring_8c.html#4079f7078273f2f0082992362cb796f4">xemacps_bdring.c</a><li>XEmacPs_BdRingToHw()
: <a class="el" href="xemacps__bdring_8h.html#def8169a514444cbb7e615d6e11b05a3">xemacps_bdring.h</a>, <a class="el" href="xemacps__bdring_8c.html#def8169a514444cbb7e615d6e11b05a3">xemacps_bdring.c</a><li>XEmacPs_BdRingUnAlloc()
: <a class="el" href="xemacps__bdring_8h.html#21b6448036402f452539e3f17a36e915">xemacps_bdring.h</a>, <a class="el" href="xemacps__bdring_8c.html#21b6448036402f452539e3f17a36e915">xemacps_bdring.c</a><li>XEmacPs_CfgInitialize()
: <a class="el" href="xemacps_8h.html#500aa2343a5a84ddd80bd52fb184f94f">xemacps.h</a>, <a class="el" href="xemacps_8c.html#500aa2343a5a84ddd80bd52fb184f94f">xemacps.c</a><li>XEmacPs_ClearHash()
: <a class="el" href="xemacps__control_8c.html#198e6a798ce0be3a5ab09e0d102766ef">xemacps_control.c</a>, <a class="el" href="xemacps_8h.html#198e6a798ce0be3a5ab09e0d102766ef">xemacps.h</a><li>XEmacPs_ClearOptions()
: <a class="el" href="xemacps__control_8c.html#2b82f01f4000f8e6a8ce45d8be43255c">xemacps_control.c</a>, <a class="el" href="xemacps_8h.html#2b82f01f4000f8e6a8ce45d8be43255c">xemacps.h</a><li>XEmacPs_DeleteHash()
: <a class="el" href="xemacps__control_8c.html#cfd4b44c01f089ec708d1db73c73d40c">xemacps_control.c</a><li>XEmacPs_DMABLengthUpdate()
: <a class="el" href="xemacps__control_8c.html#2821b9581e2be4c94990bb98052ce680">xemacps_control.c</a>, <a class="el" href="xemacps_8h.html#2821b9581e2be4c94990bb98052ce680">xemacps.h</a><li>XEmacPs_GetHash()
: <a class="el" href="xemacps__control_8c.html#4d40aa55e3fbbf2e29379e15d07e3bd8">xemacps_control.c</a>, <a class="el" href="xemacps_8h.html#4d40aa55e3fbbf2e29379e15d07e3bd8">xemacps.h</a><li>XEmacPs_GetMacAddress()
: <a class="el" href="xemacps__control_8c.html#c937dc7f20125b0af5b07de435d83df4">xemacps_control.c</a>, <a class="el" href="xemacps_8h.html#c937dc7f20125b0af5b07de435d83df4">xemacps.h</a><li>XEmacPs_GetOperatingSpeed()
: <a class="el" href="xemacps__control_8c.html#0d7ec49a34ff5c1b4592ad6c9830a6b0">xemacps_control.c</a>, <a class="el" href="xemacps_8h.html#0d7ec49a34ff5c1b4592ad6c9830a6b0">xemacps.h</a><li>XEmacPs_GetOptions()
: <a class="el" href="xemacps__control_8c.html#5508f6a12614b8df7369a16a60bc238e">xemacps_control.c</a>, <a class="el" href="xemacps_8h.html#5508f6a12614b8df7369a16a60bc238e">xemacps.h</a><li>XEmacPs_IntrHandler()
: <a class="el" href="xemacps__intr_8c.html#7fc1d16432c05d4e773bed878f528184">xemacps_intr.c</a>, <a class="el" href="xemacps_8h.html#59b9d4bbcb0a5e22d95f7363426b3267">xemacps.h</a><li>XEmacPs_LookupConfig()
: <a class="el" href="xemacps__sinit_8c.html#54751572e0cfaf72bce1bf26894291fb">xemacps_sinit.c</a>, <a class="el" href="xemacps_8h.html#54751572e0cfaf72bce1bf26894291fb">xemacps.h</a><li>XEmacPs_PhyRead()
: <a class="el" href="xemacps__control_8c.html#6169714fe8417a642cfdde141f550b3c">xemacps_control.c</a>, <a class="el" href="xemacps_8h.html#6169714fe8417a642cfdde141f550b3c">xemacps.h</a><li>XEmacPs_PhyWrite()
: <a class="el" href="xemacps__control_8c.html#2aa3ec40827c175ee46a8fd641ff960c">xemacps_control.c</a>, <a class="el" href="xemacps_8h.html#2aa3ec40827c175ee46a8fd641ff960c">xemacps.h</a><li>XEmacPs_Reset()
: <a class="el" href="xemacps_8h.html#dd5f487c873ef70ab8fda69b4ec3938e">xemacps.h</a>, <a class="el" href="xemacps_8c.html#dd5f487c873ef70ab8fda69b4ec3938e">xemacps.c</a><li>XEmacPs_ResetHw()
: <a class="el" href="xemacps__hw_8h.html#33f7b6941750d70804ecb74cee107a1e">xemacps_hw.h</a>, <a class="el" href="xemacps__hw_8c.html#33f7b6941750d70804ecb74cee107a1e">xemacps_hw.c</a><li>XEmacPs_SendPausePacket()
: <a class="el" href="xemacps__control_8c.html#6a3673011fb4882dfcfc8366ecee2e6c">xemacps_control.c</a>, <a class="el" href="xemacps_8h.html#6a3673011fb4882dfcfc8366ecee2e6c">xemacps.h</a><li>XEmacPs_SetHandler()
: <a class="el" href="xemacps__intr_8c.html#6ff686c1d27451aa864729d78b9570d6">xemacps_intr.c</a>, <a class="el" href="xemacps_8h.html#6ff686c1d27451aa864729d78b9570d6">xemacps.h</a><li>XEmacPs_SetHash()
: <a class="el" href="xemacps__control_8c.html#555ba66cf054a569dcdd602ae61d33d1">xemacps_control.c</a>, <a class="el" href="xemacps_8h.html#555ba66cf054a569dcdd602ae61d33d1">xemacps.h</a><li>XEmacPs_SetMacAddress()
: <a class="el" href="xemacps__control_8c.html#90199e95242edf13a5d83413812ec22d">xemacps_control.c</a>, <a class="el" href="xemacps_8h.html#90199e95242edf13a5d83413812ec22d">xemacps.h</a><li>XEmacPs_SetMdioDivisor()
: <a class="el" href="xemacps__control_8c.html#5d0b4b9258cdead2c0875a0853c087b3">xemacps_control.c</a>, <a class="el" href="xemacps_8h.html#5d0b4b9258cdead2c0875a0853c087b3">xemacps.h</a><li>XEmacPs_SetOperatingSpeed()
: <a class="el" href="xemacps__control_8c.html#e1f519684cc62697fd17f49e2658abd6">xemacps_control.c</a>, <a class="el" href="xemacps_8h.html#e1f519684cc62697fd17f49e2658abd6">xemacps.h</a><li>XEmacPs_SetOptions()
: <a class="el" href="xemacps__control_8c.html#ac00eaf66004d2d1d788ca01ed3b512c">xemacps_control.c</a>, <a class="el" href="xemacps_8h.html#ac00eaf66004d2d1d788ca01ed3b512c">xemacps.h</a><li>XEmacPs_SetTypeIdCheck()
: <a class="el" href="xemacps__control_8c.html#54f76825f543ad6a85fadb5609b5bd06">xemacps_control.c</a>, <a class="el" href="xemacps_8h.html#54f76825f543ad6a85fadb5609b5bd06">xemacps.h</a><li>XEmacPs_Start()
: <a class="el" href="xemacps_8h.html#be875d0d136e28a166363d66dd7b7f27">xemacps.h</a>, <a class="el" href="xemacps_8c.html#be875d0d136e28a166363d66dd7b7f27">xemacps.c</a><li>XEmacPs_Stop()
: <a class="el" href="xemacps_8h.html#f27b057022a2e97201f6d55d61d4a3da">xemacps.h</a>, <a class="el" href="xemacps_8c.html#f27b057022a2e97201f6d55d61d4a3da">xemacps.c</a><li>XEmacPs_StubHandler()
: <a class="el" href="xemacps_8c.html#b819378f6d145a165472ca566825462f">xemacps.c</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,56 +2,41 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: Class Members
Class Members
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li id="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li id="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div class="contents">
&nbsp;<ul>
&nbsp;
<p>
<ul>
<li>XEmacPs_Bd
: <a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">xemacps_bd.h</a>
</li>
<li>XEmacPs_ErrHandler
: <a class="el" href="xemacps_8h.html#a389eeec67ead68d2abf5b05c244a6add">xemacps.h</a>
</li>
<li>XEmacPs_Handler
: <a class="el" href="xemacps_8h.html#a51ed97693d607dd5d9e69884f61ec7d0">xemacps.h</a>
</li>
</ul>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
: <a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">xemacps_bd.h</a><li>XEmacPs_ErrHandler
: <a class="el" href="xemacps_8h.html#208a480dc15f02a8119086c652d816bb">xemacps.h</a><li>XEmacPs_Handler
: <a class="el" href="xemacps_8h.html#b67a80fb3896481b6338a2ac2357ab33">xemacps.h</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,50 +2,39 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: Class Members
Class Members
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li id="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li id="current"><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div class="contents">
&nbsp;<ul>
&nbsp;
<p>
<ul>
<li>XEmacPs_ConfigTable
: <a class="el" href="xemacps__g_8c.html#aa61daddef11f365ecfe27c06988157b5">xemacps_g.c</a>
</li>
</ul>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
: <a class="el" href="xemacps__g_8c.html#a61daddef11f365ecfe27c06988157b5">xemacps_g.c</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,97 +2,81 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: emacps v2_1
emacps v2_2
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li class="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>emacps v2_1</h1><p>The Xilinx Embedded Processor Block Ethernet driver.</p>
<p>For a full description of XEMACPS features, please see the hardware spec. This driver supports the following features:</p>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li id="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<h1>emacps v2_2</h1>
<p>
The Xilinx Embedded Processor Block Ethernet driver.<p>
For a full description of XEMACPS features, please see the hardware spec. This driver supports the following features:<ul>
<li>Memory mapped access to host interface registers</li><li>Statistics counter registers for RMON/MIB</li><li>API for interrupt driven frame transfers for hardware configured DMA</li><li>Virtual memory support</li><li>Unicast, broadcast, and multicast receive address filtering</li><li>Full and half duplex operation</li><li>Automatic PAD &amp; FCS insertion and stripping</li><li>Flow control</li><li>Support up to four 48bit addresses</li><li>Address checking for four specific 48bit addresses</li><li>VLAN frame support</li><li>Pause frame support</li><li>Large frame support up to 1536 bytes</li><li>Checksum offload</li></ul>
<p>
<b>Driver Description</b><p>
The device driver enables higher layer software (e.g., an application) to communicate to the <a class="el" href="struct_x_emac_ps.html">XEmacPs</a>. The driver handles transmission and reception of Ethernet frames, as well as configuration and control. No pre or post processing of frame data is performed. The driver does not validate the contents of an incoming frame in addition to what has already occurred in hardware. A single device driver can support multiple devices even when those devices have significantly different configurations.<p>
<b>Initialization &amp; Configuration</b><p>
The <a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a> structure is used by the driver to configure itself. This configuration structure is typically created by the tool-chain based on hardware build properties.<p>
The driver instance can be initialized in<p>
<ul>
<li>Memory mapped access to host interface registers</li>
<li>Statistics counter registers for RMON/MIB</li>
<li>API for interrupt driven frame transfers for hardware configured DMA</li>
<li>Virtual memory support</li>
<li>Unicast, broadcast, and multicast receive address filtering</li>
<li>Full and half duplex operation</li>
<li>Automatic PAD &amp; FCS insertion and stripping</li>
<li>Flow control</li>
<li>Support up to four 48bit addresses</li>
<li>Address checking for four specific 48bit addresses</li>
<li>VLAN frame support</li>
<li>Pause frame support</li>
<li>Large frame support up to 1536 bytes</li>
<li>Checksum offload</li>
</ul>
<p><b>Driver Description</b></p>
<p>The device driver enables higher layer software (e.g., an application) to communicate to the <a class="el" href="struct_x_emac_ps.html">XEmacPs</a>. The driver handles transmission and reception of Ethernet frames, as well as configuration and control. No pre or post processing of frame data is performed. The driver does not validate the contents of an incoming frame in addition to what has already occurred in hardware. A single device driver can support multiple devices even when those devices have significantly different configurations.</p>
<p><b>Initialization &amp; Configuration</b></p>
<p>The <a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a> structure is used by the driver to configure itself. This configuration structure is typically created by the tool-chain based on hardware build properties.</p>
<p>The driver instance can be initialized in</p>
<li>XEmacPs_CfgInitialize(InstancePtr, CfgPtr, EffectiveAddress): Uses a configuration structure provided by the caller. If running in a system with address translation, the provided virtual memory base address replaces the physical address present in the configuration structure.</li></ul>
<p>
The device supports DMA only as current development plan. No FIFO mode is supported. The driver expects to start the DMA channels and expects that the user has set up the buffer descriptor lists.<p>
<b>Interrupts and Asynchronous Callbacks</b><p>
The driver has no dependencies on the interrupt controller. When an interrupt occurs, the handler will perform a small amount of housekeeping work, determine the source of the interrupt, and call the appropriate callback function. All callbacks are registered by the user level application.<p>
<b>Virtual Memory</b><p>
All virtual to physical memory mappings must occur prior to accessing the driver API.<p>
For DMA transactions, user buffers supplied to the driver must be in terms of their physical address.<p>
<b>DMA</b><p>
The DMA engine uses buffer descriptors (BDs) to describe Ethernet frames. These BDs are typically chained together into a list the hardware follows when transferring data in and out of the packet buffers. Each BD describes a memory region containing either a full or partial Ethernet packet.<p>
Interrupt coalescing is not suppoted from this built-in DMA engine.<p>
This API requires the user to understand how the DMA operates. The following paragraphs provide some explanation, but the user is encouraged to read documentation in <a class="el" href="xemacps__bdring_8h.html">xemacps_bdring.h</a> as well as study example code that accompanies this driver.<p>
The API is designed to get BDs to and from the DMA engine in the most efficient means possible. The first step is to establish a memory region to contain all BDs for a specific channel. This is done with <a class="el" href="xemacps__bdring_8c.html#1b6f53633ad6466e00391274d182fc6b">XEmacPs_BdRingCreate()</a>. This function sets up a BD ring that hardware will follow as BDs are processed. The ring will consist of a user defined number of BDs which will all be partially initialized. For example on the transmit channel, the driver will initialize all BDs' so that they are configured for transmit. The more fields that can be permanently setup at initialization, then the fewer accesses will be needed to each BD while the DMA engine is in operation resulting in better throughput and CPU utilization. The best case initialization would require the user to set only a frame buffer address and length prior to submitting the BD to the engine.<p>
BDs move through the engine with the help of functions <a class="el" href="xemacps__bdring_8c.html#6d7d4a8a571956b6ddef55307f3b2c7b">XEmacPs_BdRingAlloc()</a>, <a class="el" href="xemacps__bdring_8c.html#def8169a514444cbb7e615d6e11b05a3">XEmacPs_BdRingToHw()</a>, XEmacPs_BdRingFromHw(), and <a class="el" href="xemacps__bdring_8c.html#7bb4a77d78a9111d56b6bb8dacf6926d">XEmacPs_BdRingFree()</a>. All these functions handle BDs that are in place. That is, there are no copies of BDs kept anywhere and any BD the user interacts with is an actual BD from the same ring hardware accesses.<p>
BDs in the ring go through a series of states as follows: 1. Idle. The driver controls BDs in this state. 2. The user has data to transfer. <a class="el" href="xemacps__bdring_8c.html#6d7d4a8a571956b6ddef55307f3b2c7b">XEmacPs_BdRingAlloc()</a> is called to reserve BD(s). Once allocated, the user may setup the BD(s) with frame buffer address, length, and other attributes. The user controls BDs in this state. 3. The user submits BDs to the DMA engine with XEmacPs_BdRingToHw. BDs in this state are either waiting to be processed by hardware, are in process, or have been processed. The DMA engine controls BDs in this state. 4. Processed BDs are retrieved with XEmacEpv_BdRingFromHw() by the user. Once retrieved, the user can examine each BD for the outcome of the DMA transfer. The user controls BDs in this state. After examining the BDs the user calls <a class="el" href="xemacps__bdring_8c.html#7bb4a77d78a9111d56b6bb8dacf6926d">XEmacPs_BdRingFree()</a> which places the BDs back into state 1.<p>
Each of the four BD accessor functions operate on a set of BDs. A set is defined as a segment of the BD ring consisting of one or more BDs. The user views the set as a pointer to the first BD along with the number of BDs for that set. The set can be navigated by using macros XEmacPs_BdNext(). The user must exercise extreme caution when changing BDs in a set as there is nothing to prevent doing a mBdNext past the end of the set and modifying a BD out of bounds.<p>
<a class="el" href="xemacps__bdring_8c.html#6d7d4a8a571956b6ddef55307f3b2c7b">XEmacPs_BdRingAlloc()</a> + <a class="el" href="xemacps__bdring_8c.html#def8169a514444cbb7e615d6e11b05a3">XEmacPs_BdRingToHw()</a>, as well as XEmacPs_BdRingFromHw() + <a class="el" href="xemacps__bdring_8c.html#7bb4a77d78a9111d56b6bb8dacf6926d">XEmacPs_BdRingFree()</a> are designed to be used in tandem. The same BD set retrieved with BdRingAlloc should be the same one provided to hardware with BdRingToHw. Same goes with BdRingFromHw and BdRIngFree.<p>
<b>Alignment &amp; Data Cache Restrictions</b><p>
Due to the design of the hardware, all RX buffers, BDs need to be 4-byte aligned. Please reference <a class="el" href="xemacps__bd_8h.html">xemacps_bd.h</a> for cache related macros.<p>
DMA Tx:<p>
<ul>
<li>XEmacPs_CfgInitialize(InstancePtr, CfgPtr, EffectiveAddress): Uses a configuration structure provided by the caller. If running in a system with address translation, the provided virtual memory base address replaces the physical address present in the configuration structure.</li>
</ul>
<p>The device supports DMA only as current development plan. No FIFO mode is supported. The driver expects to start the DMA channels and expects that the user has set up the buffer descriptor lists.</p>
<p><b>Interrupts and Asynchronous Callbacks</b></p>
<p>The driver has no dependencies on the interrupt controller. When an interrupt occurs, the handler will perform a small amount of housekeeping work, determine the source of the interrupt, and call the appropriate callback function. All callbacks are registered by the user level application.</p>
<p><b>Virtual Memory</b></p>
<p>All virtual to physical memory mappings must occur prior to accessing the driver API.</p>
<p>For DMA transactions, user buffers supplied to the driver must be in terms of their physical address.</p>
<p><b>DMA</b></p>
<p>The DMA engine uses buffer descriptors (BDs) to describe Ethernet frames. These BDs are typically chained together into a list the hardware follows when transferring data in and out of the packet buffers. Each BD describes a memory region containing either a full or partial Ethernet packet.</p>
<p>Interrupt coalescing is not suppoted from this built-in DMA engine.</p>
<p>This API requires the user to understand how the DMA operates. The following paragraphs provide some explanation, but the user is encouraged to read documentation in <a class="el" href="xemacps__bdring_8h.html">xemacps_bdring.h</a> as well as study example code that accompanies this driver.</p>
<p>The API is designed to get BDs to and from the DMA engine in the most efficient means possible. The first step is to establish a memory region to contain all BDs for a specific channel. This is done with <a class="el" href="xemacps__bdring_8c.html#a1b6f53633ad6466e00391274d182fc6b">XEmacPs_BdRingCreate()</a>. This function sets up a BD ring that hardware will follow as BDs are processed. The ring will consist of a user defined number of BDs which will all be partially initialized. For example on the transmit channel, the driver will initialize all BDs' so that they are configured for transmit. The more fields that can be permanently setup at initialization, then the fewer accesses will be needed to each BD while the DMA engine is in operation resulting in better throughput and CPU utilization. The best case initialization would require the user to set only a frame buffer address and length prior to submitting the BD to the engine.</p>
<p>BDs move through the engine with the help of functions <a class="el" href="xemacps__bdring_8c.html#a6d7d4a8a571956b6ddef55307f3b2c7b">XEmacPs_BdRingAlloc()</a>, <a class="el" href="xemacps__bdring_8c.html#adef8169a514444cbb7e615d6e11b05a3">XEmacPs_BdRingToHw()</a>, XEmacPs_BdRingFromHw(), and <a class="el" href="xemacps__bdring_8c.html#a7bb4a77d78a9111d56b6bb8dacf6926d">XEmacPs_BdRingFree()</a>. All these functions handle BDs that are in place. That is, there are no copies of BDs kept anywhere and any BD the user interacts with is an actual BD from the same ring hardware accesses.</p>
<p>BDs in the ring go through a series of states as follows: 1. Idle. The driver controls BDs in this state. 2. The user has data to transfer. <a class="el" href="xemacps__bdring_8c.html#a6d7d4a8a571956b6ddef55307f3b2c7b">XEmacPs_BdRingAlloc()</a> is called to reserve BD(s). Once allocated, the user may setup the BD(s) with frame buffer address, length, and other attributes. The user controls BDs in this state. 3. The user submits BDs to the DMA engine with XEmacPs_BdRingToHw. BDs in this state are either waiting to be processed by hardware, are in process, or have been processed. The DMA engine controls BDs in this state. 4. Processed BDs are retrieved with XEmacEpv_BdRingFromHw() by the user. Once retrieved, the user can examine each BD for the outcome of the DMA transfer. The user controls BDs in this state. After examining the BDs the user calls <a class="el" href="xemacps__bdring_8c.html#a7bb4a77d78a9111d56b6bb8dacf6926d">XEmacPs_BdRingFree()</a> which places the BDs back into state 1.</p>
<p>Each of the four BD accessor functions operate on a set of BDs. A set is defined as a segment of the BD ring consisting of one or more BDs. The user views the set as a pointer to the first BD along with the number of BDs for that set. The set can be navigated by using macros XEmacPs_BdNext(). The user must exercise extreme caution when changing BDs in a set as there is nothing to prevent doing a mBdNext past the end of the set and modifying a BD out of bounds.</p>
<p><a class="el" href="xemacps__bdring_8c.html#a6d7d4a8a571956b6ddef55307f3b2c7b">XEmacPs_BdRingAlloc()</a> + <a class="el" href="xemacps__bdring_8c.html#adef8169a514444cbb7e615d6e11b05a3">XEmacPs_BdRingToHw()</a>, as well as XEmacPs_BdRingFromHw() + <a class="el" href="xemacps__bdring_8c.html#a7bb4a77d78a9111d56b6bb8dacf6926d">XEmacPs_BdRingFree()</a> are designed to be used in tandem. The same BD set retrieved with BdRingAlloc should be the same one provided to hardware with BdRingToHw. Same goes with BdRingFromHw and BdRIngFree.</p>
<p><b>Alignment &amp; Data Cache Restrictions</b></p>
<p>Due to the design of the hardware, all RX buffers, BDs need to be 4-byte aligned. Please reference <a class="el" href="xemacps__bd_8h.html">xemacps_bd.h</a> for cache related macros.</p>
<p>DMA Tx:</p>
<li>If frame buffers exist in cached memory, then they must be flushed prior to committing them to hardware.</li></ul>
<p>
DMA Rx:<p>
<ul>
<li>If frame buffers exist in cached memory, then they must be flushed prior to committing them to hardware.</li>
</ul>
<p>DMA Rx:</p>
<ul>
<li>If frame buffers exist in cached memory, then the cache must be invalidated for the memory region containing the frame prior to data access</li>
</ul>
<p>Both cache invalidate/flush are taken care of in driver code.</p>
<p><b>Buffer Copying</b></p>
<p>The driver is designed for a zero-copy buffer scheme. That is, the driver will not copy buffers. This avoids potential throughput bottlenecks within the driver. If byte copying is required, then the transfer will take longer to complete.</p>
<p><b>Checksum Offloading</b></p>
<p>The Embedded Processor Block Ethernet can be configured to perform IP, TCP and UDP checksum offloading in both receive and transmit directions.</p>
<p>IP packets contain a 16-bit checksum field, which is the 16-bit 1s complement of the 1s complement sum of all 16-bit words in the header. TCP and UDP packets contain a 16-bit checksum field, which is the 16-bit 1s complement of the 1s complement sum of all 16-bit words in the header, the data and a conceptual pseudo header.</p>
<p>To calculate these checksums in software requires each byte of the packet to be read. For TCP and UDP this can use a large amount of processing power. Offloading the checksum calculation to hardware can result in significant performance improvements.</p>
<p>The transmit checksum offload is only available to use DMA in packet buffer mode. This is because the complete frame to be transmitted must be read into the packet buffer memory before the checksum can be calculated and written to the header at the beginning of the frame.</p>
<p>For IP, TCP or UDP receive checksum offload to be useful, the operating system containing the protocol stack must be aware that this offload is available so that it can make use of the fact that the hardware has verified the checksum.</p>
<p>When receive checksum offloading is enabled in the hardware, the IP header checksum is checked, where the packet meets the following criteria:</p>
<p>1. If present, the VLAN header must be four octets long and the CFI bit must not be set. 2. Encapsulation must be RFC 894 Ethernet Type Encoding or RFC 1042 SNAP encoding. 3. IP v4 packet. 4. IP header is of a valid length. 5. Good IP header checksum. 6. No IP fragmentation. 7. TCP or UDP packet.</p>
<p>When an IP, TCP or UDP frame is received, the receive buffer descriptor gives an indication if the hardware was able to verify the checksums. There is also an indication if the frame had SNAP encapsulation. These indication bits will replace the type ID match indication bits when the receive checksum offload is enabled.</p>
<p>If any of the checksums are verified incorrect by the hardware, the packet is discarded and the appropriate statistics counter incremented.</p>
<p><b>PHY Interfaces</b></p>
<p>RGMII 1.3 is the only interface supported.</p>
<p><b>Asserts</b></p>
<p>Asserts are used within all Xilinx drivers to enforce constraints on parameters. Asserts can be turned off on a system-wide basis by defining, at compile time, the NDEBUG identifier. By default, asserts are turned on and it is recommended that users leave asserts on during development. For deployment use -DNDEBUG compiler switch to remove assert code.</p>
<dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
<p>Xilinx drivers are typically composed of two parts, one is the driver and the other is the adapter. The driver is independent of OS and processor and is intended to be highly portable. The adapter is OS-specific and facilitates communication between the driver and an OS. This driver is intended to be RTOS and processor independent. Any needs for dynamic memory management, threads or thread mutual exclusion, or cache control must be satisfied bythe layer above this driver.</p>
<li>If frame buffers exist in cached memory, then the cache must be invalidated for the memory region containing the frame prior to data access</li></ul>
<p>
Both cache invalidate/flush are taken care of in driver code.<p>
<b>Buffer Copying</b><p>
The driver is designed for a zero-copy buffer scheme. That is, the driver will not copy buffers. This avoids potential throughput bottlenecks within the driver. If byte copying is required, then the transfer will take longer to complete.<p>
<b>Checksum Offloading</b><p>
The Embedded Processor Block Ethernet can be configured to perform IP, TCP and UDP checksum offloading in both receive and transmit directions.<p>
IP packets contain a 16-bit checksum field, which is the 16-bit 1s complement of the 1s complement sum of all 16-bit words in the header. TCP and UDP packets contain a 16-bit checksum field, which is the 16-bit 1s complement of the 1s complement sum of all 16-bit words in the header, the data and a conceptual pseudo header.<p>
To calculate these checksums in software requires each byte of the packet to be read. For TCP and UDP this can use a large amount of processing power. Offloading the checksum calculation to hardware can result in significant performance improvements.<p>
The transmit checksum offload is only available to use DMA in packet buffer mode. This is because the complete frame to be transmitted must be read into the packet buffer memory before the checksum can be calculated and written to the header at the beginning of the frame.<p>
For IP, TCP or UDP receive checksum offload to be useful, the operating system containing the protocol stack must be aware that this offload is available so that it can make use of the fact that the hardware has verified the checksum.<p>
When receive checksum offloading is enabled in the hardware, the IP header checksum is checked, where the packet meets the following criteria:<p>
1. If present, the VLAN header must be four octets long and the CFI bit must not be set. 2. Encapsulation must be RFC 894 Ethernet Type Encoding or RFC 1042 SNAP encoding. 3. IP v4 packet. 4. IP header is of a valid length. 5. Good IP header checksum. 6. No IP fragmentation. 7. TCP or UDP packet.<p>
When an IP, TCP or UDP frame is received, the receive buffer descriptor gives an indication if the hardware was able to verify the checksums. There is also an indication if the frame had SNAP encapsulation. These indication bits will replace the type ID match indication bits when the receive checksum offload is enabled.<p>
If any of the checksums are verified incorrect by the hardware, the packet is discarded and the appropriate statistics counter incremented.<p>
<b>PHY Interfaces</b><p>
RGMII 1.3 is the only interface supported.<p>
<b>Asserts</b><p>
Asserts are used within all Xilinx drivers to enforce constraints on parameters. Asserts can be turned off on a system-wide basis by defining, at compile time, the NDEBUG identifier. By default, asserts are turned on and it is recommended that users leave asserts on during development. For deployment use -DNDEBUG compiler switch to remove assert code.<p>
<dl compact><dt><b>Note:</b></dt><dd></dd></dl>
Xilinx drivers are typically composed of two parts, one is the driver and the other is the adapter. The driver is independent of OS and processor and is intended to be highly portable. The adapter is OS-specific and facilitates communication between the driver and an OS. This driver is intended to be RTOS and processor independent. Any needs for dynamic memory management, threads or thread mutual exclusion, or cache control must be satisfied bythe layer above this driver.<p>
<pre>
MODIFICATION HISTORY:</pre><pre> Ver Who Date Changes
MODIFICATION HISTORY:</pre><p>
<pre> Ver Who Date Changes
----- ---- -------- -------------------------------------------------------
1.00a wsy 01/10/10 First release
1.00a asa 11/21/11 The function XEmacPs_BdRingFromHwTx in file
@ -125,9 +109,10 @@
issues with iarcc compiler.
2.0 adk 10/12/13 Updated as per the New Tcl API's
2.1 adk 11/08/14 Fixed the CR#811288. Changes are made in the driver tcl file.
</pre> </div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
2.1 bss 09/08/14 Modified driver tcl to fix CR#820349 to export phy
address in xparameters.h when GMII to RGMII converter
is present in hw.
2.2 adk 29/10/14 Fixed CR#827686 when PCS/PMA core is configured with
1000BASE-X mode export proper values to the xparameters.h
file. Changes are made in the driver tcl file.
</pre> Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,47 +2,36 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: Member List
Member List
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>XEmacPs Member List</h1>This is the complete list of members for <a class="el" href="struct_x_emac_ps.html">XEmacPs</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#ac1323d39e5939eb9672ed03f359eef3a">Config</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#aa1dba4901d36c93560f8bee42de7231a">ErrorHandler</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#a36a859b6210996a19ccd6d08ae4077c7">ErrorRef</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#a4e73fdbc8a1c1d423802d6ba32a50222">IsReady</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#a6884396ec7403ee4a6e41bf4776b7ccd">IsStarted</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#a346a36e93845347bf32680e3fcca449d">Options</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#a9a688f9c70ae40721eb0af5fb7a2c078">RecvHandler</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#a3e52e92b96dee7a5b3981702e4630c29">RecvRef</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#ad7da73b9b3f90455ecf3c380d1ad845a">RxBdRing</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#a69e3bb744dc1d5ac91e6a8bdfe2de363">SendHandler</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#a3bd8b744e0a265cf0efa1333c8d8ddbe">SendRef</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#ab021044617f2e76d2746a77105ee2d86">TxBdRing</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
</table></div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>XEmacPs Member List</h1>This is the complete list of members for <a class="el" href="struct_x_emac_ps.html">XEmacPs</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#c1323d39e5939eb9672ed03f359eef3a">Config</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#a1dba4901d36c93560f8bee42de7231a">ErrorHandler</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#36a859b6210996a19ccd6d08ae4077c7">ErrorRef</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#4e73fdbc8a1c1d423802d6ba32a50222">IsReady</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#6884396ec7403ee4a6e41bf4776b7ccd">IsStarted</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#346a36e93845347bf32680e3fcca449d">Options</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#9a688f9c70ae40721eb0af5fb7a2c078">RecvHandler</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#3e52e92b96dee7a5b3981702e4630c29">RecvRef</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#d7da73b9b3f90455ecf3c380d1ad845a">RxBdRing</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#69e3bb744dc1d5ac91e6a8bdfe2de363">SendHandler</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#3bd8b744e0a265cf0efa1333c8d8ddbe">SendRef</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps.html#b021044617f2e76d2746a77105ee2d86">TxBdRing</a></td><td><a class="el" href="struct_x_emac_ps.html">XEmacPs</a></td><td></td></tr>
</table>Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,215 +2,239 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: XEmacPs Struct Reference
XEmacPs Struct Reference
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>XEmacPs Struct Reference</h1><!-- doxytag: class="XEmacPs" -->
<p><code>#include &lt;xemacps.h&gt;</code></p>
<p><a href="struct_x_emac_ps-members.html">List of all members.</a></p>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>XEmacPs Struct Reference</h1><!-- doxytag: class="XEmacPs" --><code>#include &lt;xemacps.h&gt;</code>
<p>
<a href="struct_x_emac_ps-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
The <a class="el" href="struct_x_emac_ps.html">XEmacPs</a> driver instance data. The user is required to allocate a structure of this type for every <a class="el" href="struct_x_emac_ps.html">XEmacPs</a> device in the system. A pointer to a structure of this type is then passed to the driver API functions.
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#ac1323d39e5939eb9672ed03f359eef3a">Config</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#a6884396ec7403ee4a6e41bf4776b7ccd">IsStarted</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#a4e73fdbc8a1c1d423802d6ba32a50222">IsReady</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#a346a36e93845347bf32680e3fcca449d">Options</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#ab021044617f2e76d2746a77105ee2d86">TxBdRing</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#ad7da73b9b3f90455ecf3c380d1ad845a">RxBdRing</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="xemacps_8h.html#a51ed97693d607dd5d9e69884f61ec7d0">XEmacPs_Handler</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#a69e3bb744dc1d5ac91e6a8bdfe2de363">SendHandler</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="xemacps_8h.html#a51ed97693d607dd5d9e69884f61ec7d0">XEmacPs_Handler</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#a9a688f9c70ae40721eb0af5fb7a2c078">RecvHandler</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#a3bd8b744e0a265cf0efa1333c8d8ddbe">SendRef</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#a3e52e92b96dee7a5b3981702e4630c29">RecvRef</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="xemacps_8h.html#a389eeec67ead68d2abf5b05c244a6add">XEmacPs_ErrHandler</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#aa1dba4901d36c93560f8bee42de7231a">ErrorHandler</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#a36a859b6210996a19ccd6d08ae4077c7">ErrorRef</a></td></tr>
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#c1323d39e5939eb9672ed03f359eef3a">Config</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#6884396ec7403ee4a6e41bf4776b7ccd">IsStarted</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#4e73fdbc8a1c1d423802d6ba32a50222">IsReady</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#346a36e93845347bf32680e3fcca449d">Options</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#b021044617f2e76d2746a77105ee2d86">TxBdRing</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#d7da73b9b3f90455ecf3c380d1ad845a">RxBdRing</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="xemacps_8h.html#b67a80fb3896481b6338a2ac2357ab33">XEmacPs_Handler</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#69e3bb744dc1d5ac91e6a8bdfe2de363">SendHandler</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="xemacps_8h.html#b67a80fb3896481b6338a2ac2357ab33">XEmacPs_Handler</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#9a688f9c70ae40721eb0af5fb7a2c078">RecvHandler</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#3bd8b744e0a265cf0efa1333c8d8ddbe">SendRef</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#3e52e92b96dee7a5b3981702e4630c29">RecvRef</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="xemacps_8h.html#208a480dc15f02a8119086c652d816bb">XEmacPs_ErrHandler</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#a1dba4901d36c93560f8bee42de7231a">ErrorHandler</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps.html#36a859b6210996a19ccd6d08ae4077c7">ErrorRef</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>The <a class="el" href="struct_x_emac_ps.html">XEmacPs</a> driver instance data. The user is required to allocate a structure of this type for every <a class="el" href="struct_x_emac_ps.html">XEmacPs</a> device in the system. A pointer to a structure of this type is then passed to the driver API functions. </p>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="ac1323d39e5939eb9672ed03f359eef3a"></a><!-- doxytag: member="XEmacPs::Config" ref="ac1323d39e5939eb9672ed03f359eef3a" args="" -->
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="c1323d39e5939eb9672ed03f359eef3a"></a><!-- doxytag: member="XEmacPs::Config" ref="c1323d39e5939eb9672ed03f359eef3a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a> <a class="el" href="struct_x_emac_ps.html#ac1323d39e5939eb9672ed03f359eef3a">XEmacPs::Config</a></td>
<td class="memname"><a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a> <a class="el" href="struct_x_emac_ps.html#c1323d39e5939eb9672ed03f359eef3a">XEmacPs::Config</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div>
<a class="anchor" id="aa1dba4901d36c93560f8bee42de7231a"></a><!-- doxytag: member="XEmacPs::ErrorHandler" ref="aa1dba4901d36c93560f8bee42de7231a" args="" -->
</div><p>
<a class="anchor" name="a1dba4901d36c93560f8bee42de7231a"></a><!-- doxytag: member="XEmacPs::ErrorHandler" ref="a1dba4901d36c93560f8bee42de7231a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="xemacps_8h.html#a389eeec67ead68d2abf5b05c244a6add">XEmacPs_ErrHandler</a> <a class="el" href="struct_x_emac_ps.html#aa1dba4901d36c93560f8bee42de7231a">XEmacPs::ErrorHandler</a></td>
<td class="memname"><a class="el" href="xemacps_8h.html#208a480dc15f02a8119086c652d816bb">XEmacPs_ErrHandler</a> <a class="el" href="struct_x_emac_ps.html#a1dba4901d36c93560f8bee42de7231a">XEmacPs::ErrorHandler</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div>
<a class="anchor" id="a36a859b6210996a19ccd6d08ae4077c7"></a><!-- doxytag: member="XEmacPs::ErrorRef" ref="a36a859b6210996a19ccd6d08ae4077c7" args="" -->
</div><p>
<a class="anchor" name="36a859b6210996a19ccd6d08ae4077c7"></a><!-- doxytag: member="XEmacPs::ErrorRef" ref="36a859b6210996a19ccd6d08ae4077c7" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* <a class="el" href="struct_x_emac_ps.html#a36a859b6210996a19ccd6d08ae4077c7">XEmacPs::ErrorRef</a></td>
<td class="memname">void* <a class="el" href="struct_x_emac_ps.html#36a859b6210996a19ccd6d08ae4077c7">XEmacPs::ErrorRef</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div>
<a class="anchor" id="a4e73fdbc8a1c1d423802d6ba32a50222"></a><!-- doxytag: member="XEmacPs::IsReady" ref="a4e73fdbc8a1c1d423802d6ba32a50222" args="" -->
</div><p>
<a class="anchor" name="4e73fdbc8a1c1d423802d6ba32a50222"></a><!-- doxytag: member="XEmacPs::IsReady" ref="4e73fdbc8a1c1d423802d6ba32a50222" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_x_emac_ps.html#a4e73fdbc8a1c1d423802d6ba32a50222">XEmacPs::IsReady</a></td>
<td class="memname">u32 <a class="el" href="struct_x_emac_ps.html#4e73fdbc8a1c1d423802d6ba32a50222">XEmacPs::IsReady</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div>
<a class="anchor" id="a6884396ec7403ee4a6e41bf4776b7ccd"></a><!-- doxytag: member="XEmacPs::IsStarted" ref="a6884396ec7403ee4a6e41bf4776b7ccd" args="" -->
</div><p>
<a class="anchor" name="6884396ec7403ee4a6e41bf4776b7ccd"></a><!-- doxytag: member="XEmacPs::IsStarted" ref="6884396ec7403ee4a6e41bf4776b7ccd" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_x_emac_ps.html#a6884396ec7403ee4a6e41bf4776b7ccd">XEmacPs::IsStarted</a></td>
<td class="memname">u32 <a class="el" href="struct_x_emac_ps.html#6884396ec7403ee4a6e41bf4776b7ccd">XEmacPs::IsStarted</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div>
<a class="anchor" id="a346a36e93845347bf32680e3fcca449d"></a><!-- doxytag: member="XEmacPs::Options" ref="a346a36e93845347bf32680e3fcca449d" args="" -->
</div><p>
<a class="anchor" name="346a36e93845347bf32680e3fcca449d"></a><!-- doxytag: member="XEmacPs::Options" ref="346a36e93845347bf32680e3fcca449d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_x_emac_ps.html#a346a36e93845347bf32680e3fcca449d">XEmacPs::Options</a></td>
<td class="memname">u32 <a class="el" href="struct_x_emac_ps.html#346a36e93845347bf32680e3fcca449d">XEmacPs::Options</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div>
<a class="anchor" id="a9a688f9c70ae40721eb0af5fb7a2c078"></a><!-- doxytag: member="XEmacPs::RecvHandler" ref="a9a688f9c70ae40721eb0af5fb7a2c078" args="" -->
</div><p>
<a class="anchor" name="9a688f9c70ae40721eb0af5fb7a2c078"></a><!-- doxytag: member="XEmacPs::RecvHandler" ref="9a688f9c70ae40721eb0af5fb7a2c078" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="xemacps_8h.html#a51ed97693d607dd5d9e69884f61ec7d0">XEmacPs_Handler</a> <a class="el" href="struct_x_emac_ps.html#a9a688f9c70ae40721eb0af5fb7a2c078">XEmacPs::RecvHandler</a></td>
<td class="memname"><a class="el" href="xemacps_8h.html#b67a80fb3896481b6338a2ac2357ab33">XEmacPs_Handler</a> <a class="el" href="struct_x_emac_ps.html#9a688f9c70ae40721eb0af5fb7a2c078">XEmacPs::RecvHandler</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div>
<a class="anchor" id="a3e52e92b96dee7a5b3981702e4630c29"></a><!-- doxytag: member="XEmacPs::RecvRef" ref="a3e52e92b96dee7a5b3981702e4630c29" args="" -->
</div><p>
<a class="anchor" name="3e52e92b96dee7a5b3981702e4630c29"></a><!-- doxytag: member="XEmacPs::RecvRef" ref="3e52e92b96dee7a5b3981702e4630c29" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* <a class="el" href="struct_x_emac_ps.html#a3e52e92b96dee7a5b3981702e4630c29">XEmacPs::RecvRef</a></td>
<td class="memname">void* <a class="el" href="struct_x_emac_ps.html#3e52e92b96dee7a5b3981702e4630c29">XEmacPs::RecvRef</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div>
<a class="anchor" id="ad7da73b9b3f90455ecf3c380d1ad845a"></a><!-- doxytag: member="XEmacPs::RxBdRing" ref="ad7da73b9b3f90455ecf3c380d1ad845a" args="" -->
</div><p>
<a class="anchor" name="d7da73b9b3f90455ecf3c380d1ad845a"></a><!-- doxytag: member="XEmacPs::RxBdRing" ref="d7da73b9b3f90455ecf3c380d1ad845a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> <a class="el" href="struct_x_emac_ps.html#ad7da73b9b3f90455ecf3c380d1ad845a">XEmacPs::RxBdRing</a></td>
<td class="memname"><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> <a class="el" href="struct_x_emac_ps.html#d7da73b9b3f90455ecf3c380d1ad845a">XEmacPs::RxBdRing</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div>
<a class="anchor" id="a69e3bb744dc1d5ac91e6a8bdfe2de363"></a><!-- doxytag: member="XEmacPs::SendHandler" ref="a69e3bb744dc1d5ac91e6a8bdfe2de363" args="" -->
</div><p>
<a class="anchor" name="69e3bb744dc1d5ac91e6a8bdfe2de363"></a><!-- doxytag: member="XEmacPs::SendHandler" ref="69e3bb744dc1d5ac91e6a8bdfe2de363" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="xemacps_8h.html#a51ed97693d607dd5d9e69884f61ec7d0">XEmacPs_Handler</a> <a class="el" href="struct_x_emac_ps.html#a69e3bb744dc1d5ac91e6a8bdfe2de363">XEmacPs::SendHandler</a></td>
<td class="memname"><a class="el" href="xemacps_8h.html#b67a80fb3896481b6338a2ac2357ab33">XEmacPs_Handler</a> <a class="el" href="struct_x_emac_ps.html#69e3bb744dc1d5ac91e6a8bdfe2de363">XEmacPs::SendHandler</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div>
<a class="anchor" id="a3bd8b744e0a265cf0efa1333c8d8ddbe"></a><!-- doxytag: member="XEmacPs::SendRef" ref="a3bd8b744e0a265cf0efa1333c8d8ddbe" args="" -->
</div><p>
<a class="anchor" name="3bd8b744e0a265cf0efa1333c8d8ddbe"></a><!-- doxytag: member="XEmacPs::SendRef" ref="3bd8b744e0a265cf0efa1333c8d8ddbe" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* <a class="el" href="struct_x_emac_ps.html#a3bd8b744e0a265cf0efa1333c8d8ddbe">XEmacPs::SendRef</a></td>
<td class="memname">void* <a class="el" href="struct_x_emac_ps.html#3bd8b744e0a265cf0efa1333c8d8ddbe">XEmacPs::SendRef</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div>
<a class="anchor" id="ab021044617f2e76d2746a77105ee2d86"></a><!-- doxytag: member="XEmacPs::TxBdRing" ref="ab021044617f2e76d2746a77105ee2d86" args="" -->
</div><p>
<a class="anchor" name="b021044617f2e76d2746a77105ee2d86"></a><!-- doxytag: member="XEmacPs::TxBdRing" ref="b021044617f2e76d2746a77105ee2d86" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> <a class="el" href="struct_x_emac_ps.html#ab021044617f2e76d2746a77105ee2d86">XEmacPs::TxBdRing</a></td>
<td class="memname"><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> <a class="el" href="struct_x_emac_ps.html#b021044617f2e76d2746a77105ee2d86">XEmacPs::TxBdRing</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="xemacps_8h.html">xemacps.h</a></li>
</ul>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="xemacps_8h.html">xemacps.h</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,52 +2,41 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: Member List
Member List
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>XEmacPs_BdRing Member List</h1>This is the complete list of members for <a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#ae8aeff495e64c348d6f6416c5697d70b">AllCnt</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#a9e0af38f3a491e6bc9e2b606f57c5881">BaseBdAddr</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#a73561392cb79ccebf64766f0b5a560ab">BdaRestart</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#a3d1a651344cb2b62f98014166860cbac">FreeCnt</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#aa849c1609830416b6cdf8bcb7a0556b7">FreeHead</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#ad914f29270701f9a110abe27e673c86f">HighBdAddr</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#a681237d3509043eb17869fc62fe6992f">HwCnt</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#a6ec82a9b24de2bce3e44aa0c75530277">HwHead</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#a0f43d0e8f576aab1628fe351530ec155">HwTail</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#af2fa25bbd258aa15039fa8f9c59d3536">Length</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#af878bc1cb6a8500aab455635f7d01874">PhysBaseAddr</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#a1144083249f5e9c220ab49d3aa9b8813">PostCnt</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#a4aeea3bd3273381c433a001c3b8d5a26">PostHead</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#a4c128463933d57a3a5f4a4cc90c370a9">PreCnt</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#a2970a0b989dac974893a20fe64f2eee5">PreHead</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#a3d8f8bec7b56f5acc05c2290e875156f">RunState</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#ae520dbbd110fe4e5f407d6d78066b35e">Separation</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
</table></div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>XEmacPs_BdRing Member List</h1>This is the complete list of members for <a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#e8aeff495e64c348d6f6416c5697d70b">AllCnt</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#9e0af38f3a491e6bc9e2b606f57c5881">BaseBdAddr</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#73561392cb79ccebf64766f0b5a560ab">BdaRestart</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#3d1a651344cb2b62f98014166860cbac">FreeCnt</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#a849c1609830416b6cdf8bcb7a0556b7">FreeHead</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#d914f29270701f9a110abe27e673c86f">HighBdAddr</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#681237d3509043eb17869fc62fe6992f">HwCnt</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#6ec82a9b24de2bce3e44aa0c75530277">HwHead</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#0f43d0e8f576aab1628fe351530ec155">HwTail</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#f2fa25bbd258aa15039fa8f9c59d3536">Length</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#f878bc1cb6a8500aab455635f7d01874">PhysBaseAddr</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#1144083249f5e9c220ab49d3aa9b8813">PostCnt</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#4aeea3bd3273381c433a001c3b8d5a26">PostHead</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#4c128463933d57a3a5f4a4cc90c370a9">PreCnt</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#2970a0b989dac974893a20fe64f2eee5">PreHead</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#3d8f8bec7b56f5acc05c2290e875156f">RunState</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___bd_ring.html#e520dbbd110fe4e5f407d6d78066b35e">Separation</a></td><td><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a></td><td></td></tr>
</table>Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,303 +2,324 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: XEmacPs_BdRing Struct Reference
XEmacPs_BdRing Struct Reference
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>XEmacPs_BdRing Struct Reference</h1><!-- doxytag: class="XEmacPs_BdRing" -->
<p><code>#include &lt;xemacps_bdring.h&gt;</code></p>
<p><a href="struct_x_emac_ps___bd_ring-members.html">List of all members.</a></p>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>XEmacPs_BdRing Struct Reference</h1><!-- doxytag: class="XEmacPs_BdRing" --><code>#include &lt;xemacps_bdring.h&gt;</code>
<p>
<a href="struct_x_emac_ps___bd_ring-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
This is an internal structure used to maintain the DMA list
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#af878bc1cb6a8500aab455635f7d01874">PhysBaseAddr</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#a9e0af38f3a491e6bc9e2b606f57c5881">BaseBdAddr</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#ad914f29270701f9a110abe27e673c86f">HighBdAddr</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#af2fa25bbd258aa15039fa8f9c59d3536">Length</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#a3d8f8bec7b56f5acc05c2290e875156f">RunState</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#ae520dbbd110fe4e5f407d6d78066b35e">Separation</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#aa849c1609830416b6cdf8bcb7a0556b7">FreeHead</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#a2970a0b989dac974893a20fe64f2eee5">PreHead</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#a6ec82a9b24de2bce3e44aa0c75530277">HwHead</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#a0f43d0e8f576aab1628fe351530ec155">HwTail</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#a4aeea3bd3273381c433a001c3b8d5a26">PostHead</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#a73561392cb79ccebf64766f0b5a560ab">BdaRestart</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#a681237d3509043eb17869fc62fe6992f">HwCnt</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#a4c128463933d57a3a5f4a4cc90c370a9">PreCnt</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#a3d1a651344cb2b62f98014166860cbac">FreeCnt</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#a1144083249f5e9c220ab49d3aa9b8813">PostCnt</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#ae8aeff495e64c348d6f6416c5697d70b">AllCnt</a></td></tr>
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#f878bc1cb6a8500aab455635f7d01874">PhysBaseAddr</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#9e0af38f3a491e6bc9e2b606f57c5881">BaseBdAddr</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#d914f29270701f9a110abe27e673c86f">HighBdAddr</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#f2fa25bbd258aa15039fa8f9c59d3536">Length</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#3d8f8bec7b56f5acc05c2290e875156f">RunState</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#e520dbbd110fe4e5f407d6d78066b35e">Separation</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#a849c1609830416b6cdf8bcb7a0556b7">FreeHead</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#2970a0b989dac974893a20fe64f2eee5">PreHead</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#6ec82a9b24de2bce3e44aa0c75530277">HwHead</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#0f43d0e8f576aab1628fe351530ec155">HwTail</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#4aeea3bd3273381c433a001c3b8d5a26">PostHead</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#73561392cb79ccebf64766f0b5a560ab">BdaRestart</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#681237d3509043eb17869fc62fe6992f">HwCnt</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#4c128463933d57a3a5f4a4cc90c370a9">PreCnt</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#3d1a651344cb2b62f98014166860cbac">FreeCnt</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#1144083249f5e9c220ab49d3aa9b8813">PostCnt</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___bd_ring.html#e8aeff495e64c348d6f6416c5697d70b">AllCnt</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>This is an internal structure used to maintain the DMA list </p>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="ae8aeff495e64c348d6f6416c5697d70b"></a><!-- doxytag: member="XEmacPs_BdRing::AllCnt" ref="ae8aeff495e64c348d6f6416c5697d70b" args="" -->
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="e8aeff495e64c348d6f6416c5697d70b"></a><!-- doxytag: member="XEmacPs_BdRing::AllCnt" ref="e8aeff495e64c348d6f6416c5697d70b" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned <a class="el" href="struct_x_emac_ps___bd_ring.html#ae8aeff495e64c348d6f6416c5697d70b">XEmacPs_BdRing::AllCnt</a></td>
<td class="memname">unsigned <a class="el" href="struct_x_emac_ps___bd_ring.html#e8aeff495e64c348d6f6416c5697d70b">XEmacPs_BdRing::AllCnt</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Total Number of BDs for channel </p>
<p>
Total Number of BDs for channel
</div>
</div>
<a class="anchor" id="a9e0af38f3a491e6bc9e2b606f57c5881"></a><!-- doxytag: member="XEmacPs_BdRing::BaseBdAddr" ref="a9e0af38f3a491e6bc9e2b606f57c5881" args="" -->
</div><p>
<a class="anchor" name="9e0af38f3a491e6bc9e2b606f57c5881"></a><!-- doxytag: member="XEmacPs_BdRing::BaseBdAddr" ref="9e0af38f3a491e6bc9e2b606f57c5881" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_x_emac_ps___bd_ring.html#a9e0af38f3a491e6bc9e2b606f57c5881">XEmacPs_BdRing::BaseBdAddr</a></td>
<td class="memname">u32 <a class="el" href="struct_x_emac_ps___bd_ring.html#9e0af38f3a491e6bc9e2b606f57c5881">XEmacPs_BdRing::BaseBdAddr</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Virtual address of 1st BD in list </p>
<p>
Virtual address of 1st BD in list
</div>
</div>
<a class="anchor" id="a73561392cb79ccebf64766f0b5a560ab"></a><!-- doxytag: member="XEmacPs_BdRing::BdaRestart" ref="a73561392cb79ccebf64766f0b5a560ab" args="" -->
</div><p>
<a class="anchor" name="73561392cb79ccebf64766f0b5a560ab"></a><!-- doxytag: member="XEmacPs_BdRing::BdaRestart" ref="73561392cb79ccebf64766f0b5a560ab" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a>* <a class="el" href="struct_x_emac_ps___bd_ring.html#a73561392cb79ccebf64766f0b5a560ab">XEmacPs_BdRing::BdaRestart</a></td>
<td class="memname"><a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a>* <a class="el" href="struct_x_emac_ps___bd_ring.html#73561392cb79ccebf64766f0b5a560ab">XEmacPs_BdRing::BdaRestart</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>BDA to load when channel is started </p>
<p>
BDA to load when channel is started
</div>
</div>
<a class="anchor" id="a3d1a651344cb2b62f98014166860cbac"></a><!-- doxytag: member="XEmacPs_BdRing::FreeCnt" ref="a3d1a651344cb2b62f98014166860cbac" args="" -->
</div><p>
<a class="anchor" name="3d1a651344cb2b62f98014166860cbac"></a><!-- doxytag: member="XEmacPs_BdRing::FreeCnt" ref="3d1a651344cb2b62f98014166860cbac" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned <a class="el" href="struct_x_emac_ps___bd_ring.html#a3d1a651344cb2b62f98014166860cbac">XEmacPs_BdRing::FreeCnt</a></td>
<td class="memname">unsigned <a class="el" href="struct_x_emac_ps___bd_ring.html#3d1a651344cb2b62f98014166860cbac">XEmacPs_BdRing::FreeCnt</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Number of allocatable BDs in the free group </p>
<p>
Number of allocatable BDs in the free group
</div>
</div>
<a class="anchor" id="aa849c1609830416b6cdf8bcb7a0556b7"></a><!-- doxytag: member="XEmacPs_BdRing::FreeHead" ref="aa849c1609830416b6cdf8bcb7a0556b7" args="" -->
</div><p>
<a class="anchor" name="a849c1609830416b6cdf8bcb7a0556b7"></a><!-- doxytag: member="XEmacPs_BdRing::FreeHead" ref="a849c1609830416b6cdf8bcb7a0556b7" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a>* <a class="el" href="struct_x_emac_ps___bd_ring.html#aa849c1609830416b6cdf8bcb7a0556b7">XEmacPs_BdRing::FreeHead</a></td>
<td class="memname"><a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a>* <a class="el" href="struct_x_emac_ps___bd_ring.html#a849c1609830416b6cdf8bcb7a0556b7">XEmacPs_BdRing::FreeHead</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>First BD in the free group </p>
<p>
First BD in the free group
</div>
</div>
<a class="anchor" id="ad914f29270701f9a110abe27e673c86f"></a><!-- doxytag: member="XEmacPs_BdRing::HighBdAddr" ref="ad914f29270701f9a110abe27e673c86f" args="" -->
</div><p>
<a class="anchor" name="d914f29270701f9a110abe27e673c86f"></a><!-- doxytag: member="XEmacPs_BdRing::HighBdAddr" ref="d914f29270701f9a110abe27e673c86f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_x_emac_ps___bd_ring.html#ad914f29270701f9a110abe27e673c86f">XEmacPs_BdRing::HighBdAddr</a></td>
<td class="memname">u32 <a class="el" href="struct_x_emac_ps___bd_ring.html#d914f29270701f9a110abe27e673c86f">XEmacPs_BdRing::HighBdAddr</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Virtual address of last BD in the list </p>
<p>
Virtual address of last BD in the list
</div>
</div>
<a class="anchor" id="a681237d3509043eb17869fc62fe6992f"></a><!-- doxytag: member="XEmacPs_BdRing::HwCnt" ref="a681237d3509043eb17869fc62fe6992f" args="" -->
</div><p>
<a class="anchor" name="681237d3509043eb17869fc62fe6992f"></a><!-- doxytag: member="XEmacPs_BdRing::HwCnt" ref="681237d3509043eb17869fc62fe6992f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned <a class="el" href="struct_x_emac_ps___bd_ring.html#a681237d3509043eb17869fc62fe6992f">XEmacPs_BdRing::HwCnt</a></td>
<td class="memname">unsigned <a class="el" href="struct_x_emac_ps___bd_ring.html#681237d3509043eb17869fc62fe6992f">XEmacPs_BdRing::HwCnt</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Number of BDs in work group </p>
<p>
Number of BDs in work group
</div>
</div>
<a class="anchor" id="a6ec82a9b24de2bce3e44aa0c75530277"></a><!-- doxytag: member="XEmacPs_BdRing::HwHead" ref="a6ec82a9b24de2bce3e44aa0c75530277" args="" -->
</div><p>
<a class="anchor" name="6ec82a9b24de2bce3e44aa0c75530277"></a><!-- doxytag: member="XEmacPs_BdRing::HwHead" ref="6ec82a9b24de2bce3e44aa0c75530277" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a>* <a class="el" href="struct_x_emac_ps___bd_ring.html#a6ec82a9b24de2bce3e44aa0c75530277">XEmacPs_BdRing::HwHead</a></td>
<td class="memname"><a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a>* <a class="el" href="struct_x_emac_ps___bd_ring.html#6ec82a9b24de2bce3e44aa0c75530277">XEmacPs_BdRing::HwHead</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>First BD in the work group </p>
<p>
First BD in the work group
</div>
</div>
<a class="anchor" id="a0f43d0e8f576aab1628fe351530ec155"></a><!-- doxytag: member="XEmacPs_BdRing::HwTail" ref="a0f43d0e8f576aab1628fe351530ec155" args="" -->
</div><p>
<a class="anchor" name="0f43d0e8f576aab1628fe351530ec155"></a><!-- doxytag: member="XEmacPs_BdRing::HwTail" ref="0f43d0e8f576aab1628fe351530ec155" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a>* <a class="el" href="struct_x_emac_ps___bd_ring.html#a0f43d0e8f576aab1628fe351530ec155">XEmacPs_BdRing::HwTail</a></td>
<td class="memname"><a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a>* <a class="el" href="struct_x_emac_ps___bd_ring.html#0f43d0e8f576aab1628fe351530ec155">XEmacPs_BdRing::HwTail</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Last BD in the work group </p>
<p>
Last BD in the work group
</div>
</div>
<a class="anchor" id="af2fa25bbd258aa15039fa8f9c59d3536"></a><!-- doxytag: member="XEmacPs_BdRing::Length" ref="af2fa25bbd258aa15039fa8f9c59d3536" args="" -->
</div><p>
<a class="anchor" name="f2fa25bbd258aa15039fa8f9c59d3536"></a><!-- doxytag: member="XEmacPs_BdRing::Length" ref="f2fa25bbd258aa15039fa8f9c59d3536" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_x_emac_ps___bd_ring.html#af2fa25bbd258aa15039fa8f9c59d3536">XEmacPs_BdRing::Length</a></td>
<td class="memname">u32 <a class="el" href="struct_x_emac_ps___bd_ring.html#f2fa25bbd258aa15039fa8f9c59d3536">XEmacPs_BdRing::Length</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Total size of ring in bytes </p>
<p>
Total size of ring in bytes
</div>
</div>
<a class="anchor" id="af878bc1cb6a8500aab455635f7d01874"></a><!-- doxytag: member="XEmacPs_BdRing::PhysBaseAddr" ref="af878bc1cb6a8500aab455635f7d01874" args="" -->
</div><p>
<a class="anchor" name="f878bc1cb6a8500aab455635f7d01874"></a><!-- doxytag: member="XEmacPs_BdRing::PhysBaseAddr" ref="f878bc1cb6a8500aab455635f7d01874" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_x_emac_ps___bd_ring.html#af878bc1cb6a8500aab455635f7d01874">XEmacPs_BdRing::PhysBaseAddr</a></td>
<td class="memname">u32 <a class="el" href="struct_x_emac_ps___bd_ring.html#f878bc1cb6a8500aab455635f7d01874">XEmacPs_BdRing::PhysBaseAddr</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Physical address of 1st BD in list </p>
<p>
Physical address of 1st BD in list
</div>
</div>
<a class="anchor" id="a1144083249f5e9c220ab49d3aa9b8813"></a><!-- doxytag: member="XEmacPs_BdRing::PostCnt" ref="a1144083249f5e9c220ab49d3aa9b8813" args="" -->
</div><p>
<a class="anchor" name="1144083249f5e9c220ab49d3aa9b8813"></a><!-- doxytag: member="XEmacPs_BdRing::PostCnt" ref="1144083249f5e9c220ab49d3aa9b8813" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned <a class="el" href="struct_x_emac_ps___bd_ring.html#a1144083249f5e9c220ab49d3aa9b8813">XEmacPs_BdRing::PostCnt</a></td>
<td class="memname">unsigned <a class="el" href="struct_x_emac_ps___bd_ring.html#1144083249f5e9c220ab49d3aa9b8813">XEmacPs_BdRing::PostCnt</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Number of BDs in post-work group </p>
<p>
Number of BDs in post-work group
</div>
</div>
<a class="anchor" id="a4aeea3bd3273381c433a001c3b8d5a26"></a><!-- doxytag: member="XEmacPs_BdRing::PostHead" ref="a4aeea3bd3273381c433a001c3b8d5a26" args="" -->
</div><p>
<a class="anchor" name="4aeea3bd3273381c433a001c3b8d5a26"></a><!-- doxytag: member="XEmacPs_BdRing::PostHead" ref="4aeea3bd3273381c433a001c3b8d5a26" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a>* <a class="el" href="struct_x_emac_ps___bd_ring.html#a4aeea3bd3273381c433a001c3b8d5a26">XEmacPs_BdRing::PostHead</a></td>
<td class="memname"><a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a>* <a class="el" href="struct_x_emac_ps___bd_ring.html#4aeea3bd3273381c433a001c3b8d5a26">XEmacPs_BdRing::PostHead</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>First BD in the post-work group </p>
<p>
First BD in the post-work group
</div>
</div>
<a class="anchor" id="a4c128463933d57a3a5f4a4cc90c370a9"></a><!-- doxytag: member="XEmacPs_BdRing::PreCnt" ref="a4c128463933d57a3a5f4a4cc90c370a9" args="" -->
</div><p>
<a class="anchor" name="4c128463933d57a3a5f4a4cc90c370a9"></a><!-- doxytag: member="XEmacPs_BdRing::PreCnt" ref="4c128463933d57a3a5f4a4cc90c370a9" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned <a class="el" href="struct_x_emac_ps___bd_ring.html#a4c128463933d57a3a5f4a4cc90c370a9">XEmacPs_BdRing::PreCnt</a></td>
<td class="memname">unsigned <a class="el" href="struct_x_emac_ps___bd_ring.html#4c128463933d57a3a5f4a4cc90c370a9">XEmacPs_BdRing::PreCnt</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Number of BDs in pre-work group </p>
<p>
Number of BDs in pre-work group
</div>
</div>
<a class="anchor" id="a2970a0b989dac974893a20fe64f2eee5"></a><!-- doxytag: member="XEmacPs_BdRing::PreHead" ref="a2970a0b989dac974893a20fe64f2eee5" args="" -->
</div><p>
<a class="anchor" name="2970a0b989dac974893a20fe64f2eee5"></a><!-- doxytag: member="XEmacPs_BdRing::PreHead" ref="2970a0b989dac974893a20fe64f2eee5" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a>* <a class="el" href="struct_x_emac_ps___bd_ring.html#a2970a0b989dac974893a20fe64f2eee5">XEmacPs_BdRing::PreHead</a></td>
<td class="memname"><a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a>* <a class="el" href="struct_x_emac_ps___bd_ring.html#2970a0b989dac974893a20fe64f2eee5">XEmacPs_BdRing::PreHead</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>First BD in the pre-work group </p>
<p>
First BD in the pre-work group
</div>
</div>
<a class="anchor" id="a3d8f8bec7b56f5acc05c2290e875156f"></a><!-- doxytag: member="XEmacPs_BdRing::RunState" ref="a3d8f8bec7b56f5acc05c2290e875156f" args="" -->
</div><p>
<a class="anchor" name="3d8f8bec7b56f5acc05c2290e875156f"></a><!-- doxytag: member="XEmacPs_BdRing::RunState" ref="3d8f8bec7b56f5acc05c2290e875156f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_x_emac_ps___bd_ring.html#a3d8f8bec7b56f5acc05c2290e875156f">XEmacPs_BdRing::RunState</a></td>
<td class="memname">u32 <a class="el" href="struct_x_emac_ps___bd_ring.html#3d8f8bec7b56f5acc05c2290e875156f">XEmacPs_BdRing::RunState</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Flag to indicate DMA is started </p>
<p>
Flag to indicate DMA is started
</div>
</div>
<a class="anchor" id="ae520dbbd110fe4e5f407d6d78066b35e"></a><!-- doxytag: member="XEmacPs_BdRing::Separation" ref="ae520dbbd110fe4e5f407d6d78066b35e" args="" -->
</div><p>
<a class="anchor" name="e520dbbd110fe4e5f407d6d78066b35e"></a><!-- doxytag: member="XEmacPs_BdRing::Separation" ref="e520dbbd110fe4e5f407d6d78066b35e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_x_emac_ps___bd_ring.html#ae520dbbd110fe4e5f407d6d78066b35e">XEmacPs_BdRing::Separation</a></td>
<td class="memname">u32 <a class="el" href="struct_x_emac_ps___bd_ring.html#e520dbbd110fe4e5f407d6d78066b35e">XEmacPs_BdRing::Separation</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Number of bytes between the starting address of adjacent BDs </p>
<p>
Number of bytes between the starting address of adjacent BDs
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="xemacps__bdring_8h.html">xemacps_bdring.h</a></li>
</ul>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="xemacps__bdring_8h.html">xemacps_bdring.h</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,37 +2,26 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: Member List
Member List
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>XEmacPs_Config Member List</h1>This is the complete list of members for <a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___config.html#a75341983ef63abc9073ebde466c1bdbf">BaseAddress</a></td><td><a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___config.html#ad78fa68d4dc04a7cbcc21381ba56b584">DeviceId</a></td><td><a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a></td><td></td></tr>
</table></div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>XEmacPs_Config Member List</h1>This is the complete list of members for <a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___config.html#75341983ef63abc9073ebde466c1bdbf">BaseAddress</a></td><td><a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_emac_ps___config.html#d78fa68d4dc04a7cbcc21381ba56b584">DeviceId</a></td><td><a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a></td><td></td></tr>
</table>Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,78 +2,69 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: XEmacPs_Config Struct Reference
XEmacPs_Config Struct Reference
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>XEmacPs_Config Struct Reference</h1><!-- doxytag: class="XEmacPs_Config" -->
<p><code>#include &lt;xemacps.h&gt;</code></p>
<p><a href="struct_x_emac_ps___config-members.html">List of all members.</a></p>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>XEmacPs_Config Struct Reference</h1><!-- doxytag: class="XEmacPs_Config" --><code>#include &lt;xemacps.h&gt;</code>
<p>
<a href="struct_x_emac_ps___config-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
This typedef contains configuration information for a device.
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u16&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___config.html#ad78fa68d4dc04a7cbcc21381ba56b584">DeviceId</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___config.html#a75341983ef63abc9073ebde466c1bdbf">BaseAddress</a></td></tr>
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u16&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___config.html#d78fa68d4dc04a7cbcc21381ba56b584">DeviceId</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_emac_ps___config.html#75341983ef63abc9073ebde466c1bdbf">BaseAddress</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>This typedef contains configuration information for a device. </p>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a75341983ef63abc9073ebde466c1bdbf"></a><!-- doxytag: member="XEmacPs_Config::BaseAddress" ref="a75341983ef63abc9073ebde466c1bdbf" args="" -->
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="75341983ef63abc9073ebde466c1bdbf"></a><!-- doxytag: member="XEmacPs_Config::BaseAddress" ref="75341983ef63abc9073ebde466c1bdbf" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_x_emac_ps___config.html#a75341983ef63abc9073ebde466c1bdbf">XEmacPs_Config::BaseAddress</a></td>
<td class="memname">u32 <a class="el" href="struct_x_emac_ps___config.html#75341983ef63abc9073ebde466c1bdbf">XEmacPs_Config::BaseAddress</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Physical base address of IPIF registers </p>
<p>
Physical base address of IPIF registers
</div>
</div>
<a class="anchor" id="ad78fa68d4dc04a7cbcc21381ba56b584"></a><!-- doxytag: member="XEmacPs_Config::DeviceId" ref="ad78fa68d4dc04a7cbcc21381ba56b584" args="" -->
</div><p>
<a class="anchor" name="d78fa68d4dc04a7cbcc21381ba56b584"></a><!-- doxytag: member="XEmacPs_Config::DeviceId" ref="d78fa68d4dc04a7cbcc21381ba56b584" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u16 <a class="el" href="struct_x_emac_ps___config.html#ad78fa68d4dc04a7cbcc21381ba56b584">XEmacPs_Config::DeviceId</a></td>
<td class="memname">u16 <a class="el" href="struct_x_emac_ps___config.html#d78fa68d4dc04a7cbcc21381ba56b584">XEmacPs_Config::DeviceId</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Unique ID of device </p>
<p>
Unique ID of device
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="xemacps_8h.html">xemacps.h</a></li>
</ul>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="xemacps_8h.html">xemacps.h</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -32,7 +32,7 @@ DIV.tabs A
float : left;
background : url("tab_r.gif") no-repeat right top;
border-bottom : 1px solid #84B0C7;
font-size : 80%;
font-size : x-small;
font-weight : bold;
text-decoration : none;
}
@ -57,7 +57,7 @@ DIV.tabs SPAN
white-space : nowrap;
}
DIV.tabs #MSearchBox
DIV.tabs INPUT
{
float : right;
display : inline;
@ -66,7 +66,7 @@ DIV.tabs #MSearchBox
DIV.tabs TD
{
font-size : 80%;
font-size : x-small;
font-weight : bold;
text-decoration : none;
}
@ -82,24 +82,21 @@ DIV.tabs A:hover SPAN
background-position: 0% -150px;
}
DIV.tabs LI.current A
DIV.tabs LI#current A
{
background-position: 100% -150px;
border-width : 0px;
}
DIV.tabs LI.current SPAN
DIV.tabs LI#current SPAN
{
background-position: 0% -150px;
padding-bottom : 6px;
}
DIV.navpath
DIV.nav
{
background : none;
border : none;
border-bottom : 1px solid #84B0C7;
text-align : center;
margin : 2px;
padding : 2px;
}

View file

@ -2,53 +2,56 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: xemacps.c File Reference
xemacps.c File Reference
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>xemacps.c File Reference</h1><code>#include &quot;<a class="el" href="xemacps_8h.html">xemacps.h</a>&quot;</code><br/>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps_8c.html#ab819378f6d145a165472ca566825462f">XEmacPs_StubHandler</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps_8c.html#a500aa2343a5a84ddd80bd52fb184f94f">XEmacPs_CfgInitialize</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, <a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a> *CfgPtr, u32 EffectiveAddress)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps_8c.html#abe875d0d136e28a166363d66dd7b7f27">XEmacPs_Start</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps_8c.html#af27b057022a2e97201f6d55d61d4a3da">XEmacPs_Stop</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps_8c.html#add5f487c873ef70ab8fda69b4ec3938e">XEmacPs_Reset</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr)</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>The <a class="el" href="struct_x_emac_ps.html">XEmacPs</a> driver. Functions in this file are the minimum required functions for this driver. See <a class="el" href="xemacps_8h.html">xemacps.h</a> for a detailed description of the driver.</p>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<h1>xemacps.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
The <a class="el" href="struct_x_emac_ps.html">XEmacPs</a> driver. Functions in this file are the minimum required functions for this driver. See <a class="el" href="xemacps_8h.html">xemacps.h</a> for a detailed description of the driver.<p>
<pre>
MODIFICATION HISTORY:</pre><pre> Ver Who Date Changes
MODIFICATION HISTORY:</pre><p>
<pre> Ver Who Date Changes
----- ---- -------- -------------------------------------------------------
1.00a wsy 01/10/10 First release
</pre> <hr/><h2>Function Documentation</h2>
<a class="anchor" id="a500aa2343a5a84ddd80bd52fb184f94f"></a><!-- doxytag: member="xemacps.c::XEmacPs_CfgInitialize" ref="a500aa2343a5a84ddd80bd52fb184f94f" args="(XEmacPs *InstancePtr, XEmacPs_Config *CfgPtr, u32 EffectiveAddress)" -->
</pre>
<p>
<code>#include &quot;<a class="el" href="xemacps_8h.html">xemacps.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps_8c.html#b819378f6d145a165472ca566825462f">XEmacPs_StubHandler</a> (void)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps_8c.html#500aa2343a5a84ddd80bd52fb184f94f">XEmacPs_CfgInitialize</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, <a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a> *CfgPtr, u32 EffectiveAddress)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps_8c.html#be875d0d136e28a166363d66dd7b7f27">XEmacPs_Start</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps_8c.html#f27b057022a2e97201f6d55d61d4a3da">XEmacPs_Stop</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps_8c.html#dd5f487c873ef70ab8fda69b4ec3938e">XEmacPs_Reset</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr)</td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="500aa2343a5a84ddd80bd52fb184f94f"></a><!-- doxytag: member="xemacps.c::XEmacPs_CfgInitialize" ref="500aa2343a5a84ddd80bd52fb184f94f" args="(XEmacPs *InstancePtr, XEmacPs_Config *CfgPtr, u32 EffectiveAddress)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacPs_CfgInitialize </td>
<td class="memname">int XEmacPs_CfgInitialize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
@ -68,162 +71,142 @@
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Initialize a specific <a class="el" href="struct_x_emac_ps.html">XEmacPs</a> instance/driver. The initialization entails:</p>
<ul>
<li>Initialize fields of the <a class="el" href="struct_x_emac_ps.html">XEmacPs</a> instance structure</li>
<li>Reset hardware and apply default options</li>
<li>Configure the DMA channels</li>
</ul>
<p>The PHY is setup independently from the device. Use the MII or whatever other interface may be present for setup.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Initialize a specific <a class="el" href="struct_x_emac_ps.html">XEmacPs</a> instance/driver. The initialization entails:<ul>
<li>Initialize fields of the <a class="el" href="struct_x_emac_ps.html">XEmacPs</a> instance structure</li><li>Reset hardware and apply default options</li><li>Configure the DMA channels</li></ul>
<p>
The PHY is setup independently from the device. Use the MII or whatever other interface may be present for setup.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>CfgPtr</em>&nbsp;</td><td>is the device configuration structure containing required hardware build data. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>EffectiveAddress</em>&nbsp;</td><td>is the base address of the device. If address translation is not utilized, this parameter can be passed in using CfgPtr-&gt;Config.BaseAddress to specify the physical base address.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if initialization was successful </li>
</ul>
<dl compact><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if initialization was successful </li></ul>
</dd></dl>
</div>
</div>
<a class="anchor" id="add5f487c873ef70ab8fda69b4ec3938e"></a><!-- doxytag: member="xemacps.c::XEmacPs_Reset" ref="add5f487c873ef70ab8fda69b4ec3938e" args="(XEmacPs *InstancePtr)" -->
</div><p>
<a class="anchor" name="dd5f487c873ef70ab8fda69b4ec3938e"></a><!-- doxytag: member="xemacps.c::XEmacPs_Reset" ref="dd5f487c873ef70ab8fda69b4ec3938e" args="(XEmacPs *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XEmacPs_Reset </td>
<td class="memname">void XEmacPs_Reset </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em></td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Perform a graceful reset of the Ethernet MAC. Resets the DMA channels, the transmitter, and the receiver.</p>
<p>Steps to reset</p>
<ul>
<li>Stops transmit and receive channels</li>
<li>Stops DMA</li>
<li>Configure transmit and receive buffer size to default</li>
<li>Clear transmit and receive status register and counters</li>
<li>Clear all interrupt sources</li>
<li>Clear phy (if there is any previously detected) address</li>
<li>Clear MAC addresses (1-4) as well as Type IDs and hash value</li>
</ul>
<p>All options are placed in their default state. Any frames in the descriptor lists will remain in the lists. The side effect of doing this is that after a reset and following a restart of the device, frames were in the list before the reset may be transmitted or received.</p>
<p>The upper layer software is responsible for re-configuring (if necessary) and restarting the MAC after the reset. Note also that driver statistics are not cleared on reset. It is up to the upper layer software to clear the statistics if needed.</p>
<p>When a reset is required, the driver notifies the upper layer software of this need through the ErrorHandler callback and specific status codes. The upper layer software is responsible for calling this Reset function and then re-configuring the device.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Perform a graceful reset of the Ethernet MAC. Resets the DMA channels, the transmitter, and the receiver.<p>
Steps to reset<ul>
<li>Stops transmit and receive channels</li><li>Stops DMA</li><li>Configure transmit and receive buffer size to default</li><li>Clear transmit and receive status register and counters</li><li>Clear all interrupt sources</li><li>Clear phy (if there is any previously detected) address</li><li>Clear MAC addresses (1-4) as well as Type IDs and hash value</li></ul>
<p>
All options are placed in their default state. Any frames in the descriptor lists will remain in the lists. The side effect of doing this is that after a reset and following a restart of the device, frames were in the list before the reset may be transmitted or received.<p>
The upper layer software is responsible for re-configuring (if necessary) and restarting the MAC after the reset. Note also that driver statistics are not cleared on reset. It is up to the upper layer software to clear the statistics if needed.<p>
When a reset is required, the driver notifies the upper layer software of this need through the ErrorHandler callback and specific status codes. The upper layer software is responsible for calling this Reset function and then re-configuring the device.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="abe875d0d136e28a166363d66dd7b7f27"></a><!-- doxytag: member="xemacps.c::XEmacPs_Start" ref="abe875d0d136e28a166363d66dd7b7f27" args="(XEmacPs *InstancePtr)" -->
</div><p>
<a class="anchor" name="be875d0d136e28a166363d66dd7b7f27"></a><!-- doxytag: member="xemacps.c::XEmacPs_Start" ref="be875d0d136e28a166363d66dd7b7f27" args="(XEmacPs *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XEmacPs_Start </td>
<td class="memname">void XEmacPs_Start </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em></td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Start the Ethernet controller as follows:</p>
<ul>
<li>Enable transmitter if XTE_TRANSMIT_ENABLE_OPTION is set</li>
<li>Enable receiver if XTE_RECEIVER_ENABLE_OPTION is set</li>
<li>Start the SG DMA send and receive channels and enable the device interrupt</li>
</ul>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Start the Ethernet controller as follows:<ul>
<li>Enable transmitter if XTE_TRANSMIT_ENABLE_OPTION is set</li><li>Enable receiver if XTE_RECEIVER_ENABLE_OPTION is set</li><li>Start the SG DMA send and receive channels and enable the device interrupt</li></ul>
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>N/A</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Hardware is configured with scatter-gather DMA, the driver expects to start the scatter-gather channels and expects that the user has previously set up the buffer descriptor lists.</dd></dl>
<p>This function makes use of internal resources that are shared between the Start, Stop, and Set/ClearOptions functions. So if one task might be setting device options while another is trying to start the device, the user is required to provide protection of this shared data (typically using a semaphore).</p>
<p>This function must not be preempted by an interrupt that may service the device. </p>
<dl compact><dt><b>Returns:</b></dt><dd>N/A</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>Hardware is configured with scatter-gather DMA, the driver expects to start the scatter-gather channels and expects that the user has previously set up the buffer descriptor lists.</dd></dl>
This function makes use of internal resources that are shared between the Start, Stop, and Set/ClearOptions functions. So if one task might be setting device options while another is trying to start the device, the user is required to provide protection of this shared data (typically using a semaphore).<p>
This function must not be preempted by an interrupt that may service the device.
</div>
</div>
<a class="anchor" id="af27b057022a2e97201f6d55d61d4a3da"></a><!-- doxytag: member="xemacps.c::XEmacPs_Stop" ref="af27b057022a2e97201f6d55d61d4a3da" args="(XEmacPs *InstancePtr)" -->
</div><p>
<a class="anchor" name="f27b057022a2e97201f6d55d61d4a3da"></a><!-- doxytag: member="xemacps.c::XEmacPs_Stop" ref="f27b057022a2e97201f6d55d61d4a3da" args="(XEmacPs *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XEmacPs_Stop </td>
<td class="memname">void XEmacPs_Stop </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em></td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gracefully stop the Ethernet MAC as follows:</p>
<ul>
<li>Disable all interrupts from this device</li>
<li>Stop DMA channels</li>
<li>Disable the tansmitter and receiver</li>
</ul>
<p>Device options currently in effect are not changed.</p>
<p>This function will disable all interrupts. Default interrupts settings that had been enabled will be restored when <a class="el" href="xemacps_8c.html#abe875d0d136e28a166363d66dd7b7f27">XEmacPs_Start()</a> is called.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Gracefully stop the Ethernet MAC as follows:<ul>
<li>Disable all interrupts from this device</li><li>Stop DMA channels</li><li>Disable the tansmitter and receiver</li></ul>
<p>
Device options currently in effect are not changed.<p>
This function will disable all interrupts. Default interrupts settings that had been enabled will be restored when <a class="el" href="xemacps_8c.html#be875d0d136e28a166363d66dd7b7f27">XEmacPs_Start()</a> is called.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on.</td></tr>
</table>
</dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>This function makes use of internal resources that are shared between the Start, Stop, SetOptions, and ClearOptions functions. So if one task might be setting device options while another is trying to start the device, the user is required to provide protection of this shared data (typically using a semaphore).</dd></dl>
<p>Stopping the DMA channels causes this function to block until the DMA operation is complete. </p>
<dl compact><dt><b>Note:</b></dt><dd>This function makes use of internal resources that are shared between the Start, Stop, SetOptions, and ClearOptions functions. So if one task might be setting device options while another is trying to start the device, the user is required to provide protection of this shared data (typically using a semaphore).</dd></dl>
Stopping the DMA channels causes this function to block until the DMA operation is complete.
</div>
</div>
<a class="anchor" id="ab819378f6d145a165472ca566825462f"></a><!-- doxytag: member="xemacps.c::XEmacPs_StubHandler" ref="ab819378f6d145a165472ca566825462f" args="(void)" -->
</div><p>
<a class="anchor" name="b819378f6d145a165472ca566825462f"></a><!-- doxytag: member="xemacps.c::XEmacPs_StubHandler" ref="b819378f6d145a165472ca566825462f" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XEmacPs_StubHandler </td>
<td class="memname">void XEmacPs_StubHandler </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"></td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This is a stub for the asynchronous callbacks. The stub is here in case the upper layer forgot to set the handler(s). On initialization, all handlers are set to this callback. It is considered an error for this handler to be invoked. </p>
<p>
This is a stub for the asynchronous callbacks. The stub is here in case the upper layer forgot to set the handler(s). On initialization, all handlers are set to this callback. It is considered an error for this handler to be invoked.
</div>
</div>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
</div><p>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,57 +2,30 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: xemacps_bdring.c File Reference
xemacps_bdring.c File Reference
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>xemacps_bdring.c File Reference</h1><code>#include &quot;xstatus.h&quot;</code><br/>
<code>#include &quot;xil_cache.h&quot;</code><br/>
<code>#include &quot;<a class="el" href="xemacps__hw_8h.html">xemacps_hw.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="xemacps__bd_8h.html">xemacps_bd.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="xemacps__bdring_8h.html">xemacps_bdring.h</a>&quot;</code><br/>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#afeea1d6998cfa1faf095d24c812fd488">XEMACPS_PHYS_TO_VIRT</a>(BdPtr)&nbsp;&nbsp;&nbsp;((u32)BdPtr + (RingPtr-&gt;BaseBdAddr - RingPtr-&gt;PhysBaseAddr))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#a9d86c1051c7e07c798735063a0701a96">XEMACPS_VIRT_TO_PHYS</a>(BdPtr)&nbsp;&nbsp;&nbsp;((u32)BdPtr - (RingPtr-&gt;BaseBdAddr - RingPtr-&gt;PhysBaseAddr))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#aa6551b834fb32a13a7663317f0409a40">XEMACPS_RING_SEEKAHEAD</a>(RingPtr, BdPtr, NumBd)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#aea754098f8fb745eee03008e9935d262">XEMACPS_RING_SEEKBACK</a>(RingPtr, BdPtr, NumBd)</td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#a1b6f53633ad6466e00391274d182fc6b">XEmacPs_BdRingCreate</a> (<a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *RingPtr, u32 PhysAddr, u32 VirtAddr, u32 Alignment, unsigned BdCount)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#a270fe8d08e62a06b9a3fd8ed53a72ac5">XEmacPs_BdRingClone</a> (<a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *RingPtr, <a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *SrcBdPtr, u8 Direction)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#a6d7d4a8a571956b6ddef55307f3b2c7b">XEmacPs_BdRingAlloc</a> (<a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *RingPtr, unsigned NumBd, <a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> **BdSetPtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#a21b6448036402f452539e3f17a36e915">XEmacPs_BdRingUnAlloc</a> (<a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *RingPtr, unsigned NumBd, <a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *BdSetPtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#adef8169a514444cbb7e615d6e11b05a3">XEmacPs_BdRingToHw</a> (<a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *RingPtr, unsigned NumBd, <a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *BdSetPtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#a4079f7078273f2f0082992362cb796f4">XEmacPs_BdRingFromHwTx</a> (<a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *RingPtr, unsigned BdLimit, <a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> **BdSetPtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#a48529a85670d455aba4cce4cc7887b6b">XEmacPs_BdRingFromHwRx</a> (<a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *RingPtr, unsigned BdLimit, <a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> **BdSetPtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#a7bb4a77d78a9111d56b6bb8dacf6926d">XEmacPs_BdRingFree</a> (<a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *RingPtr, unsigned NumBd, <a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *BdSetPtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#aacabf15bb439fc0fd795a5cb8358ce27">XEmacPs_BdRingCheck</a> (<a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *RingPtr, u8 Direction)</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>This file implements buffer descriptor ring related functions.</p>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<h1>xemacps_bdring.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
This file implements buffer descriptor ring related functions.<p>
<pre>
MODIFICATION HISTORY:</pre><pre> Ver Who Date Changes
MODIFICATION HISTORY:</pre><p>
<pre> Ver Who Date Changes
----- ---- -------- -------------------------------------------------------
1.00a wsy 01/10/10 First release
1.00a asa 11/21/11 The function XEmacPs_BdRingFromHwTx is modified.
@ -66,50 +39,88 @@
1.05a asa 09/23/13 Cache operations on BDs are not required and hence
removed. It is expected that all BDs are allocated in
from uncached area. Fix for CR #663885.
</pre> <hr/><h2>Define Documentation</h2>
<a class="anchor" id="afeea1d6998cfa1faf095d24c812fd488"></a><!-- doxytag: member="xemacps_bdring.c::XEMACPS_PHYS_TO_VIRT" ref="afeea1d6998cfa1faf095d24c812fd488" args="(BdPtr)" -->
</pre>
<p>
<code>#include &quot;xstatus.h&quot;</code><br>
<code>#include &quot;xil_cache.h&quot;</code><br>
<code>#include &quot;<a class="el" href="xemacps__hw_8h.html">xemacps_hw.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="xemacps__bd_8h.html">xemacps_bd.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="xemacps__bdring_8h.html">xemacps_bdring.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#feea1d6998cfa1faf095d24c812fd488">XEMACPS_PHYS_TO_VIRT</a>(BdPtr)&nbsp;&nbsp;&nbsp;((u32)BdPtr + (RingPtr-&gt;BaseBdAddr - RingPtr-&gt;PhysBaseAddr))</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#9d86c1051c7e07c798735063a0701a96">XEMACPS_VIRT_TO_PHYS</a>(BdPtr)&nbsp;&nbsp;&nbsp;((u32)BdPtr - (RingPtr-&gt;BaseBdAddr - RingPtr-&gt;PhysBaseAddr))</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#a6551b834fb32a13a7663317f0409a40">XEMACPS_RING_SEEKAHEAD</a>(RingPtr, BdPtr, NumBd)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#ea754098f8fb745eee03008e9935d262">XEMACPS_RING_SEEKBACK</a>(RingPtr, BdPtr, NumBd)</td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#1b6f53633ad6466e00391274d182fc6b">XEmacPs_BdRingCreate</a> (<a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *RingPtr, u32 PhysAddr, u32 VirtAddr, u32 Alignment, unsigned BdCount)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#270fe8d08e62a06b9a3fd8ed53a72ac5">XEmacPs_BdRingClone</a> (<a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *RingPtr, <a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *SrcBdPtr, u8 Direction)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#6d7d4a8a571956b6ddef55307f3b2c7b">XEmacPs_BdRingAlloc</a> (<a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *RingPtr, unsigned NumBd, <a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> **BdSetPtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#21b6448036402f452539e3f17a36e915">XEmacPs_BdRingUnAlloc</a> (<a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *RingPtr, unsigned NumBd, <a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *BdSetPtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#def8169a514444cbb7e615d6e11b05a3">XEmacPs_BdRingToHw</a> (<a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *RingPtr, unsigned NumBd, <a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *BdSetPtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#4079f7078273f2f0082992362cb796f4">XEmacPs_BdRingFromHwTx</a> (<a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *RingPtr, unsigned BdLimit, <a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> **BdSetPtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#48529a85670d455aba4cce4cc7887b6b">XEmacPs_BdRingFromHwRx</a> (<a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *RingPtr, unsigned BdLimit, <a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> **BdSetPtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#7bb4a77d78a9111d56b6bb8dacf6926d">XEmacPs_BdRingFree</a> (<a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *RingPtr, unsigned NumBd, <a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *BdSetPtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__bdring_8c.html#acabf15bb439fc0fd795a5cb8358ce27">XEmacPs_BdRingCheck</a> (<a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *RingPtr, u8 Direction)</td></tr>
</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="feea1d6998cfa1faf095d24c812fd488"></a><!-- doxytag: member="xemacps_bdring.c::XEMACPS_PHYS_TO_VIRT" ref="feea1d6998cfa1faf095d24c812fd488" args="(BdPtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XEMACPS_PHYS_TO_VIRT</td>
<td class="memname">#define XEMACPS_PHYS_TO_VIRT </td>
<td>(</td>
<td class="paramtype">BdPtr&nbsp;</td>
<td class="paramname"></td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;((u32)BdPtr + (RingPtr-&gt;BaseBdAddr - RingPtr-&gt;PhysBaseAddr))</td>
<td width="100%">&nbsp;&nbsp;&nbsp;((u32)BdPtr + (RingPtr-&gt;BaseBdAddr - RingPtr-&gt;PhysBaseAddr))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div>
<a class="anchor" id="aa6551b834fb32a13a7663317f0409a40"></a><!-- doxytag: member="xemacps_bdring.c::XEMACPS_RING_SEEKAHEAD" ref="aa6551b834fb32a13a7663317f0409a40" args="(RingPtr, BdPtr, NumBd)" -->
</div><p>
<a class="anchor" name="a6551b834fb32a13a7663317f0409a40"></a><!-- doxytag: member="xemacps_bdring.c::XEMACPS_RING_SEEKAHEAD" ref="a6551b834fb32a13a7663317f0409a40" args="(RingPtr, BdPtr, NumBd)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XEMACPS_RING_SEEKAHEAD</td>
<td class="memname">#define XEMACPS_RING_SEEKAHEAD </td>
<td>(</td>
<td class="paramtype">RingPtr, </td>
</tr>
<tr>
<td class="paramtype">RingPtr, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">BdPtr, </td>
</tr>
<tr>
<td class="paramtype">BdPtr, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NumBd&nbsp;</td>
<td class="paramname"></td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Value:</b><div class="fragment"><pre class="fragment">{ \
u32 Addr = (u32)BdPtr; \
\
@ -119,36 +130,34 @@
Addr -= (RingPtr)-&gt;Length; \
} \
\
BdPtr = (<a class="code" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a>*)Addr; \
BdPtr = (<a class="code" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a>*)Addr; \
}
</pre></div>
</div>
</div>
<a class="anchor" id="aea754098f8fb745eee03008e9935d262"></a><!-- doxytag: member="xemacps_bdring.c::XEMACPS_RING_SEEKBACK" ref="aea754098f8fb745eee03008e9935d262" args="(RingPtr, BdPtr, NumBd)" -->
</div><p>
<a class="anchor" name="ea754098f8fb745eee03008e9935d262"></a><!-- doxytag: member="xemacps_bdring.c::XEMACPS_RING_SEEKBACK" ref="ea754098f8fb745eee03008e9935d262" args="(RingPtr, BdPtr, NumBd)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XEMACPS_RING_SEEKBACK</td>
<td class="memname">#define XEMACPS_RING_SEEKBACK </td>
<td>(</td>
<td class="paramtype">RingPtr, </td>
</tr>
<tr>
<td class="paramtype">RingPtr, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">BdPtr, </td>
</tr>
<tr>
<td class="paramtype">BdPtr, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NumBd&nbsp;</td>
<td class="paramname"></td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Value:</b><div class="fragment"><pre class="fragment">{ \
u32 Addr = (u32)BdPtr; \
\
@ -158,36 +167,38 @@
Addr += (RingPtr)-&gt;Length; \
} \
\
BdPtr = (<a class="code" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a>*)Addr; \
BdPtr = (<a class="code" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a>*)Addr; \
}
</pre></div>
</div>
</div>
<a class="anchor" id="a9d86c1051c7e07c798735063a0701a96"></a><!-- doxytag: member="xemacps_bdring.c::XEMACPS_VIRT_TO_PHYS" ref="a9d86c1051c7e07c798735063a0701a96" args="(BdPtr)" -->
</div><p>
<a class="anchor" name="9d86c1051c7e07c798735063a0701a96"></a><!-- doxytag: member="xemacps_bdring.c::XEMACPS_VIRT_TO_PHYS" ref="9d86c1051c7e07c798735063a0701a96" args="(BdPtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XEMACPS_VIRT_TO_PHYS</td>
<td class="memname">#define XEMACPS_VIRT_TO_PHYS </td>
<td>(</td>
<td class="paramtype">BdPtr&nbsp;</td>
<td class="paramname"></td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;((u32)BdPtr - (RingPtr-&gt;BaseBdAddr - RingPtr-&gt;PhysBaseAddr))</td>
<td width="100%">&nbsp;&nbsp;&nbsp;((u32)BdPtr - (RingPtr-&gt;BaseBdAddr - RingPtr-&gt;PhysBaseAddr))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a6d7d4a8a571956b6ddef55307f3b2c7b"></a><!-- doxytag: member="xemacps_bdring.c::XEmacPs_BdRingAlloc" ref="a6d7d4a8a571956b6ddef55307f3b2c7b" args="(XEmacPs_BdRing *RingPtr, unsigned NumBd, XEmacPs_Bd **BdSetPtr)" -->
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="6d7d4a8a571956b6ddef55307f3b2c7b"></a><!-- doxytag: member="xemacps_bdring.c::XEmacPs_BdRingAlloc" ref="6d7d4a8a571956b6ddef55307f3b2c7b" args="(XEmacPs_BdRing *RingPtr, unsigned NumBd, XEmacPs_Bd **BdSetPtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacPs_BdRingAlloc </td>
<td class="memname">int XEmacPs_BdRingAlloc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *&nbsp;</td>
<td class="paramname"> <em>RingPtr</em>, </td>
@ -201,69 +212,74 @@
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> **&nbsp;</td>
<td class="paramtype"><a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> **&nbsp;</td>
<td class="paramname"> <em>BdSetPtr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reserve locations in the BD list. The set of returned BDs may be modified in preparation for future DMA transaction(s). Once the BDs are ready to be submitted to hardware, the user must call <a class="el" href="xemacps__bdring_8c.html#adef8169a514444cbb7e615d6e11b05a3">XEmacPs_BdRingToHw()</a> in the same order which they were allocated here. Example:</p>
<p>
Reserve locations in the BD list. The set of returned BDs may be modified in preparation for future DMA transaction(s). Once the BDs are ready to be submitted to hardware, the user must call <a class="el" href="xemacps__bdring_8c.html#def8169a514444cbb7e615d6e11b05a3">XEmacPs_BdRingToHw()</a> in the same order which they were allocated here. Example:<p>
<pre>
NumBd = 2;
Status = XEmacPs_BdRingAlloc(MyRingPtr, NumBd, &amp;MyBdSet);</pre><pre> if (Status != XST_SUCCESS)
Status = XEmacPs_BdRingAlloc(MyRingPtr, NumBd, &amp;MyBdSet);</pre><p>
<pre> if (Status != XST_SUCCESS)
{
// Not enough BDs available for the request
}</pre><pre> CurBd = MyBdSet;
}</pre><p>
<pre> CurBd = MyBdSet;
for (i=0; i&lt;NumBd; i++)
{
// Prepare CurBd.....</pre><pre> // Onto next BD
CurBd = <a class="el" href="xemacps__bdring_8h.html#a78e691ca1e87aca56ebead6d6b6057a4">XEmacPs_BdRingNext(MyRingPtr, CurBd)</a>;
}</pre><pre> // Give list to hardware
// Prepare CurBd.....</pre><p>
<pre> // Onto next BD
CurBd = <a class="el" href="xemacps__bdring_8h.html#78e691ca1e87aca56ebead6d6b6057a4">XEmacPs_BdRingNext(MyRingPtr, CurBd)</a>;
}</pre><p>
<pre> // Give list to hardware
Status = XEmacPs_BdRingToHw(MyRingPtr, NumBd, MyBdSet);
</pre><p>A more advanced use of this function may allocate multiple sets of BDs. They must be allocated and given to hardware in the correct sequence: </p>
<pre>
</pre><p>
A more advanced use of this function may allocate multiple sets of BDs. They must be allocated and given to hardware in the correct sequence: <pre>
// Legal
XEmacPs_BdRingAlloc(MyRingPtr, NumBd1, &amp;MySet1);
XEmacPs_BdRingToHw(MyRingPtr, NumBd1, MySet1);</pre><pre> // Legal
XEmacPs_BdRingToHw(MyRingPtr, NumBd1, MySet1);</pre><p>
<pre> // Legal
XEmacPs_BdRingAlloc(MyRingPtr, NumBd1, &amp;MySet1);
XEmacPs_BdRingAlloc(MyRingPtr, NumBd2, &amp;MySet2);
XEmacPs_BdRingToHw(MyRingPtr, NumBd1, MySet1);
XEmacPs_BdRingToHw(MyRingPtr, NumBd2, MySet2);</pre><pre> // Not legal
XEmacPs_BdRingToHw(MyRingPtr, NumBd2, MySet2);</pre><p>
<pre> // Not legal
XEmacPs_BdRingAlloc(MyRingPtr, NumBd1, &amp;MySet1);
XEmacPs_BdRingAlloc(MyRingPtr, NumBd2, &amp;MySet2);
XEmacPs_BdRingToHw(MyRingPtr, NumBd2, MySet2);
XEmacPs_BdRingToHw(MyRingPtr, NumBd1, MySet1);
</pre><p>Use the API defined in <a class="el" href="xemacps__bd_8h.html">xemacps_bd.h</a> to modify individual BDs. Traversal of the BD set can be done using <a class="el" href="xemacps__bdring_8h.html#a78e691ca1e87aca56ebead6d6b6057a4">XEmacPs_BdRingNext()</a> and <a class="el" href="xemacps__bdring_8h.html#ade23035ee29807c56ca61ab241d4ba0c">XEmacPs_BdRingPrev()</a>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
</pre><p>
Use the API defined in <a class="el" href="xemacps__bd_8h.html">xemacps_bd.h</a> to modify individual BDs. Traversal of the BD set can be done using <a class="el" href="xemacps__bdring_8h.html#78e691ca1e87aca56ebead6d6b6057a4">XEmacPs_BdRingNext()</a> and <a class="el" href="xemacps__bdring_8h.html#de23035ee29807c56ca61ab241d4ba0c">XEmacPs_BdRingPrev()</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>RingPtr</em>&nbsp;</td><td>is a pointer to the BD ring instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>NumBd</em>&nbsp;</td><td>is the number of BDs to allocate </td></tr>
<tr><td valign="top"></td><td valign="top"><em>BdSetPtr</em>&nbsp;</td><td>is an output parameter, it points to the first BD available for modification.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the requested number of BDs was returned in the BdSetPtr parameter.</li>
<li>XST_FAILURE if there were not enough free BDs to satisfy the request.</li>
</ul>
<dl compact><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the requested number of BDs was returned in the BdSetPtr parameter.</li><li>XST_FAILURE if there were not enough free BDs to satisfy the request.</li></ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>This function should not be preempted by another XEmacPs_Bd function call that modifies the BD space. It is the caller's responsibility to provide a mutual exclusion mechanism.</dd>
<dd>
<dl compact><dt><b>Note:</b></dt><dd>This function should not be preempted by another XEmacPs_Bd function call that modifies the BD space. It is the caller's responsibility to provide a mutual exclusion mechanism.<p>
Do not modify more BDs than the number requested with the NumBd parameter. Doing so will lead to data corruption and system instability. </dd></dl>
</div>
</div>
<a class="anchor" id="aacabf15bb439fc0fd795a5cb8358ce27"></a><!-- doxytag: member="xemacps_bdring.c::XEmacPs_BdRingCheck" ref="aacabf15bb439fc0fd795a5cb8358ce27" args="(XEmacPs_BdRing *RingPtr, u8 Direction)" -->
</div><p>
<a class="anchor" name="acabf15bb439fc0fd795a5cb8358ce27"></a><!-- doxytag: member="xemacps_bdring.c::XEmacPs_BdRingCheck" ref="acabf15bb439fc0fd795a5cb8358ce27" args="(XEmacPs_BdRing *RingPtr, u8 Direction)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacPs_BdRingCheck </td>
<td class="memname">int XEmacPs_BdRingCheck </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *&nbsp;</td>
<td class="paramname"> <em>RingPtr</em>, </td>
@ -277,42 +293,37 @@ Do not modify more BDs than the number requested with the NumBd parameter. Doing
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Check the internal data structures of the BD ring for the provided channel. The following checks are made:</p>
<p>
Check the internal data structures of the BD ring for the provided channel. The following checks are made:<p>
<ul>
<li>Is the BD ring linked correctly in physical address space.</li>
<li>Do the internal pointers point to BDs in the ring.</li>
<li>Do the internal counters add up.</li>
</ul>
<p>The channel should be stopped prior to calling this function.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<li>Is the BD ring linked correctly in physical address space.</li><li>Do the internal pointers point to BDs in the ring.</li><li>Do the internal counters add up.</li></ul>
<p>
The channel should be stopped prior to calling this function.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>RingPtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Direction</em>&nbsp;</td><td>is either XEMACPS_SEND or XEMACPS_RECV that indicates which direction.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the set of BDs was freed.</li>
<li>XST_DMA_SG_NO_LIST if the list has not been created.</li>
<li>XST_IS_STARTED if the channel is not stopped.</li>
<li>XST_DMA_SG_LIST_ERROR if a problem is found with the internal data structures. If this value is returned, the channel should be reset to avoid data corruption or system instability.</li>
</ul>
<dl compact><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the set of BDs was freed.</li><li>XST_DMA_SG_NO_LIST if the list has not been created.</li><li>XST_IS_STARTED if the channel is not stopped.</li><li>XST_DMA_SG_LIST_ERROR if a problem is found with the internal data structures. If this value is returned, the channel should be reset to avoid data corruption or system instability.</li></ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>This function should not be preempted by another XEmacPs_Bd function call that modifies the BD space. It is the caller's responsibility to provide a mutual exclusion mechanism. </dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>This function should not be preempted by another XEmacPs_Bd function call that modifies the BD space. It is the caller's responsibility to provide a mutual exclusion mechanism. </dd></dl>
</div>
</div>
<a class="anchor" id="a270fe8d08e62a06b9a3fd8ed53a72ac5"></a><!-- doxytag: member="xemacps_bdring.c::XEmacPs_BdRingClone" ref="a270fe8d08e62a06b9a3fd8ed53a72ac5" args="(XEmacPs_BdRing *RingPtr, XEmacPs_Bd *SrcBdPtr, u8 Direction)" -->
</div><p>
<a class="anchor" name="270fe8d08e62a06b9a3fd8ed53a72ac5"></a><!-- doxytag: member="xemacps_bdring.c::XEmacPs_BdRingClone" ref="270fe8d08e62a06b9a3fd8ed53a72ac5" args="(XEmacPs_BdRing *RingPtr, XEmacPs_Bd *SrcBdPtr, u8 Direction)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacPs_BdRingClone </td>
<td class="memname">int XEmacPs_BdRingClone </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *&nbsp;</td>
<td class="paramname"> <em>RingPtr</em>, </td>
@ -320,7 +331,7 @@ Do not modify more BDs than the number requested with the NumBd parameter. Doing
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *&nbsp;</td>
<td class="paramtype"><a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *&nbsp;</td>
<td class="paramname"> <em>SrcBdPtr</em>, </td>
</tr>
<tr>
@ -332,37 +343,34 @@ Do not modify more BDs than the number requested with the NumBd parameter. Doing
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Clone the given BD into every BD in the list. every field of the source BD is replicated in every BD of the list.</p>
<p>This function can be called only when all BDs are in the free group such as they are immediately after initialization with <a class="el" href="xemacps__bdring_8c.html#a1b6f53633ad6466e00391274d182fc6b">XEmacPs_BdRingCreate()</a>. This prevents modification of BDs while they are in use by hardware or the user.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Clone the given BD into every BD in the list. every field of the source BD is replicated in every BD of the list.<p>
This function can be called only when all BDs are in the free group such as they are immediately after initialization with <a class="el" href="xemacps__bdring_8c.html#1b6f53633ad6466e00391274d182fc6b">XEmacPs_BdRingCreate()</a>. This prevents modification of BDs while they are in use by hardware or the user.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>RingPtr</em>&nbsp;</td><td>is the pointer of BD ring instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>SrcBdPtr</em>&nbsp;</td><td>is the source BD template to be cloned into the list. This BD will be modified. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Direction</em>&nbsp;</td><td>is either XEMACPS_SEND or XEMACPS_RECV that indicates which direction.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the list was modified.</li>
<li>XST_DMA_SG_NO_LIST if a list has not been created.</li>
<li>XST_DMA_SG_LIST_ERROR if some of the BDs in this channel are under hardware or user control.</li>
<li>XST_DEVICE_IS_STARTED if the DMA channel has not been stopped. </li>
</ul>
<dl compact><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the list was modified.</li><li>XST_DMA_SG_NO_LIST if a list has not been created.</li><li>XST_DMA_SG_LIST_ERROR if some of the BDs in this channel are under hardware or user control.</li><li>XST_DEVICE_IS_STARTED if the DMA channel has not been stopped. </li></ul>
</dd></dl>
</div>
</div>
<a class="anchor" id="a1b6f53633ad6466e00391274d182fc6b"></a><!-- doxytag: member="xemacps_bdring.c::XEmacPs_BdRingCreate" ref="a1b6f53633ad6466e00391274d182fc6b" args="(XEmacPs_BdRing *RingPtr, u32 PhysAddr, u32 VirtAddr, u32 Alignment, unsigned BdCount)" -->
</div><p>
<a class="anchor" name="1b6f53633ad6466e00391274d182fc6b"></a><!-- doxytag: member="xemacps_bdring.c::XEmacPs_BdRingCreate" ref="1b6f53633ad6466e00391274d182fc6b" args="(XEmacPs_BdRing *RingPtr, u32 PhysAddr, u32 VirtAddr, u32 Alignment, unsigned BdCount)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacPs_BdRingCreate </td>
<td class="memname">int XEmacPs_BdRingCreate </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *&nbsp;</td>
<td class="paramname"> <em>RingPtr</em>, </td>
@ -394,13 +402,15 @@ Do not modify more BDs than the number requested with the NumBd parameter. Doing
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Using a memory segment allocated by the caller, create and setup the BD list for the given DMA channel.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Using a memory segment allocated by the caller, create and setup the BD list for the given DMA channel.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>RingPtr</em>&nbsp;</td><td>is the instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>PhysAddr</em>&nbsp;</td><td>is the physical base address of user memory region. </td></tr>
@ -408,25 +418,21 @@ Do not modify more BDs than the number requested with the NumBd parameter. Doing
<tr><td valign="top"></td><td valign="top"><em>Alignment</em>&nbsp;</td><td>governs the byte alignment of individual BDs. This function will enforce a minimum alignment of 4 bytes with no maximum as long as it is specified as a power of 2. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>BdCount</em>&nbsp;</td><td>is the number of BDs to setup in the user memory region. It is assumed the region is large enough to contain the BDs.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
<dl compact><dt><b>Returns:</b></dt><dd></dd></dl>
<ul>
<li>XST_SUCCESS if initialization was successful</li>
<li>XST_NO_FEATURE if the provided instance is a non DMA type channel.</li>
<li>XST_INVALID_PARAM under any of the following conditions: 1) PhysAddr and/or VirtAddr are not aligned to the given Alignment parameter; 2) Alignment parameter does not meet minimum requirements or is not a power of 2 value; 3) BdCount is 0.</li>
<li>XST_DMA_SG_LIST_ERROR if the memory segment containing the list spans over address 0x00000000 in virtual address space.</li>
</ul>
<dl class="note"><dt><b>Note:</b></dt><dd>Make sure to pass in the right alignment value. </dd></dl>
<li>XST_SUCCESS if initialization was successful</li><li>XST_NO_FEATURE if the provided instance is a non DMA type channel.</li><li>XST_INVALID_PARAM under any of the following conditions: 1) PhysAddr and/or VirtAddr are not aligned to the given Alignment parameter; 2) Alignment parameter does not meet minimum requirements or is not a power of 2 value; 3) BdCount is 0.</li><li>XST_DMA_SG_LIST_ERROR if the memory segment containing the list spans over address 0x00000000 in virtual address space.</li></ul>
<p>
<dl compact><dt><b>Note:</b></dt><dd>Make sure to pass in the right alignment value. </dd></dl>
</div>
</div>
<a class="anchor" id="a7bb4a77d78a9111d56b6bb8dacf6926d"></a><!-- doxytag: member="xemacps_bdring.c::XEmacPs_BdRingFree" ref="a7bb4a77d78a9111d56b6bb8dacf6926d" args="(XEmacPs_BdRing *RingPtr, unsigned NumBd, XEmacPs_Bd *BdSetPtr)" -->
</div><p>
<a class="anchor" name="7bb4a77d78a9111d56b6bb8dacf6926d"></a><!-- doxytag: member="xemacps_bdring.c::XEmacPs_BdRingFree" ref="7bb4a77d78a9111d56b6bb8dacf6926d" args="(XEmacPs_BdRing *RingPtr, unsigned NumBd, XEmacPs_Bd *BdSetPtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacPs_BdRingFree </td>
<td class="memname">int XEmacPs_BdRingFree </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *&nbsp;</td>
<td class="paramname"> <em>RingPtr</em>, </td>
@ -440,41 +446,40 @@ Do not modify more BDs than the number requested with the NumBd parameter. Doing
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *&nbsp;</td>
<td class="paramtype"><a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *&nbsp;</td>
<td class="paramname"> <em>BdSetPtr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Frees a set of BDs that had been previously retrieved with XEmacPs_BdRingFromHw().</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Frees a set of BDs that had been previously retrieved with XEmacPs_BdRingFromHw().<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>RingPtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>NumBd</em>&nbsp;</td><td>is the number of BDs to free. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>BdSetPtr</em>&nbsp;</td><td>is the head of a list of BDs returned by XEmacPs_BdRingFromHw().</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the set of BDs was freed.</li>
<li>XST_DMA_SG_LIST_ERROR if this function was called out of sequence with XEmacPs_BdRingFromHw().</li>
</ul>
<dl compact><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the set of BDs was freed.</li><li>XST_DMA_SG_LIST_ERROR if this function was called out of sequence with XEmacPs_BdRingFromHw().</li></ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>This function should not be preempted by another XEmacPs_Bd function call that modifies the BD space. It is the caller's responsibility to provide a mutual exclusion mechanism. </dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>This function should not be preempted by another XEmacPs_Bd function call that modifies the BD space. It is the caller's responsibility to provide a mutual exclusion mechanism. </dd></dl>
</div>
</div>
<a class="anchor" id="a48529a85670d455aba4cce4cc7887b6b"></a><!-- doxytag: member="xemacps_bdring.c::XEmacPs_BdRingFromHwRx" ref="a48529a85670d455aba4cce4cc7887b6b" args="(XEmacPs_BdRing *RingPtr, unsigned BdLimit, XEmacPs_Bd **BdSetPtr)" -->
</div><p>
<a class="anchor" name="48529a85670d455aba4cce4cc7887b6b"></a><!-- doxytag: member="xemacps_bdring.c::XEmacPs_BdRingFromHwRx" ref="48529a85670d455aba4cce4cc7887b6b" args="(XEmacPs_BdRing *RingPtr, unsigned BdLimit, XEmacPs_Bd **BdSetPtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned XEmacPs_BdRingFromHwRx </td>
<td class="memname">unsigned XEmacPs_BdRingFromHwRx </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *&nbsp;</td>
<td class="paramname"> <em>RingPtr</em>, </td>
@ -488,64 +493,71 @@ Do not modify more BDs than the number requested with the NumBd parameter. Doing
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> **&nbsp;</td>
<td class="paramtype"><a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> **&nbsp;</td>
<td class="paramname"> <em>BdSetPtr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Returns a set of BD(s) that have been processed by hardware. The returned BDs may be examined to determine the outcome of the DMA transaction(s). Once the BDs have been examined, the user must call <a class="el" href="xemacps__bdring_8c.html#a7bb4a77d78a9111d56b6bb8dacf6926d">XEmacPs_BdRingFree()</a> in the same order which they were retrieved here. Example:</p>
<p>
Returns a set of BD(s) that have been processed by hardware. The returned BDs may be examined to determine the outcome of the DMA transaction(s). Once the BDs have been examined, the user must call <a class="el" href="xemacps__bdring_8c.html#7bb4a77d78a9111d56b6bb8dacf6926d">XEmacPs_BdRingFree()</a> in the same order which they were retrieved here. Example:<p>
<pre>
NumBd = XEmacPs_BdRingFromHwRx(MyRingPtr, MaxBd, &amp;MyBdSet);</pre><pre> if (NumBd == 0)
NumBd = XEmacPs_BdRingFromHwRx(MyRingPtr, MaxBd, &amp;MyBdSet);</pre><p>
<pre> if (NumBd == 0)
{
// hardware has nothing ready for us yet
}</pre><pre> CurBd = MyBdSet;
}</pre><p>
<pre> CurBd = MyBdSet;
for (i=0; i&lt;NumBd; i++)
{
// Examine CurBd for post processing.....</pre><pre> // Onto next BD
CurBd = <a class="el" href="xemacps__bdring_8h.html#a78e691ca1e87aca56ebead6d6b6057a4">XEmacPs_BdRingNext(MyRingPtr, CurBd)</a>;
}</pre><pre> XEmacPs_BdRingFree(MyRingPtr, NumBd, MyBdSet); // Return list
// Examine CurBd for post processing.....</pre><p>
<pre> // Onto next BD
CurBd = <a class="el" href="xemacps__bdring_8h.html#78e691ca1e87aca56ebead6d6b6057a4">XEmacPs_BdRingNext(MyRingPtr, CurBd)</a>;
}</pre><p>
<pre> XEmacPs_BdRingFree(MyRingPtr, NumBd, MyBdSet); // Return list
}
</pre><p>A more advanced use of this function may allocate multiple sets of BDs. They must be retrieved from hardware and freed in the correct sequence: </p>
<pre>
</pre><p>
A more advanced use of this function may allocate multiple sets of BDs. They must be retrieved from hardware and freed in the correct sequence: <pre>
// Legal
XEmacPs_BdRingFromHwRx(MyRingPtr, NumBd1, &amp;MySet1);
XEmacPs_BdRingFree(MyRingPtr, NumBd1, MySet1);</pre><pre> // Legal
XEmacPs_BdRingFree(MyRingPtr, NumBd1, MySet1);</pre><p>
<pre> // Legal
XEmacPs_BdRingFromHwRx(MyRingPtr, NumBd1, &amp;MySet1);
XEmacPs_BdRingFromHwRx(MyRingPtr, NumBd2, &amp;MySet2);
XEmacPs_BdRingFree(MyRingPtr, NumBd1, MySet1);
XEmacPs_BdRingFree(MyRingPtr, NumBd2, MySet2);</pre><pre> // Not legal
XEmacPs_BdRingFree(MyRingPtr, NumBd2, MySet2);</pre><p>
<pre> // Not legal
XEmacPs_BdRingFromHwRx(MyRingPtr, NumBd1, &amp;MySet1);
XEmacPs_BdRingFromHwRx(MyRingPtr, NumBd2, &amp;MySet2);
XEmacPs_BdRingFree(MyRingPtr, NumBd2, MySet2);
XEmacPs_BdRingFree(MyRingPtr, NumBd1, MySet1);
</pre><p>If hardware has only partially completed a packet spanning multiple BDs, then none of the BDs for that packet will be included in the results.</p>
<dl><dt><b>Parameters:</b></dt><dd>
</pre><p>
If hardware has only partially completed a packet spanning multiple BDs, then none of the BDs for that packet will be included in the results.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>RingPtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>BdLimit</em>&nbsp;</td><td>is the maximum number of BDs to return in the set. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>BdSetPtr</em>&nbsp;</td><td>is an output parameter, it points to the first BD available for examination.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of BDs processed by hardware. A value of 0 indicates that no data is available. No more than BdLimit BDs will be returned.</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Treat BDs returned by this function as read-only.</dd>
<dd>
<dl compact><dt><b>Returns:</b></dt><dd>The number of BDs processed by hardware. A value of 0 indicates that no data is available. No more than BdLimit BDs will be returned.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>Treat BDs returned by this function as read-only.<p>
This function should not be preempted by another XEmacPs_Bd function call that modifies the BD space. It is the caller's responsibility to provide a mutual exclusion mechanism. </dd></dl>
</div>
</div>
<a class="anchor" id="a4079f7078273f2f0082992362cb796f4"></a><!-- doxytag: member="xemacps_bdring.c::XEmacPs_BdRingFromHwTx" ref="a4079f7078273f2f0082992362cb796f4" args="(XEmacPs_BdRing *RingPtr, unsigned BdLimit, XEmacPs_Bd **BdSetPtr)" -->
</div><p>
<a class="anchor" name="4079f7078273f2f0082992362cb796f4"></a><!-- doxytag: member="xemacps_bdring.c::XEmacPs_BdRingFromHwTx" ref="4079f7078273f2f0082992362cb796f4" args="(XEmacPs_BdRing *RingPtr, unsigned BdLimit, XEmacPs_Bd **BdSetPtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned XEmacPs_BdRingFromHwTx </td>
<td class="memname">unsigned XEmacPs_BdRingFromHwTx </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *&nbsp;</td>
<td class="paramname"> <em>RingPtr</em>, </td>
@ -559,64 +571,71 @@ This function should not be preempted by another XEmacPs_Bd function call that m
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> **&nbsp;</td>
<td class="paramtype"><a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> **&nbsp;</td>
<td class="paramname"> <em>BdSetPtr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Returns a set of BD(s) that have been processed by hardware. The returned BDs may be examined to determine the outcome of the DMA transaction(s). Once the BDs have been examined, the user must call <a class="el" href="xemacps__bdring_8c.html#a7bb4a77d78a9111d56b6bb8dacf6926d">XEmacPs_BdRingFree()</a> in the same order which they were retrieved here. Example:</p>
<p>
Returns a set of BD(s) that have been processed by hardware. The returned BDs may be examined to determine the outcome of the DMA transaction(s). Once the BDs have been examined, the user must call <a class="el" href="xemacps__bdring_8c.html#7bb4a77d78a9111d56b6bb8dacf6926d">XEmacPs_BdRingFree()</a> in the same order which they were retrieved here. Example:<p>
<pre>
NumBd = XEmacPs_BdRingFromHwTx(MyRingPtr, MaxBd, &amp;MyBdSet);</pre><pre> if (NumBd == 0)
NumBd = XEmacPs_BdRingFromHwTx(MyRingPtr, MaxBd, &amp;MyBdSet);</pre><p>
<pre> if (NumBd == 0)
{
// hardware has nothing ready for us yet
}</pre><pre> CurBd = MyBdSet;
}</pre><p>
<pre> CurBd = MyBdSet;
for (i=0; i&lt;NumBd; i++)
{
// Examine CurBd for post processing.....</pre><pre> // Onto next BD
CurBd = <a class="el" href="xemacps__bdring_8h.html#a78e691ca1e87aca56ebead6d6b6057a4">XEmacPs_BdRingNext(MyRingPtr, CurBd)</a>;
}</pre><pre> XEmacPs_BdRingFree(MyRingPtr, NumBd, MyBdSet); // Return list
// Examine CurBd for post processing.....</pre><p>
<pre> // Onto next BD
CurBd = <a class="el" href="xemacps__bdring_8h.html#78e691ca1e87aca56ebead6d6b6057a4">XEmacPs_BdRingNext(MyRingPtr, CurBd)</a>;
}</pre><p>
<pre> XEmacPs_BdRingFree(MyRingPtr, NumBd, MyBdSet); // Return list
}
</pre><p>A more advanced use of this function may allocate multiple sets of BDs. They must be retrieved from hardware and freed in the correct sequence: </p>
<pre>
</pre><p>
A more advanced use of this function may allocate multiple sets of BDs. They must be retrieved from hardware and freed in the correct sequence: <pre>
// Legal
XEmacPs_BdRingFromHwTx(MyRingPtr, NumBd1, &amp;MySet1);
XEmacPs_BdRingFree(MyRingPtr, NumBd1, MySet1);</pre><pre> // Legal
XEmacPs_BdRingFree(MyRingPtr, NumBd1, MySet1);</pre><p>
<pre> // Legal
XEmacPs_BdRingFromHwTx(MyRingPtr, NumBd1, &amp;MySet1);
XEmacPs_BdRingFromHwTx(MyRingPtr, NumBd2, &amp;MySet2);
XEmacPs_BdRingFree(MyRingPtr, NumBd1, MySet1);
XEmacPs_BdRingFree(MyRingPtr, NumBd2, MySet2);</pre><pre> // Not legal
XEmacPs_BdRingFree(MyRingPtr, NumBd2, MySet2);</pre><p>
<pre> // Not legal
XEmacPs_BdRingFromHwTx(MyRingPtr, NumBd1, &amp;MySet1);
XEmacPs_BdRingFromHwTx(MyRingPtr, NumBd2, &amp;MySet2);
XEmacPs_BdRingFree(MyRingPtr, NumBd2, MySet2);
XEmacPs_BdRingFree(MyRingPtr, NumBd1, MySet1);
</pre><p>If hardware has only partially completed a packet spanning multiple BDs, then none of the BDs for that packet will be included in the results.</p>
<dl><dt><b>Parameters:</b></dt><dd>
</pre><p>
If hardware has only partially completed a packet spanning multiple BDs, then none of the BDs for that packet will be included in the results.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>RingPtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>BdLimit</em>&nbsp;</td><td>is the maximum number of BDs to return in the set. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>BdSetPtr</em>&nbsp;</td><td>is an output parameter, it points to the first BD available for examination.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of BDs processed by hardware. A value of 0 indicates that no data is available. No more than BdLimit BDs will be returned.</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Treat BDs returned by this function as read-only.</dd>
<dd>
<dl compact><dt><b>Returns:</b></dt><dd>The number of BDs processed by hardware. A value of 0 indicates that no data is available. No more than BdLimit BDs will be returned.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>Treat BDs returned by this function as read-only.<p>
This function should not be preempted by another XEmacPs_Bd function call that modifies the BD space. It is the caller's responsibility to provide a mutual exclusion mechanism. </dd></dl>
</div>
</div>
<a class="anchor" id="adef8169a514444cbb7e615d6e11b05a3"></a><!-- doxytag: member="xemacps_bdring.c::XEmacPs_BdRingToHw" ref="adef8169a514444cbb7e615d6e11b05a3" args="(XEmacPs_BdRing *RingPtr, unsigned NumBd, XEmacPs_Bd *BdSetPtr)" -->
</div><p>
<a class="anchor" name="def8169a514444cbb7e615d6e11b05a3"></a><!-- doxytag: member="xemacps_bdring.c::XEmacPs_BdRingToHw" ref="def8169a514444cbb7e615d6e11b05a3" args="(XEmacPs_BdRing *RingPtr, unsigned NumBd, XEmacPs_Bd *BdSetPtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacPs_BdRingToHw </td>
<td class="memname">int XEmacPs_BdRingToHw </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *&nbsp;</td>
<td class="paramname"> <em>RingPtr</em>, </td>
@ -630,43 +649,41 @@ This function should not be preempted by another XEmacPs_Bd function call that m
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *&nbsp;</td>
<td class="paramtype"><a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *&nbsp;</td>
<td class="paramname"> <em>BdSetPtr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Enqueue a set of BDs to hardware that were previously allocated by <a class="el" href="xemacps__bdring_8c.html#a6d7d4a8a571956b6ddef55307f3b2c7b">XEmacPs_BdRingAlloc()</a>. Once this function returns, the argument BD set goes under hardware control. Any changes made to these BDs after this point will corrupt the BD list leading to data corruption and system instability.</p>
<p>The set will be rejected if the last BD of the set does not mark the end of a packet (see <a class="el" href="xemacps__bd_8h.html#a6d15c187fa133cb4b74489d60ad08c39">XEmacPs_BdSetLast()</a>).</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Enqueue a set of BDs to hardware that were previously allocated by <a class="el" href="xemacps__bdring_8c.html#6d7d4a8a571956b6ddef55307f3b2c7b">XEmacPs_BdRingAlloc()</a>. Once this function returns, the argument BD set goes under hardware control. Any changes made to these BDs after this point will corrupt the BD list leading to data corruption and system instability.<p>
The set will be rejected if the last BD of the set does not mark the end of a packet (see <a class="el" href="xemacps__bd_8h.html#6d15c187fa133cb4b74489d60ad08c39">XEmacPs_BdSetLast()</a>).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>RingPtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>NumBd</em>&nbsp;</td><td>is the number of BDs in the set. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>BdSetPtr</em>&nbsp;</td><td>is the first BD of the set to commit to hardware.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the set of BDs was accepted and enqueued to hardware.</li>
<li>XST_FAILURE if the set of BDs was rejected because the last BD of the set did not have its "last" bit set.</li>
<li>XST_DMA_SG_LIST_ERROR if this function was called out of sequence with <a class="el" href="xemacps__bdring_8c.html#a6d7d4a8a571956b6ddef55307f3b2c7b">XEmacPs_BdRingAlloc()</a>.</li>
</ul>
<dl compact><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the set of BDs was accepted and enqueued to hardware.</li><li>XST_FAILURE if the set of BDs was rejected because the last BD of the set did not have its "last" bit set.</li><li>XST_DMA_SG_LIST_ERROR if this function was called out of sequence with <a class="el" href="xemacps__bdring_8c.html#6d7d4a8a571956b6ddef55307f3b2c7b">XEmacPs_BdRingAlloc()</a>.</li></ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>This function should not be preempted by another XEmacPs_Bd function call that modifies the BD space. It is the caller's responsibility to provide a mutual exclusion mechanism. </dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>This function should not be preempted by another XEmacPs_Bd function call that modifies the BD space. It is the caller's responsibility to provide a mutual exclusion mechanism. </dd></dl>
</div>
</div>
<a class="anchor" id="a21b6448036402f452539e3f17a36e915"></a><!-- doxytag: member="xemacps_bdring.c::XEmacPs_BdRingUnAlloc" ref="a21b6448036402f452539e3f17a36e915" args="(XEmacPs_BdRing *RingPtr, unsigned NumBd, XEmacPs_Bd *BdSetPtr)" -->
</div><p>
<a class="anchor" name="21b6448036402f452539e3f17a36e915"></a><!-- doxytag: member="xemacps_bdring.c::XEmacPs_BdRingUnAlloc" ref="21b6448036402f452539e3f17a36e915" args="(XEmacPs_BdRing *RingPtr, unsigned NumBd, XEmacPs_Bd *BdSetPtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacPs_BdRingUnAlloc </td>
<td class="memname">int XEmacPs_BdRingUnAlloc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps___bd_ring.html">XEmacPs_BdRing</a> *&nbsp;</td>
<td class="paramname"> <em>RingPtr</em>, </td>
@ -680,21 +697,23 @@ This function should not be preempted by another XEmacPs_Bd function call that m
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="xemacps__bd_8h.html#abdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *&nbsp;</td>
<td class="paramtype"><a class="el" href="xemacps__bd_8h.html#bdac9aa9170655a763bf06bab3aa2a62">XEmacPs_Bd</a> *&nbsp;</td>
<td class="paramname"> <em>BdSetPtr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Fully or partially undo an <a class="el" href="xemacps__bdring_8c.html#a6d7d4a8a571956b6ddef55307f3b2c7b">XEmacPs_BdRingAlloc()</a> operation. Use this function if all the BDs allocated by <a class="el" href="xemacps__bdring_8c.html#a6d7d4a8a571956b6ddef55307f3b2c7b">XEmacPs_BdRingAlloc()</a> could not be transferred to hardware with <a class="el" href="xemacps__bdring_8c.html#adef8169a514444cbb7e615d6e11b05a3">XEmacPs_BdRingToHw()</a>.</p>
<p>This function helps out in situations when an unrelated error occurs after BDs have been allocated but before they have been given to hardware. An example of this type of error would be an OS running out of resources.</p>
<p>This function is not the same as <a class="el" href="xemacps__bdring_8c.html#a7bb4a77d78a9111d56b6bb8dacf6926d">XEmacPs_BdRingFree()</a>. The Free function returns BDs to the free list after they have been processed by hardware, while UnAlloc returns them before being processed by hardware.</p>
<p>There are two scenarios where this function can be used. Full UnAlloc or Partial UnAlloc. A Full UnAlloc means all the BDs Alloc'd will be returned:</p>
<p>
Fully or partially undo an <a class="el" href="xemacps__bdring_8c.html#6d7d4a8a571956b6ddef55307f3b2c7b">XEmacPs_BdRingAlloc()</a> operation. Use this function if all the BDs allocated by <a class="el" href="xemacps__bdring_8c.html#6d7d4a8a571956b6ddef55307f3b2c7b">XEmacPs_BdRingAlloc()</a> could not be transferred to hardware with <a class="el" href="xemacps__bdring_8c.html#def8169a514444cbb7e615d6e11b05a3">XEmacPs_BdRingToHw()</a>.<p>
This function helps out in situations when an unrelated error occurs after BDs have been allocated but before they have been given to hardware. An example of this type of error would be an OS running out of resources.<p>
This function is not the same as <a class="el" href="xemacps__bdring_8c.html#7bb4a77d78a9111d56b6bb8dacf6926d">XEmacPs_BdRingFree()</a>. The Free function returns BDs to the free list after they have been processed by hardware, while UnAlloc returns them before being processed by hardware.<p>
There are two scenarios where this function can be used. Full UnAlloc or Partial UnAlloc. A Full UnAlloc means all the BDs Alloc'd will be returned:<p>
<pre>
Status = XEmacPs_BdRingAlloc(MyRingPtr, 10, &amp;BdPtr);
...
@ -702,39 +721,35 @@ This function should not be preempted by another XEmacPs_Bd function call that m
{
Status = XEmacPs_BdRingUnAlloc(MyRingPtr, 10, &amp;BdPtr);
}
</pre><p>A partial UnAlloc means some of the BDs Alloc'd will be returned:</p>
</pre><p>
A partial UnAlloc means some of the BDs Alloc'd will be returned:<p>
<pre>
Status = XEmacPs_BdRingAlloc(MyRingPtr, 10, &amp;BdPtr);
BdsLeft = 10;
CurBdPtr = BdPtr;</pre><pre> while (BdsLeft)
CurBdPtr = BdPtr;</pre><p>
<pre> while (BdsLeft)
{
if (Error)
{
Status = XEmacPs_BdRingUnAlloc(MyRingPtr, BdsLeft, CurBdPtr);
}</pre><pre> CurBdPtr = <a class="el" href="xemacps__bdring_8h.html#a78e691ca1e87aca56ebead6d6b6057a4">XEmacPs_BdRingNext(MyRingPtr, CurBdPtr)</a>;
}</pre><p>
<pre> CurBdPtr = <a class="el" href="xemacps__bdring_8h.html#78e691ca1e87aca56ebead6d6b6057a4">XEmacPs_BdRingNext(MyRingPtr, CurBdPtr)</a>;
BdsLeft--;
}
</pre><p>A partial UnAlloc must include the last BD in the list that was Alloc'd.</p>
<dl><dt><b>Parameters:</b></dt><dd>
</pre><p>
A partial UnAlloc must include the last BD in the list that was Alloc'd.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>RingPtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>NumBd</em>&nbsp;</td><td>is the number of BDs to allocate </td></tr>
<tr><td valign="top"></td><td valign="top"><em>BdSetPtr</em>&nbsp;</td><td>is an output parameter, it points to the first BD available for modification.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the BDs were unallocated.</li>
<li>XST_FAILURE if NumBd parameter was greater that the number of BDs in the preprocessing state.</li>
</ul>
<dl compact><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the BDs were unallocated.</li><li>XST_FAILURE if NumBd parameter was greater that the number of BDs in the preprocessing state.</li></ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>This function should not be preempted by another XEmacPs_Bd function call that modifies the BD space. It is the caller's responsibility to provide a mutual exclusion mechanism. </dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>This function should not be preempted by another XEmacPs_Bd function call that modifies the BD space. It is the caller's responsibility to provide a mutual exclusion mechanism. </dd></dl>
</div>
</div>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
</div><p>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,93 +2,109 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: xemacps_control.c File Reference
xemacps_control.c File Reference
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>xemacps_control.c File Reference</h1><code>#include &quot;<a class="el" href="xemacps_8h.html">xemacps.h</a>&quot;</code><br/>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#a90199e95242edf13a5d83413812ec22d">XEmacPs_SetMacAddress</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, void *AddressPtr, u8 Index)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#ac937dc7f20125b0af5b07de435d83df4">XEmacPs_GetMacAddress</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, void *AddressPtr, u8 Index)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#a555ba66cf054a569dcdd602ae61d33d1">XEmacPs_SetHash</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, void *AddressPtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#acfd4b44c01f089ec708d1db73c73d40c">XEmacPs_DeleteHash</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, void *AddressPtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#a198e6a798ce0be3a5ab09e0d102766ef">XEmacPs_ClearHash</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#a4d40aa55e3fbbf2e29379e15d07e3bd8">XEmacPs_GetHash</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, void *AddressPtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#a54f76825f543ad6a85fadb5609b5bd06">XEmacPs_SetTypeIdCheck</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, u32 Id_Check, u8 Index)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#aac00eaf66004d2d1d788ca01ed3b512c">XEmacPs_SetOptions</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, u32 Options)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#a2b82f01f4000f8e6a8ce45d8be43255c">XEmacPs_ClearOptions</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, u32 Options)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#a5508f6a12614b8df7369a16a60bc238e">XEmacPs_GetOptions</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#a6a3673011fb4882dfcfc8366ecee2e6c">XEmacPs_SendPausePacket</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u16&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#a0d7ec49a34ff5c1b4592ad6c9830a6b0">XEmacPs_GetOperatingSpeed</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#ae1f519684cc62697fd17f49e2658abd6">XEmacPs_SetOperatingSpeed</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, u16 Speed)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#a5d0b4b9258cdead2c0875a0853c087b3">XEmacPs_SetMdioDivisor</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, <a class="el" href="xemacps__hw_8h.html#aa367ea42c2214b487cf74951453204ff">XEmacPs_MdcDiv</a> Divisor)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#a6169714fe8417a642cfdde141f550b3c">XEmacPs_PhyRead</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, u32 PhyAddress, u32 RegisterNum, u16 *PhyDataPtr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#a2aa3ec40827c175ee46a8fd641ff960c">XEmacPs_PhyWrite</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, u32 PhyAddress, u32 RegisterNum, u16 PhyData)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#a2821b9581e2be4c94990bb98052ce680">XEmacPs_DMABLengthUpdate</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, int BLength)</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Functions in this file implement general purpose command and control related functionality. See <a class="el" href="xemacps_8h.html">xemacps.h</a> for a detailed description of the driver.</p>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<h1>xemacps_control.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
Functions in this file implement general purpose command and control related functionality. See <a class="el" href="xemacps_8h.html">xemacps.h</a> for a detailed description of the driver.<p>
<pre>
MODIFICATION HISTORY:</pre><pre> Ver Who Date Changes
MODIFICATION HISTORY:</pre><p>
<pre> Ver Who Date Changes
----- ---- -------- -------------------------------------------------------
1.00a wsy 01/10/10 First release
1.02a asa 11/05/12 Added a new API for deleting an entry from the HASH
register. Added a new API for setting the BURST length
in DMACR register.
</pre> <hr/><h2>Function Documentation</h2>
<a class="anchor" id="a198e6a798ce0be3a5ab09e0d102766ef"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_ClearHash" ref="a198e6a798ce0be3a5ab09e0d102766ef" args="(XEmacPs *InstancePtr)" -->
</pre>
<p>
<code>#include &quot;<a class="el" href="xemacps_8h.html">xemacps.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#90199e95242edf13a5d83413812ec22d">XEmacPs_SetMacAddress</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, void *AddressPtr, u8 Index)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#c937dc7f20125b0af5b07de435d83df4">XEmacPs_GetMacAddress</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, void *AddressPtr, u8 Index)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#555ba66cf054a569dcdd602ae61d33d1">XEmacPs_SetHash</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, void *AddressPtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#cfd4b44c01f089ec708d1db73c73d40c">XEmacPs_DeleteHash</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, void *AddressPtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#198e6a798ce0be3a5ab09e0d102766ef">XEmacPs_ClearHash</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#4d40aa55e3fbbf2e29379e15d07e3bd8">XEmacPs_GetHash</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, void *AddressPtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#54f76825f543ad6a85fadb5609b5bd06">XEmacPs_SetTypeIdCheck</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, u32 Id_Check, u8 Index)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#ac00eaf66004d2d1d788ca01ed3b512c">XEmacPs_SetOptions</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, u32 Options)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#2b82f01f4000f8e6a8ce45d8be43255c">XEmacPs_ClearOptions</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, u32 Options)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#5508f6a12614b8df7369a16a60bc238e">XEmacPs_GetOptions</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#6a3673011fb4882dfcfc8366ecee2e6c">XEmacPs_SendPausePacket</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u16&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#0d7ec49a34ff5c1b4592ad6c9830a6b0">XEmacPs_GetOperatingSpeed</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#e1f519684cc62697fd17f49e2658abd6">XEmacPs_SetOperatingSpeed</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, u16 Speed)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#5d0b4b9258cdead2c0875a0853c087b3">XEmacPs_SetMdioDivisor</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, <a class="el" href="xemacps__hw_8h.html#a367ea42c2214b487cf74951453204ff">XEmacPs_MdcDiv</a> Divisor)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#6169714fe8417a642cfdde141f550b3c">XEmacPs_PhyRead</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, u32 PhyAddress, u32 RegisterNum, u16 *PhyDataPtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#2aa3ec40827c175ee46a8fd641ff960c">XEmacPs_PhyWrite</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, u32 PhyAddress, u32 RegisterNum, u16 PhyData)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__control_8c.html#2821b9581e2be4c94990bb98052ce680">XEmacPs_DMABLengthUpdate</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, int BLength)</td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="198e6a798ce0be3a5ab09e0d102766ef"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_ClearHash" ref="198e6a798ce0be3a5ab09e0d102766ef" args="(XEmacPs *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XEmacPs_ClearHash </td>
<td class="memname">void XEmacPs_ClearHash </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em></td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Clear the Hash registers for the mac address pointed by AddressPtr.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Clear the Hash registers for the mac address pointed by AddressPtr.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a2b82f01f4000f8e6a8ce45d8be43255c"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_ClearOptions" ref="a2b82f01f4000f8e6a8ce45d8be43255c" args="(XEmacPs *InstancePtr, u32 Options)" -->
</div><p>
<a class="anchor" name="2b82f01f4000f8e6a8ce45d8be43255c"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_ClearOptions" ref="2b82f01f4000f8e6a8ce45d8be43255c" args="(XEmacPs *InstancePtr, u32 Options)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacPs_ClearOptions </td>
<td class="memname">int XEmacPs_ClearOptions </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
@ -102,34 +118,33 @@
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Clear options for the driver/device</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Clear options for the driver/device<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Options</em>&nbsp;</td><td>are the options to clear. Multiple options can be cleared by OR'ing XEMACPS_*_OPTIONS constants together. Options not specified are not affected.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the options were set successfully</li>
<li>XST_DEVICE_IS_STARTED if the device has not yet been stopped</li>
</ul>
<dl compact><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the options were set successfully</li><li>XST_DEVICE_IS_STARTED if the device has not yet been stopped</li></ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>See <a class="el" href="xemacps_8h.html">xemacps.h</a> for a description of the available options. </dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>See <a class="el" href="xemacps_8h.html">xemacps.h</a> for a description of the available options. </dd></dl>
</div>
</div>
<a class="anchor" id="acfd4b44c01f089ec708d1db73c73d40c"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_DeleteHash" ref="acfd4b44c01f089ec708d1db73c73d40c" args="(XEmacPs *InstancePtr, void *AddressPtr)" -->
</div><p>
<a class="anchor" name="cfd4b44c01f089ec708d1db73c73d40c"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_DeleteHash" ref="cfd4b44c01f089ec708d1db73c73d40c" args="(XEmacPs *InstancePtr, void *AddressPtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacPs_DeleteHash </td>
<td class="memname">int XEmacPs_DeleteHash </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
@ -143,35 +158,33 @@
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Delete 48-bit MAC addresses in hash table. The device must be stopped before calling this function.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Delete 48-bit MAC addresses in hash table. The device must be stopped before calling this function.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>AddressPtr</em>&nbsp;</td><td>is a pointer to a 6-byte MAC address.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the HASH MAC address was deleted successfully</li>
<li>XST_DEVICE_IS_STARTED if the device has not yet been stopped</li>
<li>XST_INVALID_PARAM if the HASH MAC address passed in does not meet requirement after calculation</li>
</ul>
<dl compact><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the HASH MAC address was deleted successfully</li><li>XST_DEVICE_IS_STARTED if the device has not yet been stopped</li><li>XST_INVALID_PARAM if the HASH MAC address passed in does not meet requirement after calculation</li></ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Having Aptr be unsigned type prevents the following operations from sign extending. </dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>Having Aptr be unsigned type prevents the following operations from sign extending. </dd></dl>
</div>
</div>
<a class="anchor" id="a2821b9581e2be4c94990bb98052ce680"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_DMABLengthUpdate" ref="a2821b9581e2be4c94990bb98052ce680" args="(XEmacPs *InstancePtr, int BLength)" -->
</div><p>
<a class="anchor" name="2821b9581e2be4c94990bb98052ce680"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_DMABLengthUpdate" ref="2821b9581e2be4c94990bb98052ce680" args="(XEmacPs *InstancePtr, int BLength)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XEmacPs_DMABLengthUpdate </td>
<td class="memname">void XEmacPs_DMABLengthUpdate </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
@ -185,29 +198,30 @@
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>API to update the Burst length in the DMACR register.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
API to update the Burst length in the DMACR register.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_emac_ps.html">XEmacPs</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>BLength</em>&nbsp;</td><td>is the length in bytes for the dma burst.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>None </dd></dl>
<dl compact><dt><b>Returns:</b></dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="a4d40aa55e3fbbf2e29379e15d07e3bd8"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_GetHash" ref="a4d40aa55e3fbbf2e29379e15d07e3bd8" args="(XEmacPs *InstancePtr, void *AddressPtr)" -->
</div><p>
<a class="anchor" name="4d40aa55e3fbbf2e29379e15d07e3bd8"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_GetHash" ref="4d40aa55e3fbbf2e29379e15d07e3bd8" args="(XEmacPs *InstancePtr, void *AddressPtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XEmacPs_GetHash </td>
<td class="memname">void XEmacPs_GetHash </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
@ -221,28 +235,29 @@
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Get the Hash address for this driver/device.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Get the Hash address for this driver/device.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>AddressPtr</em>&nbsp;</td><td>is an output parameter, and is a pointer to a buffer into which the current HASH MAC address will be copied. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ac937dc7f20125b0af5b07de435d83df4"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_GetMacAddress" ref="ac937dc7f20125b0af5b07de435d83df4" args="(XEmacPs *InstancePtr, void *AddressPtr, u8 Index)" -->
</div><p>
<a class="anchor" name="c937dc7f20125b0af5b07de435d83df4"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_GetMacAddress" ref="c937dc7f20125b0af5b07de435d83df4" args="(XEmacPs *InstancePtr, void *AddressPtr, u8 Index)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XEmacPs_GetMacAddress </td>
<td class="memname">void XEmacPs_GetMacAddress </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
@ -262,83 +277,86 @@
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Get the MAC address for this driver/device.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Get the MAC address for this driver/device.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>AddressPtr</em>&nbsp;</td><td>is an output parameter, and is a pointer to a buffer into which the current MAC address will be copied. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Index</em>&nbsp;</td><td>is a index to which MAC (1-4) address. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a0d7ec49a34ff5c1b4592ad6c9830a6b0"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_GetOperatingSpeed" ref="a0d7ec49a34ff5c1b4592ad6c9830a6b0" args="(XEmacPs *InstancePtr)" -->
</div><p>
<a class="anchor" name="0d7ec49a34ff5c1b4592ad6c9830a6b0"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_GetOperatingSpeed" ref="0d7ec49a34ff5c1b4592ad6c9830a6b0" args="(XEmacPs *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u16 XEmacPs_GetOperatingSpeed </td>
<td class="memname">u16 XEmacPs_GetOperatingSpeed </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em></td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>XEmacPs_GetOperatingSpeed gets the current operating link speed. This may be the value set by <a class="el" href="xemacps_8h.html#ae1f519684cc62697fd17f49e2658abd6">XEmacPs_SetOperatingSpeed()</a> or a hardware default.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
XEmacPs_GetOperatingSpeed gets the current operating link speed. This may be the value set by <a class="el" href="xemacps_8h.html#e1f519684cc62697fd17f49e2658abd6">XEmacPs_SetOperatingSpeed()</a> or a hardware default.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>references the TEMAC channel on which to operate.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>XEmacPs_GetOperatingSpeed returns the link speed in units of megabits per second.</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
<dl compact><dt><b>Returns:</b></dt><dd>XEmacPs_GetOperatingSpeed returns the link speed in units of megabits per second.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd></dd></dl>
</div>
</div>
<a class="anchor" id="a5508f6a12614b8df7369a16a60bc238e"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_GetOptions" ref="a5508f6a12614b8df7369a16a60bc238e" args="(XEmacPs *InstancePtr)" -->
</div><p>
<a class="anchor" name="5508f6a12614b8df7369a16a60bc238e"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_GetOptions" ref="5508f6a12614b8df7369a16a60bc238e" args="(XEmacPs *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 XEmacPs_GetOptions </td>
<td class="memname">u32 XEmacPs_GetOptions </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em></td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Get current option settings</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Get current option settings<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A bitmask of XTE_*_OPTION constants. Any bit set to 1 is to be interpreted as a set opion.</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>See <a class="el" href="xemacps_8h.html">xemacps.h</a> for a description of the available options. </dd></dl>
<dl compact><dt><b>Returns:</b></dt><dd>A bitmask of XTE_*_OPTION constants. Any bit set to 1 is to be interpreted as a set opion.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>See <a class="el" href="xemacps_8h.html">xemacps.h</a> for a description of the available options. </dd></dl>
</div>
</div>
<a class="anchor" id="a6169714fe8417a642cfdde141f550b3c"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_PhyRead" ref="a6169714fe8417a642cfdde141f550b3c" args="(XEmacPs *InstancePtr, u32 PhyAddress, u32 RegisterNum, u16 *PhyDataPtr)" -->
</div><p>
<a class="anchor" name="6169714fe8417a642cfdde141f550b3c"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_PhyRead" ref="6169714fe8417a642cfdde141f550b3c" args="(XEmacPs *InstancePtr, u32 PhyAddress, u32 RegisterNum, u16 *PhyDataPtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacPs_PhyRead </td>
<td class="memname">int XEmacPs_PhyRead </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
@ -364,40 +382,39 @@
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Read the current value of the PHY register indicated by the PhyAddress and the RegisterNum parameters. The MAC provides the driver with the ability to talk to a PHY that adheres to the Media Independent Interface (MII) as defined in the IEEE 802.3 standard.</p>
<p>Prior to PHY access with this function, the user should have setup the MDIO clock with <a class="el" href="xemacps_8h.html#a5d0b4b9258cdead2c0875a0853c087b3">XEmacPs_SetMdioDivisor()</a>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Read the current value of the PHY register indicated by the PhyAddress and the RegisterNum parameters. The MAC provides the driver with the ability to talk to a PHY that adheres to the Media Independent Interface (MII) as defined in the IEEE 802.3 standard.<p>
Prior to PHY access with this function, the user should have setup the MDIO clock with <a class="el" href="xemacps_8h.html#5d0b4b9258cdead2c0875a0853c087b3">XEmacPs_SetMdioDivisor()</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_emac_ps.html">XEmacPs</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>PhyAddress</em>&nbsp;</td><td>is the address of the PHY to be read (supports multiple PHYs) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>RegisterNum</em>&nbsp;</td><td>is the register number, 0-31, of the specific PHY register to read </td></tr>
<tr><td valign="top"></td><td valign="top"><em>PhyDataPtr</em>&nbsp;</td><td>is an output parameter, and points to a 16-bit buffer into which the current value of the register will be copied.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
<dl compact><dt><b>Returns:</b></dt><dd></dd></dl>
<ul>
<li>XST_SUCCESS if the PHY was read from successfully</li>
<li>XST_EMAC_MII_BUSY if there is another PHY operation in progress</li>
</ul>
<dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
<p>This function is not thread-safe. The user must provide mutually exclusive access to this function if there are to be multiple threads that can call it.</p>
<p>There is the possibility that this function will not return if the hardware is broken (i.e., it never sets the status bit indicating that the read is done). If this is of concern to the user, the user should provide a mechanism suitable to their needs for recovery.</p>
<p>For the duration of this function, all host interface reads and writes are blocked to the current <a class="el" href="struct_x_emac_ps.html">XEmacPs</a> instance. </p>
<li>XST_SUCCESS if the PHY was read from successfully</li><li>XST_EMAC_MII_BUSY if there is another PHY operation in progress</li></ul>
<p>
<dl compact><dt><b>Note:</b></dt><dd></dd></dl>
This function is not thread-safe. The user must provide mutually exclusive access to this function if there are to be multiple threads that can call it.<p>
There is the possibility that this function will not return if the hardware is broken (i.e., it never sets the status bit indicating that the read is done). If this is of concern to the user, the user should provide a mechanism suitable to their needs for recovery.<p>
For the duration of this function, all host interface reads and writes are blocked to the current <a class="el" href="struct_x_emac_ps.html">XEmacPs</a> instance.
</div>
</div>
<a class="anchor" id="a2aa3ec40827c175ee46a8fd641ff960c"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_PhyWrite" ref="a2aa3ec40827c175ee46a8fd641ff960c" args="(XEmacPs *InstancePtr, u32 PhyAddress, u32 RegisterNum, u16 PhyData)" -->
</div><p>
<a class="anchor" name="2aa3ec40827c175ee46a8fd641ff960c"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_PhyWrite" ref="2aa3ec40827c175ee46a8fd641ff960c" args="(XEmacPs *InstancePtr, u32 PhyAddress, u32 RegisterNum, u16 PhyData)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacPs_PhyWrite </td>
<td class="memname">int XEmacPs_PhyWrite </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
@ -423,70 +440,68 @@
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Write data to the specified PHY register. The Ethernet driver does not require the device to be stopped before writing to the PHY. Although it is probably a good idea to stop the device, it is the responsibility of the application to deem this necessary. The MAC provides the driver with the ability to talk to a PHY that adheres to the Media Independent Interface (MII) as defined in the IEEE 802.3 standard.</p>
<p>Prior to PHY access with this function, the user should have setup the MDIO clock with <a class="el" href="xemacps_8h.html#a5d0b4b9258cdead2c0875a0853c087b3">XEmacPs_SetMdioDivisor()</a>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Write data to the specified PHY register. The Ethernet driver does not require the device to be stopped before writing to the PHY. Although it is probably a good idea to stop the device, it is the responsibility of the application to deem this necessary. The MAC provides the driver with the ability to talk to a PHY that adheres to the Media Independent Interface (MII) as defined in the IEEE 802.3 standard.<p>
Prior to PHY access with this function, the user should have setup the MDIO clock with <a class="el" href="xemacps_8h.html#5d0b4b9258cdead2c0875a0853c087b3">XEmacPs_SetMdioDivisor()</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_emac_ps.html">XEmacPs</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>PhyAddress</em>&nbsp;</td><td>is the address of the PHY to be written (supports multiple PHYs) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>RegisterNum</em>&nbsp;</td><td>is the register number, 0-31, of the specific PHY register to write </td></tr>
<tr><td valign="top"></td><td valign="top"><em>PhyData</em>&nbsp;</td><td>is the 16-bit value that will be written to the register</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
<dl compact><dt><b>Returns:</b></dt><dd></dd></dl>
<ul>
<li>XST_SUCCESS if the PHY was written to successfully. Since there is no error status from the MAC on a write, the user should read the PHY to verify the write was successful.</li>
<li>XST_EMAC_MII_BUSY if there is another PHY operation in progress</li>
</ul>
<dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
<p>This function is not thread-safe. The user must provide mutually exclusive access to this function if there are to be multiple threads that can call it.</p>
<p>There is the possibility that this function will not return if the hardware is broken (i.e., it never sets the status bit indicating that the write is done). If this is of concern to the user, the user should provide a mechanism suitable to their needs for recovery.</p>
<p>For the duration of this function, all host interface reads and writes are blocked to the current <a class="el" href="struct_x_emac_ps.html">XEmacPs</a> instance. </p>
<li>XST_SUCCESS if the PHY was written to successfully. Since there is no error status from the MAC on a write, the user should read the PHY to verify the write was successful.</li><li>XST_EMAC_MII_BUSY if there is another PHY operation in progress</li></ul>
<p>
<dl compact><dt><b>Note:</b></dt><dd></dd></dl>
This function is not thread-safe. The user must provide mutually exclusive access to this function if there are to be multiple threads that can call it.<p>
There is the possibility that this function will not return if the hardware is broken (i.e., it never sets the status bit indicating that the write is done). If this is of concern to the user, the user should provide a mechanism suitable to their needs for recovery.<p>
For the duration of this function, all host interface reads and writes are blocked to the current <a class="el" href="struct_x_emac_ps.html">XEmacPs</a> instance.
</div>
</div>
<a class="anchor" id="a6a3673011fb4882dfcfc8366ecee2e6c"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_SendPausePacket" ref="a6a3673011fb4882dfcfc8366ecee2e6c" args="(XEmacPs *InstancePtr)" -->
</div><p>
<a class="anchor" name="6a3673011fb4882dfcfc8366ecee2e6c"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_SendPausePacket" ref="6a3673011fb4882dfcfc8366ecee2e6c" args="(XEmacPs *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacPs_SendPausePacket </td>
<td class="memname">int XEmacPs_SendPausePacket </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em></td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Send a pause packet</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Send a pause packet<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if pause frame transmission was initiated</li>
<li>XST_DEVICE_IS_STOPPED if the device has not been started. </li>
</ul>
<dl compact><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if pause frame transmission was initiated</li><li>XST_DEVICE_IS_STOPPED if the device has not been started. </li></ul>
</dd></dl>
</div>
</div>
<a class="anchor" id="a555ba66cf054a569dcdd602ae61d33d1"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_SetHash" ref="a555ba66cf054a569dcdd602ae61d33d1" args="(XEmacPs *InstancePtr, void *AddressPtr)" -->
</div><p>
<a class="anchor" name="555ba66cf054a569dcdd602ae61d33d1"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_SetHash" ref="555ba66cf054a569dcdd602ae61d33d1" args="(XEmacPs *InstancePtr, void *AddressPtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacPs_SetHash </td>
<td class="memname">int XEmacPs_SetHash </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
@ -500,14 +515,16 @@
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Set 48-bit MAC addresses in hash table. The device must be stopped before calling this function.</p>
<p>The hash address register is 64 bits long and takes up two locations in the memory map. The least significant bits are stored in hash register bottom and the most significant bits in hash register top.</p>
<p>The unicast hash enable and the multicast hash enable bits in the network configuration register enable the reception of hash matched frames. The destination address is reduced to a 6 bit index into the 64 bit hash register using the following hash function. The hash function is an XOR of every sixth bit of the destination address.</p>
<p>
Set 48-bit MAC addresses in hash table. The device must be stopped before calling this function.<p>
The hash address register is 64 bits long and takes up two locations in the memory map. The least significant bits are stored in hash register bottom and the most significant bits in hash register top.<p>
The unicast hash enable and the multicast hash enable bits in the network configuration register enable the reception of hash matched frames. The destination address is reduced to a 6 bit index into the 64 bit hash register using the following hash function. The hash function is an XOR of every sixth bit of the destination address.<p>
<pre>
hash_index[05] = da[05]^da[11]^da[17]^da[23]^da[29]^da[35]^da[41]^da[47]
hash_index[04] = da[04]^da[10]^da[16]^da[22]^da[28]^da[34]^da[40]^da[46]
@ -515,34 +532,31 @@
hash_index[02] = da[02]^da[08]^da[14]^da[20]^da[26]^da[32]^da[38]^da[44]
hash_index[01] = da[01]^da[07]^da[13]^da[19]^da[25]^da[31]^da[37]^da[43]
hash_index[00] = da[00]^da[06]^da[12]^da[18]^da[24]^da[30]^da[36]^da[42]
</pre><p>da[0] represents the least significant bit of the first byte received, that is, the multicast/unicast indicator, and da[47] represents the most significant bit of the last byte received.</p>
<p>If the hash index points to a bit that is set in the hash register then the frame will be matched according to whether the frame is multicast or unicast.</p>
<p>A multicast match will be signaled if the multicast hash enable bit is set, da[0] is logic 1 and the hash index points to a bit set in the hash register.</p>
<p>A unicast match will be signaled if the unicast hash enable bit is set, da[0] is logic 0 and the hash index points to a bit set in the hash register.</p>
<p>To receive all multicast frames, the hash register should be set with all ones and the multicast hash enable bit should be set in the network configuration register.</p>
<dl><dt><b>Parameters:</b></dt><dd>
</pre><p>
da[0] represents the least significant bit of the first byte received, that is, the multicast/unicast indicator, and da[47] represents the most significant bit of the last byte received.<p>
If the hash index points to a bit that is set in the hash register then the frame will be matched according to whether the frame is multicast or unicast.<p>
A multicast match will be signaled if the multicast hash enable bit is set, da[0] is logic 1 and the hash index points to a bit set in the hash register.<p>
A unicast match will be signaled if the unicast hash enable bit is set, da[0] is logic 0 and the hash index points to a bit set in the hash register.<p>
To receive all multicast frames, the hash register should be set with all ones and the multicast hash enable bit should be set in the network configuration register.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>AddressPtr</em>&nbsp;</td><td>is a pointer to a 6-byte MAC address.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the HASH MAC address was set successfully</li>
<li>XST_DEVICE_IS_STARTED if the device has not yet been stopped</li>
<li>XST_INVALID_PARAM if the HASH MAC address passed in does not meet requirement after calculation</li>
</ul>
<dl compact><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the HASH MAC address was set successfully</li><li>XST_DEVICE_IS_STARTED if the device has not yet been stopped</li><li>XST_INVALID_PARAM if the HASH MAC address passed in does not meet requirement after calculation</li></ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Having Aptr be unsigned type prevents the following operations from sign extending. </dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>Having Aptr be unsigned type prevents the following operations from sign extending. </dd></dl>
</div>
</div>
<a class="anchor" id="a90199e95242edf13a5d83413812ec22d"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_SetMacAddress" ref="a90199e95242edf13a5d83413812ec22d" args="(XEmacPs *InstancePtr, void *AddressPtr, u8 Index)" -->
</div><p>
<a class="anchor" name="90199e95242edf13a5d83413812ec22d"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_SetMacAddress" ref="90199e95242edf13a5d83413812ec22d" args="(XEmacPs *InstancePtr, void *AddressPtr, u8 Index)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacPs_SetMacAddress </td>
<td class="memname">int XEmacPs_SetMacAddress </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
@ -562,34 +576,33 @@
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Set the MAC address for this driver/device. The address is a 48-bit value. The device must be stopped before calling this function.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Set the MAC address for this driver/device. The address is a 48-bit value. The device must be stopped before calling this function.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>AddressPtr</em>&nbsp;</td><td>is a pointer to a 6-byte MAC address. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Index</em>&nbsp;</td><td>is a index to which MAC (1-4) address.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the MAC address was set successfully</li>
<li>XST_DEVICE_IS_STARTED if the device has not yet been stopped </li>
</ul>
<dl compact><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the MAC address was set successfully</li><li>XST_DEVICE_IS_STARTED if the device has not yet been stopped </li></ul>
</dd></dl>
</div>
</div>
<a class="anchor" id="a5d0b4b9258cdead2c0875a0853c087b3"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_SetMdioDivisor" ref="a5d0b4b9258cdead2c0875a0853c087b3" args="(XEmacPs *InstancePtr, XEmacPs_MdcDiv Divisor)" -->
</div><p>
<a class="anchor" name="5d0b4b9258cdead2c0875a0853c087b3"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_SetMdioDivisor" ref="5d0b4b9258cdead2c0875a0853c087b3" args="(XEmacPs *InstancePtr, XEmacPs_MdcDiv Divisor)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XEmacPs_SetMdioDivisor </td>
<td class="memname">void XEmacPs_SetMdioDivisor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
@ -597,24 +610,27 @@
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="xemacps__hw_8h.html#aa367ea42c2214b487cf74951453204ff">XEmacPs_MdcDiv</a>&nbsp;</td>
<td class="paramtype"><a class="el" href="xemacps__hw_8h.html#a367ea42c2214b487cf74951453204ff">XEmacPs_MdcDiv</a>&nbsp;</td>
<td class="paramname"> <em>Divisor</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Set the MDIO clock divisor.</p>
<p>Calculating the divisor:</p>
<p>
Set the MDIO clock divisor.<p>
Calculating the divisor:<p>
<pre>
f[HOSTCLK]
f[MDC] = -----------------
(1 + Divisor) * 2
</pre><p>where f[HOSTCLK] is the bus clock frequency in MHz, and f[MDC] is the MDIO clock frequency in MHz to the PHY. Typically, f[MDC] should not exceed 2.5 MHz. Some PHYs can tolerate faster speeds which means faster access. Here is the table to show values to generate MDC,</p>
</pre><p>
where f[HOSTCLK] is the bus clock frequency in MHz, and f[MDC] is the MDIO clock frequency in MHz to the PHY. Typically, f[MDC] should not exceed 2.5 MHz. Some PHYs can tolerate faster speeds which means faster access. Here is the table to show values to generate MDC,<p>
<pre>
000 : divide pclk by 8 (pclk up to 20 MHz)
001 : divide pclk by 16 (pclk up to 40 MHz)
@ -624,22 +640,22 @@
101 : divide pclk by 96 (pclk up to 240 MHz)
110 : divide pclk by 128 (pclk up to 320 MHz)
111 : divide pclk by 224 (pclk up to 540 MHz)
</pre><dl><dt><b>Parameters:</b></dt><dd>
</pre><p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Divisor</em>&nbsp;</td><td>is the divisor to set. Range is 0b000 to 0b111. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ae1f519684cc62697fd17f49e2658abd6"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_SetOperatingSpeed" ref="ae1f519684cc62697fd17f49e2658abd6" args="(XEmacPs *InstancePtr, u16 Speed)" -->
</div><p>
<a class="anchor" name="e1f519684cc62697fd17f49e2658abd6"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_SetOperatingSpeed" ref="e1f519684cc62697fd17f49e2658abd6" args="(XEmacPs *InstancePtr, u16 Speed)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XEmacPs_SetOperatingSpeed </td>
<td class="memname">void XEmacPs_SetOperatingSpeed </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
@ -653,29 +669,30 @@
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>XEmacPs_SetOperatingSpeed sets the current operating link speed. For any traffic to be passed, this speed must match the current MII/GMII/SGMII/RGMII link speed.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
XEmacPs_SetOperatingSpeed sets the current operating link speed. For any traffic to be passed, this speed must match the current MII/GMII/SGMII/RGMII link speed.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>references the TEMAC channel on which to operate. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Speed</em>&nbsp;</td><td>is the speed to set in units of Mbps. Valid values are 10, 100, or 1000. XEmacPs_SetOperatingSpeed ignores invalid values.</td></tr>
</table>
</dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
<dl compact><dt><b>Note:</b></dt><dd></dd></dl>
</div>
</div>
<a class="anchor" id="aac00eaf66004d2d1d788ca01ed3b512c"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_SetOptions" ref="aac00eaf66004d2d1d788ca01ed3b512c" args="(XEmacPs *InstancePtr, u32 Options)" -->
</div><p>
<a class="anchor" name="ac00eaf66004d2d1d788ca01ed3b512c"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_SetOptions" ref="ac00eaf66004d2d1d788ca01ed3b512c" args="(XEmacPs *InstancePtr, u32 Options)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacPs_SetOptions </td>
<td class="memname">int XEmacPs_SetOptions </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
@ -689,34 +706,33 @@
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Set options for the driver/device. The driver should be stopped with <a class="el" href="xemacps_8c.html#af27b057022a2e97201f6d55d61d4a3da">XEmacPs_Stop()</a> before changing options.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Set options for the driver/device. The driver should be stopped with <a class="el" href="xemacps_8c.html#f27b057022a2e97201f6d55d61d4a3da">XEmacPs_Stop()</a> before changing options.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Options</em>&nbsp;</td><td>are the options to set. Multiple options can be set by OR'ing XTE_*_OPTIONS constants together. Options not specified are not affected.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the options were set successfully</li>
<li>XST_DEVICE_IS_STARTED if the device has not yet been stopped</li>
</ul>
<dl compact><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the options were set successfully</li><li>XST_DEVICE_IS_STARTED if the device has not yet been stopped</li></ul>
</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>See <a class="el" href="xemacps_8h.html">xemacps.h</a> for a description of the available options. </dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>See <a class="el" href="xemacps_8h.html">xemacps.h</a> for a description of the available options. </dd></dl>
</div>
</div>
<a class="anchor" id="a54f76825f543ad6a85fadb5609b5bd06"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_SetTypeIdCheck" ref="a54f76825f543ad6a85fadb5609b5bd06" args="(XEmacPs *InstancePtr, u32 Id_Check, u8 Index)" -->
</div><p>
<a class="anchor" name="54f76825f543ad6a85fadb5609b5bd06"></a><!-- doxytag: member="xemacps_control.c::XEmacPs_SetTypeIdCheck" ref="54f76825f543ad6a85fadb5609b5bd06" args="(XEmacPs *InstancePtr, u32 Id_Check, u8 Index)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacPs_SetTypeIdCheck </td>
<td class="memname">int XEmacPs_SetTypeIdCheck </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
@ -736,31 +752,25 @@
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Set the Type ID match for this driver/device. The register is a 32-bit value. The device must be stopped before calling this function.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Set the Type ID match for this driver/device. The register is a 32-bit value. The device must be stopped before calling this function.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Id_Check</em>&nbsp;</td><td>is type ID to be configured. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Index</em>&nbsp;</td><td>is a index to which Type ID (1-4).</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the MAC address was set successfully</li>
<li>XST_DEVICE_IS_STARTED if the device has not yet been stopped </li>
</ul>
<dl compact><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the MAC address was set successfully</li><li>XST_DEVICE_IS_STARTED if the device has not yet been stopped </li></ul>
</dd></dl>
</div>
</div>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
</div><p>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,55 +2,56 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: xemacps_g.c File Reference
xemacps_g.c File Reference
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>xemacps_g.c File Reference</h1><code>#include &quot;xparameters.h&quot;</code><br/>
<code>#include &quot;<a class="el" href="xemacps_8h.html">xemacps.h</a>&quot;</code><br/>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__g_8c.html#aa61daddef11f365ecfe27c06988157b5">XEmacPs_ConfigTable</a> [XPAR_XEMACPS_NUM_INSTANCES]</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>This file contains a configuration table that specifies the configuration of ethernet devices in the system.</p>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<h1>xemacps_g.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
This file contains a configuration table that specifies the configuration of ethernet devices in the system.<p>
<pre>
MODIFICATION HISTORY:</pre><pre> Ver Who Date Changes
MODIFICATION HISTORY:</pre><p>
<pre> Ver Who Date Changes
----- ---- -------- -----------------------------------------------
1.00a wsy 01/10/10 First release
2.00 hk 22/01/14 Added check for picking second instance
</pre> <hr/><h2>Variable Documentation</h2>
<a class="anchor" id="aa61daddef11f365ecfe27c06988157b5"></a><!-- doxytag: member="xemacps_g.c::XEmacPs_ConfigTable" ref="aa61daddef11f365ecfe27c06988157b5" args="[XPAR_XEMACPS_NUM_INSTANCES]" -->
</pre>
<p>
<code>#include &quot;xparameters.h&quot;</code><br>
<code>#include &quot;<a class="el" href="xemacps_8h.html">xemacps.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__g_8c.html#a61daddef11f365ecfe27c06988157b5">XEmacPs_ConfigTable</a> [XPAR_XEMACPS_NUM_INSTANCES]</td></tr>
</table>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="a61daddef11f365ecfe27c06988157b5"></a><!-- doxytag: member="xemacps_g.c::XEmacPs_ConfigTable" ref="a61daddef11f365ecfe27c06988157b5" args="[XPAR_XEMACPS_NUM_INSTANCES]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a> <a class="el" href="xemacps__g_8c.html#aa61daddef11f365ecfe27c06988157b5">XEmacPs_ConfigTable</a>[XPAR_XEMACPS_NUM_INSTANCES]</td>
<td class="memname"><a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a> <a class="el" href="xemacps__g_8c.html#a61daddef11f365ecfe27c06988157b5">XEmacPs_ConfigTable</a>[XPAR_XEMACPS_NUM_INSTANCES] </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
{
XPAR_XEMACPS_0_DEVICE_ID,
@ -65,10 +66,5 @@
}
</pre></div>
</div>
</div>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
</div><p>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,74 +2,69 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: xemacps_hw.c File Reference
xemacps_hw.c File Reference
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>xemacps_hw.c File Reference</h1><code>#include &quot;xparameters.h&quot;</code><br/>
<code>#include &quot;<a class="el" href="xemacps__hw_8h.html">xemacps_hw.h</a>&quot;</code><br/>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__hw_8c.html#a33f7b6941750d70804ecb74cee107a1e">XEmacPs_ResetHw</a> (u32 BaseAddr)</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>This file contains the implementation of the ethernet interface reset sequence</p>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<h1>xemacps_hw.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
This file contains the implementation of the ethernet interface reset sequence<p>
<pre>
MODIFICATION HISTORY:</pre><pre> Ver Who Date Changes
MODIFICATION HISTORY:</pre><p>
<pre> Ver Who Date Changes
----- ---- -------- -------------------------------------------------------
1.05a kpc 28/06/13 First release
</pre> <hr/><h2>Function Documentation</h2>
<a class="anchor" id="a33f7b6941750d70804ecb74cee107a1e"></a><!-- doxytag: member="xemacps_hw.c::XEmacPs_ResetHw" ref="a33f7b6941750d70804ecb74cee107a1e" args="(u32 BaseAddr)" -->
</pre>
<p>
<code>#include &quot;xparameters.h&quot;</code><br>
<code>#include &quot;<a class="el" href="xemacps__hw_8h.html">xemacps_hw.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__hw_8c.html#33f7b6941750d70804ecb74cee107a1e">XEmacPs_ResetHw</a> (u32 BaseAddr)</td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="33f7b6941750d70804ecb74cee107a1e"></a><!-- doxytag: member="xemacps_hw.c::XEmacPs_ResetHw" ref="33f7b6941750d70804ecb74cee107a1e" args="(u32 BaseAddr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XEmacPs_ResetHw </td>
<td class="memname">void XEmacPs_ResetHw </td>
<td>(</td>
<td class="paramtype">u32&nbsp;</td>
<td class="paramname"> <em>BaseAddr</em></td>
<td class="paramname"> <em>BaseAddr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This function perform the reset sequence to the given emacps interface by configuring the appropriate control bits in the emacps specifc registers. the emacps reset squence involves the following steps Disable all the interuupts Clear the status registers Disable Rx and Tx engines Update the Tx and Rx descriptor queue registers with reset values Update the other relevant control registers with reset value</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
This function perform the reset sequence to the given emacps interface by configuring the appropriate control bits in the emacps specifc registers. the emacps reset squence involves the following steps Disable all the interuupts Clear the status registers Disable Rx and Tx engines Update the Tx and Rx descriptor queue registers with reset values Update the other relevant control registers with reset value<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>BaseAddress</em>&nbsp;</td><td>of the interface</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>N/A</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>This function will not modify the slcr registers that are relavant for emacps controller </dd></dl>
<dl compact><dt><b>Returns:</b></dt><dd>N/A</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>This function will not modify the slcr registers that are relavant for emacps controller </dd></dl>
</div>
</div>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
</div><p>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,41 +2,30 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: xemacps_intr.c File Reference
xemacps_intr.c File Reference
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>xemacps_intr.c File Reference</h1><code>#include &quot;<a class="el" href="xemacps_8h.html">xemacps.h</a>&quot;</code><br/>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__intr_8c.html#a6ff686c1d27451aa864729d78b9570d6">XEmacPs_SetHandler</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, u32 HandlerType, void *FuncPtr, void *CallBackRef)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__intr_8c.html#a7fc1d16432c05d4e773bed878f528184">XEmacPs_IntrHandler</a> (void *XEmacPsPtr)</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Functions in this file implement general purpose interrupt processing related functionality. See <a class="el" href="xemacps_8h.html">xemacps.h</a> for a detailed description of the driver.</p>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<h1>xemacps_intr.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
Functions in this file implement general purpose interrupt processing related functionality. See <a class="el" href="xemacps_8h.html">xemacps.h</a> for a detailed description of the driver.<p>
<pre>
MODIFICATION HISTORY:</pre><pre> Ver Who Date Changes
MODIFICATION HISTORY:</pre><p>
<pre> Ver Who Date Changes
----- ---- -------- -------------------------------------------------------
1.00a wsy 01/10/10 First release
1.03a asa 01/24/13 Fix for CR #692702 which updates error handling for
@ -48,39 +37,51 @@
bit 18 to flush a packet from Rx DPRAM immediately. The
changes for it are done in the function
XEmacPs_IntrHandler.
</pre> <hr/><h2>Function Documentation</h2>
<a class="anchor" id="a7fc1d16432c05d4e773bed878f528184"></a><!-- doxytag: member="xemacps_intr.c::XEmacPs_IntrHandler" ref="a7fc1d16432c05d4e773bed878f528184" args="(void *XEmacPsPtr)" -->
</pre>
<p>
<code>#include &quot;<a class="el" href="xemacps_8h.html">xemacps.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__intr_8c.html#6ff686c1d27451aa864729d78b9570d6">XEmacPs_SetHandler</a> (<a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *InstancePtr, u32 HandlerType, void *FuncPtr, void *CallBackRef)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__intr_8c.html#7fc1d16432c05d4e773bed878f528184">XEmacPs_IntrHandler</a> (void *XEmacPsPtr)</td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="7fc1d16432c05d4e773bed878f528184"></a><!-- doxytag: member="xemacps_intr.c::XEmacPs_IntrHandler" ref="7fc1d16432c05d4e773bed878f528184" args="(void *XEmacPsPtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XEmacPs_IntrHandler </td>
<td class="memname">void XEmacPs_IntrHandler </td>
<td>(</td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>XEmacPsPtr</em></td>
<td class="paramname"> <em>XEmacPsPtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Master interrupt handler for EMAC driver. This routine will query the status of the device, bump statistics, and invoke user callbacks.</p>
<p>This routine must be connected to an interrupt controller using OS/BSP specific methods.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Master interrupt handler for EMAC driver. This routine will query the status of the device, bump statistics, and invoke user callbacks.<p>
This routine must be connected to an interrupt controller using OS/BSP specific methods.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>XEmacPsPtr</em>&nbsp;</td><td>is a pointer to the XEMACPS instance that has caused the interrupt. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a6ff686c1d27451aa864729d78b9570d6"></a><!-- doxytag: member="xemacps_intr.c::XEmacPs_SetHandler" ref="a6ff686c1d27451aa864729d78b9570d6" args="(XEmacPs *InstancePtr, u32 HandlerType, void *FuncPtr, void *CallBackRef)" -->
</div><p>
<a class="anchor" name="6ff686c1d27451aa864729d78b9570d6"></a><!-- doxytag: member="xemacps_intr.c::XEmacPs_SetHandler" ref="6ff686c1d27451aa864729d78b9570d6" args="(XEmacPs *InstancePtr, u32 HandlerType, void *FuncPtr, void *CallBackRef)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XEmacPs_SetHandler </td>
<td class="memname">int XEmacPs_SetHandler </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_emac_ps.html">XEmacPs</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
@ -106,30 +107,26 @@
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Install an asynchronious handler function for the given HandlerType:</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Install an asynchronious handler function for the given HandlerType:<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>HandlerType</em>&nbsp;</td><td>indicates what interrupt handler type is. XEMACPS_HANDLER_DMASEND, XEMACPS_HANDLER_DMARECV and XEMACPS_HANDLER_ERROR. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>FuncPtr</em>&nbsp;</td><td>is the pointer to the callback function </td></tr>
<tr><td valign="top"></td><td valign="top"><em>CallBackRef</em>&nbsp;</td><td>is the upper layer callback reference passed back when when the callback function is invoked.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
<p>None.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>There is no assert on the CallBackRef since the driver doesn't know what it is. </dd></dl>
<dl compact><dt><b>Returns:</b></dt><dd></dd></dl>
None.<p>
<dl compact><dt><b>Note:</b></dt><dd>There is no assert on the CallBackRef since the driver doesn't know what it is. </dd></dl>
</div>
</div>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
</div><p>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -2,73 +2,68 @@
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Xilinx Driver emacps v2_1: xemacps_sinit.c File Reference
xemacps_sinit.c File Reference
</title>
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>xemacps_sinit.c File Reference</h1><code>#include &quot;xparameters.h&quot;</code><br/>
<code>#include &quot;<a class="el" href="xemacps_8h.html">xemacps.h</a>&quot;</code><br/>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__sinit_8c.html#a54751572e0cfaf72bce1bf26894291fb">XEmacPs_LookupConfig</a> (u16 DeviceId)</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>This file contains lookup method by device ID when success, it returns pointer to config table to be used to initialize the device.</p>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<h1>xemacps_sinit.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
This file contains lookup method by device ID when success, it returns pointer to config table to be used to initialize the device.<p>
<pre>
MODIFICATION HISTORY:</pre><pre> Ver Who Date Changes
MODIFICATION HISTORY:</pre><p>
<pre> Ver Who Date Changes
----- ---- -------- -------------------------------------------------------
1.00a wsy 01/10/10 New
</pre> <hr/><h2>Function Documentation</h2>
<a class="anchor" id="a54751572e0cfaf72bce1bf26894291fb"></a><!-- doxytag: member="xemacps_sinit.c::XEmacPs_LookupConfig" ref="a54751572e0cfaf72bce1bf26894291fb" args="(u16 DeviceId)" -->
</pre>
<p>
<code>#include &quot;xparameters.h&quot;</code><br>
<code>#include &quot;<a class="el" href="xemacps_8h.html">xemacps.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xemacps__sinit_8c.html#54751572e0cfaf72bce1bf26894291fb">XEmacPs_LookupConfig</a> (u16 DeviceId)</td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="54751572e0cfaf72bce1bf26894291fb"></a><!-- doxytag: member="xemacps_sinit.c::XEmacPs_LookupConfig" ref="54751572e0cfaf72bce1bf26894291fb" args="(u16 DeviceId)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a>* XEmacPs_LookupConfig </td>
<td class="memname"><a class="el" href="struct_x_emac_ps___config.html">XEmacPs_Config</a>* XEmacPs_LookupConfig </td>
<td>(</td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>DeviceId</em></td>
<td class="paramname"> <em>DeviceId</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Lookup the device configuration based on the unique device ID. The table contains the configuration info for each device in the system.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<p>
Lookup the device configuration based on the unique device ID. The table contains the configuration info for each device in the system.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>DeviceId</em>&nbsp;</td><td>is the unique device ID of the device being looked up.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to the configuration table entry corresponding to the given device ID, or NULL if no match is found. </dd></dl>
<dl compact><dt><b>Returns:</b></dt><dd>A pointer to the configuration table entry corresponding to the given device ID, or NULL if no match is found. </dd></dl>
</div>
</div>
</div>
<p class="Copyright">
Copyright &copy; 1995-2014 Xilinx, Inc. All rights reserved.
</p>
</body>
</html>
</div><p>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.