gnuk/ChibiOS_2.0.6/docs/html/group___m_a_c.html

610 lines
37 KiB
HTML
Raw Normal View History

2010-08-10 03:11:02 +00:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>ChibiOS/RT: MAC Driver</title>
<link href="custom.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<table style="text-align: center; width: 100%;" border="0"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="width: 80px;"><img alt="ChibiOS/RT Logo" src="logo_small.png"></td>
<td><big><big>ChibiOS/RT</big></big><br><br>Architecture - Reference Manual - Guides</td>
<td style="width: 80px;"></td>
</tr>
</tbody>
</table>
<hr size="1">
2010-11-22 05:53:37 +00:00
<!-- Generated by Doxygen 1.7.1 -->
2010-08-10 03:11:02 +00:00
<div class="navigation" id="top">
<div class="tabs">
2010-11-22 05:53:37 +00:00
<ul class="tablist">
2010-08-10 03:11:02 +00:00
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
2010-11-22 05:53:37 +00:00
<div class="header">
<div class="summary">
<a href="#groups">Modules</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
2010-08-10 03:11:02 +00:00
<h1>MAC Driver<br/>
<small>
[<a class="el" href="group___i_o.html">HAL</a>]</small>
2010-11-22 05:53:37 +00:00
</h1> </div>
</div>
<div class="contents">
2010-08-10 03:11:02 +00:00
<p>Generic MAC driver.
<a href="#_details">More...</a></p>
<p><div class="dynheader">
Collaboration diagram for MAC Driver:</div>
2010-11-22 05:53:37 +00:00
<div class="dyncontent">
<center><table><tr><td><img src="group___m_a_c.png" border="0" alt="" usemap="#group______m__a__c"/>
<map name="group______m__a__c" id="group______m__a__c">
<area shape="rect" id="node1" href="group___i_o.html" title="Hardware Abstraction Layer." alt="" coords="5,5,48,32"/> <area shape="rect" id="node3" href="group___m_a_c___l_l_d.html" title="MAC Driver low level driver template." alt="" coords="221,5,352,32"/> </map>
</td></tr></table></center>
2010-08-10 03:11:02 +00:00
</div>
</p>
<hr/><a name="_details"></a><h2>Description</h2>
<p>Generic MAC driver. </p>
<p>This module implements a generic interface for MAC (Media Access Control) drivers, as example Ethernet controllers. </p>
2010-11-22 05:53:37 +00:00
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="groups"></a>
Modules</h2></td></tr>
2010-08-10 03:11:02 +00:00
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_a_c___l_l_d.html">MAC Low Level Driver</a></td></tr>
<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p><a class="el" href="group___m_a_c.html">MAC Driver</a> low level driver template. </p>
<br/></td></tr>
</p>
2010-11-22 05:53:37 +00:00
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
2010-08-10 03:11:02 +00:00
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_a_c.html#ga927277e434de4aa3e2831aeeccb5e5a7">macGetReceiveEventSource</a>(macp)&nbsp;&nbsp;&nbsp;(&amp;(macp)-&gt;md_rdevent)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the received frames event source. <a href="#ga927277e434de4aa3e2831aeeccb5e5a7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_a_c.html#ga306157ceb1009737b7e9d7c74d00ae8a">macWriteTransmitDescriptor</a>(tdp, buf, size)&nbsp;&nbsp;&nbsp;mac_lld_write_transmit_descriptor(tdp, buf, size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Writes to a transmit descriptor's stream. <a href="#ga306157ceb1009737b7e9d7c74d00ae8a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_a_c.html#ga51d154fd3f0a904886f22c63e1ff87ba">macReadReceiveDescriptor</a>(rdp, buf, size)&nbsp;&nbsp;&nbsp;mac_lld_read_receive_descriptor(rdp, buf, size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reads from a receive descriptor's stream. <a href="#ga51d154fd3f0a904886f22c63e1ff87ba"></a><br/></td></tr>
2010-11-22 05:53:37 +00:00
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
2010-08-10 03:11:02 +00:00
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_a_c.html#ga2f76703cfc76da57feedb57e9d37c8a4">macInit</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">MAC Driver initialization. <a href="#ga2f76703cfc76da57feedb57e9d37c8a4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_a_c.html#ga34d60b00ad9794d52da6833e18c9ec70">macObjectInit</a> (<a class="el" href="struct_m_a_c_driver.html">MACDriver</a> *macp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the standard part of a <code><a class="el" href="struct_m_a_c_driver.html" title="Structure representing a MAC driver.">MACDriver</a></code> structure. <a href="#ga34d60b00ad9794d52da6833e18c9ec70"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_a_c.html#ga2d3c3dcea43573cf2b5d674e98a37aa3">macSetAddress</a> (<a class="el" href="struct_m_a_c_driver.html">MACDriver</a> *macp, const <a class="el" href="group___s_t_m8___c_o_r_e.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *p)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">MAC address setup. <a href="#ga2d3c3dcea43573cf2b5d674e98a37aa3"></a><br/></td></tr>
2010-11-22 05:53:37 +00:00
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__types.html#ga35bcb0c321cd7bc45bf1a11fa17ebdd3">msg_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_a_c.html#ga7304721038db1d7c0cb616c9c4d3f0ce">macWaitTransmitDescriptor</a> (<a class="el" href="struct_m_a_c_driver.html">MACDriver</a> *macp, <a class="el" href="struct_m_a_c_transmit_descriptor.html">MACTransmitDescriptor</a> *tdp, <a class="el" href="group__types.html#gae3e32a98d431a02106616da3071832dd">systime_t</a> time)</td></tr>
2010-08-10 03:11:02 +00:00
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocates a transmission descriptor. <a href="#ga7304721038db1d7c0cb616c9c4d3f0ce"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_a_c.html#ga0f692163094614561eace2a8c30938f9">macReleaseTransmitDescriptor</a> (<a class="el" href="struct_m_a_c_transmit_descriptor.html">MACTransmitDescriptor</a> *tdp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Releases a transmit descriptor and starts the transmission of the enqueued data as a single frame. <a href="#ga0f692163094614561eace2a8c30938f9"></a><br/></td></tr>
2010-11-22 05:53:37 +00:00
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__types.html#ga35bcb0c321cd7bc45bf1a11fa17ebdd3">msg_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_a_c.html#ga151a33674ef86c2403ac7797fa87805c">macWaitReceiveDescriptor</a> (<a class="el" href="struct_m_a_c_driver.html">MACDriver</a> *macp, <a class="el" href="struct_m_a_c_receive_descriptor.html">MACReceiveDescriptor</a> *rdp, <a class="el" href="group__types.html#gae3e32a98d431a02106616da3071832dd">systime_t</a> time)</td></tr>
2010-08-10 03:11:02 +00:00
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Waits for a received frame. <a href="#ga151a33674ef86c2403ac7797fa87805c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_a_c.html#ga4c6470b965aef1ee65bc6dd24c71bc5c">macReleaseReceiveDescriptor</a> (<a class="el" href="struct_m_a_c_receive_descriptor.html">MACReceiveDescriptor</a> *rdp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Releases a receive descriptor. <a href="#ga4c6470b965aef1ee65bc6dd24c71bc5c"></a><br/></td></tr>
2010-11-22 05:53:37 +00:00
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__types.html#ga7556af1cb61728b53228fa3af1c851de">bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_a_c.html#gab5bf748233450f371b5a88f2accf87e1">macPollLinkStatus</a> (<a class="el" href="struct_m_a_c_driver.html">MACDriver</a> *macp)</td></tr>
2010-08-10 03:11:02 +00:00
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Updates and returns the link status. <a href="#gab5bf748233450f371b5a88f2accf87e1"></a><br/></td></tr>
</table>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="ga927277e434de4aa3e2831aeeccb5e5a7"></a><!-- doxytag: member="mac.h::macGetReceiveEventSource" ref="ga927277e434de4aa3e2831aeeccb5e5a7" args="(macp)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define macGetReceiveEventSource</td>
<td>(</td>
2010-11-22 05:53:37 +00:00
<td class="paramtype">&nbsp;</td>
<td class="paramname">macp</td>
2010-08-10 03:11:02 +00:00
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;(&amp;(macp)-&gt;md_rdevent)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Returns the received frames event source. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>macp</em>&nbsp;</td><td>pointer to the <code><a class="el" href="struct_m_a_c_driver.html" title="Structure representing a MAC driver.">MACDriver</a></code> object </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The pointer to the <code><a class="el" href="struct_event_source.html" title="Event Source structure.">EventSource</a></code> structure. </dd></dl>
<p>Definition at line <a class="el" href="mac_8h_source.html#l00072">72</a> of file <a class="el" href="mac_8h_source.html">mac.h</a>.</p>
</div>
</div>
<a class="anchor" id="ga306157ceb1009737b7e9d7c74d00ae8a"></a><!-- doxytag: member="mac.h::macWriteTransmitDescriptor" ref="ga306157ceb1009737b7e9d7c74d00ae8a" args="(tdp, buf, size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define macWriteTransmitDescriptor</td>
<td>(</td>
2010-11-22 05:53:37 +00:00
<td class="paramtype">&nbsp;</td>
<td class="paramname">tdp, </td>
2010-08-10 03:11:02 +00:00
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
2010-11-22 05:53:37 +00:00
<td class="paramtype">&nbsp;</td>
<td class="paramname">buf, </td>
2010-08-10 03:11:02 +00:00
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
2010-11-22 05:53:37 +00:00
<td class="paramtype">&nbsp;</td>
<td class="paramname">size</td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td>&nbsp;&nbsp;&nbsp;mac_lld_write_transmit_descriptor(tdp, buf, size)</td>
2010-08-10 03:11:02 +00:00
</tr>
</table>
</div>
<div class="memdoc">
<p>Writes to a transmit descriptor's stream. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>tdp</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_m_a_c_transmit_descriptor.html" title="Structure representing a transmit descriptor.">MACTransmitDescriptor</a></code> structure </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>buf</em>&nbsp;</td><td>pointer to the buffer containing the data to be written </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>size</em>&nbsp;</td><td>number of bytes to be written </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of bytes written into the descriptor's stream, this value can be less than the amount specified in the parameter <code>size</code> if the maximum frame size is reached. </dd></dl>
<p>Definition at line <a class="el" href="mac_8h_source.html#l00086">86</a> of file <a class="el" href="mac_8h_source.html">mac.h</a>.</p>
</div>
</div>
<a class="anchor" id="ga51d154fd3f0a904886f22c63e1ff87ba"></a><!-- doxytag: member="mac.h::macReadReceiveDescriptor" ref="ga51d154fd3f0a904886f22c63e1ff87ba" args="(rdp, buf, size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define macReadReceiveDescriptor</td>
<td>(</td>
2010-11-22 05:53:37 +00:00
<td class="paramtype">&nbsp;</td>
<td class="paramname">rdp, </td>
2010-08-10 03:11:02 +00:00
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
2010-11-22 05:53:37 +00:00
<td class="paramtype">&nbsp;</td>
<td class="paramname">buf, </td>
2010-08-10 03:11:02 +00:00
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
2010-11-22 05:53:37 +00:00
<td class="paramtype">&nbsp;</td>
<td class="paramname">size</td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td>&nbsp;&nbsp;&nbsp;mac_lld_read_receive_descriptor(rdp, buf, size)</td>
2010-08-10 03:11:02 +00:00
</tr>
</table>
</div>
<div class="memdoc">
<p>Reads from a receive descriptor's stream. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>rdp</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_m_a_c_receive_descriptor.html" title="Structure representing a receive descriptor.">MACReceiveDescriptor</a></code> structure </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>buf</em>&nbsp;</td><td>pointer to the buffer that will receive the read data </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>size</em>&nbsp;</td><td>number of bytes to be read </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of bytes read from the descriptor's stream, this value can be less than the amount specified in the parameter <code>size</code> if there are no more bytes to read. </dd></dl>
<p>Definition at line <a class="el" href="mac_8h_source.html#l00099">99</a> of file <a class="el" href="mac_8h_source.html">mac.h</a>.</p>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga2f76703cfc76da57feedb57e9d37c8a4"></a><!-- doxytag: member="mac.h::macInit" ref="ga2f76703cfc76da57feedb57e9d37c8a4" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void macInit </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>MAC Driver initialization. </p>
<p>Definition at line <a class="el" href="mac_8c_source.html#l00063">63</a> of file <a class="el" href="mac_8c_source.html">mac.c</a>.</p>
<p>References <a class="el" href="group___m_a_c___l_l_d.html#ga37e276cbed823fb80fdce3df3f9f7ddf">mac_lld_init()</a>.</p>
<p>Referenced by <a class="el" href="group___h_a_l.html#gafd89c1650df524d95aef39b8bc38170d">halInit()</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
2010-11-22 05:53:37 +00:00
<div class="dyncontent">
<div class="center"><img src="group___m_a_c_ga2f76703cfc76da57feedb57e9d37c8a4_cgraph.png" border="0" usemap="#group___m_a_c_ga2f76703cfc76da57feedb57e9d37c8a4_cgraph" alt=""/></div>
<map name="group___m_a_c_ga2f76703cfc76da57feedb57e9d37c8a4_cgraph" id="group___m_a_c_ga2f76703cfc76da57feedb57e9d37c8a4_cgraph">
<area shape="rect" id="node3" href="group___m_a_c___l_l_d.html#ga37e276cbed823fb80fdce3df3f9f7ddf" title="Low level MAC initialization." alt="" coords="109,5,187,32"/> </map>
2010-08-10 03:11:02 +00:00
</div>
</p>
</div>
</div>
<a class="anchor" id="ga34d60b00ad9794d52da6833e18c9ec70"></a><!-- doxytag: member="mac.h::macObjectInit" ref="ga34d60b00ad9794d52da6833e18c9ec70" args="(MACDriver *macp)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void macObjectInit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_a_c_driver.html">MACDriver</a> *&nbsp;</td>
<td class="paramname"> <em>macp</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Initialize the standard part of a <code><a class="el" href="struct_m_a_c_driver.html" title="Structure representing a MAC driver.">MACDriver</a></code> structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>macp</em>&nbsp;</td><td>pointer to the <code><a class="el" href="struct_m_a_c_driver.html" title="Structure representing a MAC driver.">MACDriver</a></code> object </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="mac_8c_source.html#l00073">73</a> of file <a class="el" href="mac_8c_source.html">mac.c</a>.</p>
<p>References <a class="el" href="group__events.html#gab8d0fdc09be629dfb438c32a0523db42">chEvtInit</a>, <a class="el" href="group__semaphores.html#gafe8fc6155a871074e8017efd908b2c58">chSemInit()</a>, <a class="el" href="struct_m_a_c_driver.html#a99d364bf90207cc47155765ae151bfc6">MACDriver::md_rdevent</a>, <a class="el" href="struct_m_a_c_driver.html#ade31ca2c5d242cd0418f3e44d92beaee">MACDriver::md_rdsem</a>, and <a class="el" href="struct_m_a_c_driver.html#a667cd08245f7f3cbd2c9fb7cf5abe2bd">MACDriver::md_tdsem</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
2010-11-22 05:53:37 +00:00
<div class="dyncontent">
<div class="center"><img src="group___m_a_c_ga34d60b00ad9794d52da6833e18c9ec70_cgraph.png" border="0" usemap="#group___m_a_c_ga34d60b00ad9794d52da6833e18c9ec70_cgraph" alt=""/></div>
<map name="group___m_a_c_ga34d60b00ad9794d52da6833e18c9ec70_cgraph" id="group___m_a_c_ga34d60b00ad9794d52da6833e18c9ec70_cgraph">
<area shape="rect" id="node3" href="group__semaphores.html#gafe8fc6155a871074e8017efd908b2c58" title="Initializes a semaphore with the specified counter value." alt="" coords="143,5,209,32"/> </map>
2010-08-10 03:11:02 +00:00
</div>
</p>
</div>
</div>
<a class="anchor" id="ga2d3c3dcea43573cf2b5d674e98a37aa3"></a><!-- doxytag: member="mac.h::macSetAddress" ref="ga2d3c3dcea43573cf2b5d674e98a37aa3" args="(MACDriver *macp, const uint8_t *p)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void macSetAddress </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_a_c_driver.html">MACDriver</a> *&nbsp;</td>
<td class="paramname"> <em>macp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group___s_t_m8___c_o_r_e.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *&nbsp;</td>
<td class="paramname"> <em>p</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>MAC address setup. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>This function must be invoked only with the driver in the stopped state. If invoked on an active interface then it is ignored.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>macp</em>&nbsp;</td><td>pointer to the <code><a class="el" href="struct_m_a_c_driver.html" title="Structure representing a MAC driver.">MACDriver</a></code> object </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>p</em>&nbsp;</td><td>pointer to a six bytes buffer containing the MAC address. If this parameter is set to <code>NULL</code> then MAC a system default is used. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="mac_8c_source.html#l00093">93</a> of file <a class="el" href="mac_8c_source.html">mac.c</a>.</p>
<p>References <a class="el" href="group___m_a_c___l_l_d.html#ga73678bb62809ae2a530ffe419c235afd">mac_lld_set_address()</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
2010-11-22 05:53:37 +00:00
<div class="dyncontent">
<div class="center"><img src="group___m_a_c_ga2d3c3dcea43573cf2b5d674e98a37aa3_cgraph.png" border="0" usemap="#group___m_a_c_ga2d3c3dcea43573cf2b5d674e98a37aa3_cgraph" alt=""/></div>
<map name="group___m_a_c_ga2d3c3dcea43573cf2b5d674e98a37aa3_cgraph" id="group___m_a_c_ga2d3c3dcea43573cf2b5d674e98a37aa3_cgraph">
<area shape="rect" id="node3" href="group___m_a_c___l_l_d.html#ga73678bb62809ae2a530ffe419c235afd" title="Low level MAC address setup." alt="" coords="155,5,280,32"/> </map>
2010-08-10 03:11:02 +00:00
</div>
</p>
</div>
</div>
<a class="anchor" id="ga7304721038db1d7c0cb616c9c4d3f0ce"></a><!-- doxytag: member="mac.h::macWaitTransmitDescriptor" ref="ga7304721038db1d7c0cb616c9c4d3f0ce" args="(MACDriver *macp, MACTransmitDescriptor *tdp, systime_t time)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
2010-11-22 05:53:37 +00:00
<td class="memname"><a class="el" href="group__types.html#ga35bcb0c321cd7bc45bf1a11fa17ebdd3">msg_t</a> macWaitTransmitDescriptor </td>
2010-08-10 03:11:02 +00:00
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_a_c_driver.html">MACDriver</a> *&nbsp;</td>
<td class="paramname"> <em>macp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_m_a_c_transmit_descriptor.html">MACTransmitDescriptor</a> *&nbsp;</td>
<td class="paramname"> <em>tdp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
2010-11-22 05:53:37 +00:00
<td class="paramtype"><a class="el" href="group__types.html#gae3e32a98d431a02106616da3071832dd">systime_t</a>&nbsp;</td>
2010-08-10 03:11:02 +00:00
<td class="paramname"> <em>time</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Allocates a transmission descriptor. </p>
<p>One of the available transmission descriptors is locked and returned. If a descriptor is not currently available then the invoking thread is queued until one is freed.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>macp</em>&nbsp;</td><td>pointer to the <code><a class="el" href="struct_m_a_c_driver.html" title="Structure representing a MAC driver.">MACDriver</a></code> object </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>tdp</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_m_a_c_transmit_descriptor.html" title="Structure representing a transmit descriptor.">MACTransmitDescriptor</a></code> structure </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>time</em>&nbsp;</td><td>the number of ticks before the operation timeouts, the following special values are allowed:</p>
<ul>
<li><em>TIME_IMMEDIATE</em> immediate timeout.</li>
<li><em>TIME_INFINITE</em> no timeout.</li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The operation status. </dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>RDY_OK</em>&nbsp;</td><td>the descriptor was obtained. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>RDY_TIMEOUT</em>&nbsp;</td><td>the operation timed out, descriptor not initialized. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="mac_8c_source.html#l00115">115</a> of file <a class="el" href="mac_8c_source.html">mac.c</a>.</p>
<p>References <a class="el" href="group__semaphores.html#ga924ec5d191bb8debe8727ae4dd5d6d03">chSemWaitTimeoutS()</a>, <a class="el" href="group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42">chSysLock</a>, <a class="el" href="group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e">chSysUnlock</a>, <a class="el" href="group__time.html#ga137c8f67c450f34416a786d169be90e2">chTimeNow</a>, <a class="el" href="group___m_a_c___l_l_d.html#ga021a3cb5a0217df7e1891e614c84e087">max_lld_get_transmit_descriptor()</a>, <a class="el" href="struct_m_a_c_driver.html#a667cd08245f7f3cbd2c9fb7cf5abe2bd">MACDriver::md_tdsem</a>, <a class="el" href="group__scheduler.html#gae1c86078318e11c2fa57ee3c2ec69f61">RDY_OK</a>, <a class="el" href="group__scheduler.html#gaf28d5427eeeb8f737cc7db495157780c">RDY_TIMEOUT</a>, and <a class="el" href="group__scheduler.html#gae1568cf3090c973c3bc47f86ae2f5afb">TIME_INFINITE</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
2010-11-22 05:53:37 +00:00
<div class="dyncontent">
<div class="center"><img src="group___m_a_c_ga7304721038db1d7c0cb616c9c4d3f0ce_cgraph.png" border="0" usemap="#group___m_a_c_ga7304721038db1d7c0cb616c9c4d3f0ce_cgraph" alt=""/></div>
<map name="group___m_a_c_ga7304721038db1d7c0cb616c9c4d3f0ce_cgraph" id="group___m_a_c_ga7304721038db1d7c0cb616c9c4d3f0ce_cgraph">
<area shape="rect" id="node3" href="group__semaphores.html#ga924ec5d191bb8debe8727ae4dd5d6d03" title="Performs a wait operation on a semaphore with timeout specification." alt="" coords="237,5,357,32"/> <area shape="rect" id="node7" href="group___m_a_c___l_l_d.html#ga021a3cb5a0217df7e1891e614c84e087" title="Returns a transmission descriptor." alt="" coords="208,56,387,83"/> <area shape="rect" id="node5" href="group__scheduler.html#ga306e564f678c1a39139639490c77e78b" title="Puts the current thread to sleep into the specified state with timeout specification." alt="" coords="435,5,573,32"/> </map>
2010-08-10 03:11:02 +00:00
</div>
</p>
</div>
</div>
<a class="anchor" id="ga0f692163094614561eace2a8c30938f9"></a><!-- doxytag: member="mac.h::macReleaseTransmitDescriptor" ref="ga0f692163094614561eace2a8c30938f9" args="(MACTransmitDescriptor *tdp)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void macReleaseTransmitDescriptor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_a_c_transmit_descriptor.html">MACTransmitDescriptor</a> *&nbsp;</td>
<td class="paramname"> <em>tdp</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Releases a transmit descriptor and starts the transmission of the enqueued data as a single frame. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>tdp</em>&nbsp;</td><td>the pointer to the <code><a class="el" href="struct_m_a_c_transmit_descriptor.html" title="Structure representing a transmit descriptor.">MACTransmitDescriptor</a></code> structure </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="mac_8c_source.html#l00139">139</a> of file <a class="el" href="mac_8c_source.html">mac.c</a>.</p>
<p>References <a class="el" href="group___m_a_c___l_l_d.html#ga29cd5df4ce571b7088c7107cf7901330">mac_lld_release_transmit_descriptor()</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
2010-11-22 05:53:37 +00:00
<div class="dyncontent">
<div class="center"><img src="group___m_a_c_ga0f692163094614561eace2a8c30938f9_cgraph.png" border="0" usemap="#group___m_a_c_ga0f692163094614561eace2a8c30938f9_cgraph" alt=""/></div>
<map name="group___m_a_c_ga0f692163094614561eace2a8c30938f9_cgraph" id="group___m_a_c_ga0f692163094614561eace2a8c30938f9_cgraph">
<area shape="rect" id="node3" href="group___m_a_c___l_l_d.html#ga29cd5df4ce571b7088c7107cf7901330" title="Releases a transmit descriptor and starts the transmission of the enqueued data as a single frame..." alt="" coords="228,5,425,32"/> </map>
2010-08-10 03:11:02 +00:00
</div>
</p>
</div>
</div>
<a class="anchor" id="ga151a33674ef86c2403ac7797fa87805c"></a><!-- doxytag: member="mac.h::macWaitReceiveDescriptor" ref="ga151a33674ef86c2403ac7797fa87805c" args="(MACDriver *macp, MACReceiveDescriptor *rdp, systime_t time)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
2010-11-22 05:53:37 +00:00
<td class="memname"><a class="el" href="group__types.html#ga35bcb0c321cd7bc45bf1a11fa17ebdd3">msg_t</a> macWaitReceiveDescriptor </td>
2010-08-10 03:11:02 +00:00
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_a_c_driver.html">MACDriver</a> *&nbsp;</td>
<td class="paramname"> <em>macp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_m_a_c_receive_descriptor.html">MACReceiveDescriptor</a> *&nbsp;</td>
<td class="paramname"> <em>rdp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
2010-11-22 05:53:37 +00:00
<td class="paramtype"><a class="el" href="group__types.html#gae3e32a98d431a02106616da3071832dd">systime_t</a>&nbsp;</td>
2010-08-10 03:11:02 +00:00
<td class="paramname"> <em>time</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Waits for a received frame. </p>
<p>Stops until a frame is received and buffered. If a frame is not immediately available then the invoking thread is queued until one is received.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>macp</em>&nbsp;</td><td>pointer to the <code><a class="el" href="struct_m_a_c_driver.html" title="Structure representing a MAC driver.">MACDriver</a></code> object </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>rdp</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_m_a_c_receive_descriptor.html" title="Structure representing a receive descriptor.">MACReceiveDescriptor</a></code> structure </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>time</em>&nbsp;</td><td>the number of ticks before the operation timeouts, the following special values are allowed:</p>
<ul>
<li><em>TIME_IMMEDIATE</em> immediate timeout.</li>
<li><em>TIME_INFINITE</em> no timeout.</li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The operation status. </dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>RDY_OK</em>&nbsp;</td><td>the descriptor was obtained. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>RDY_TIMEOUT</em>&nbsp;</td><td>the operation timed out, descriptor not initialized. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="mac_8c_source.html#l00161">161</a> of file <a class="el" href="mac_8c_source.html">mac.c</a>.</p>
<p>References <a class="el" href="group__semaphores.html#ga924ec5d191bb8debe8727ae4dd5d6d03">chSemWaitTimeoutS()</a>, <a class="el" href="group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42">chSysLock</a>, <a class="el" href="group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e">chSysUnlock</a>, <a class="el" href="group__time.html#ga137c8f67c450f34416a786d169be90e2">chTimeNow</a>, <a class="el" href="group___m_a_c___l_l_d.html#ga3420490c83eb7464185717f2044e1bc3">max_lld_get_receive_descriptor()</a>, <a class="el" href="struct_m_a_c_driver.html#ade31ca2c5d242cd0418f3e44d92beaee">MACDriver::md_rdsem</a>, <a class="el" href="group__scheduler.html#gae1c86078318e11c2fa57ee3c2ec69f61">RDY_OK</a>, <a class="el" href="group__scheduler.html#gaf28d5427eeeb8f737cc7db495157780c">RDY_TIMEOUT</a>, and <a class="el" href="group__scheduler.html#gae1568cf3090c973c3bc47f86ae2f5afb">TIME_INFINITE</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
2010-11-22 05:53:37 +00:00
<div class="dyncontent">
<div class="center"><img src="group___m_a_c_ga151a33674ef86c2403ac7797fa87805c_cgraph.png" border="0" usemap="#group___m_a_c_ga151a33674ef86c2403ac7797fa87805c_cgraph" alt=""/></div>
<map name="group___m_a_c_ga151a33674ef86c2403ac7797fa87805c_cgraph" id="group___m_a_c_ga151a33674ef86c2403ac7797fa87805c_cgraph">
<area shape="rect" id="node3" href="group__semaphores.html#ga924ec5d191bb8debe8727ae4dd5d6d03" title="Performs a wait operation on a semaphore with timeout specification." alt="" coords="233,5,353,32"/> <area shape="rect" id="node7" href="group___m_a_c___l_l_d.html#ga3420490c83eb7464185717f2044e1bc3" title="Returns a receive descriptor." alt="" coords="205,56,381,83"/> <area shape="rect" id="node5" href="group__scheduler.html#ga306e564f678c1a39139639490c77e78b" title="Puts the current thread to sleep into the specified state with timeout specification." alt="" coords="429,5,568,32"/> </map>
2010-08-10 03:11:02 +00:00
</div>
</p>
</div>
</div>
<a class="anchor" id="ga4c6470b965aef1ee65bc6dd24c71bc5c"></a><!-- doxytag: member="mac.h::macReleaseReceiveDescriptor" ref="ga4c6470b965aef1ee65bc6dd24c71bc5c" args="(MACReceiveDescriptor *rdp)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void macReleaseReceiveDescriptor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_a_c_receive_descriptor.html">MACReceiveDescriptor</a> *&nbsp;</td>
<td class="paramname"> <em>rdp</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Releases a receive descriptor. </p>
<p>The descriptor and its buffer are made available for more incoming frames.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>rdp</em>&nbsp;</td><td>the pointer to the <code><a class="el" href="struct_m_a_c_receive_descriptor.html" title="Structure representing a receive descriptor.">MACReceiveDescriptor</a></code> structure </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="mac_8c_source.html#l00186">186</a> of file <a class="el" href="mac_8c_source.html">mac.c</a>.</p>
<p>References <a class="el" href="group___m_a_c___l_l_d.html#gaa04797c813452cbc715d4233e4c44f49">mac_lld_release_receive_descriptor()</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
2010-11-22 05:53:37 +00:00
<div class="dyncontent">
<div class="center"><img src="group___m_a_c_ga4c6470b965aef1ee65bc6dd24c71bc5c_cgraph.png" border="0" usemap="#group___m_a_c_ga4c6470b965aef1ee65bc6dd24c71bc5c_cgraph" alt=""/></div>
<map name="group___m_a_c_ga4c6470b965aef1ee65bc6dd24c71bc5c_cgraph" id="group___m_a_c_ga4c6470b965aef1ee65bc6dd24c71bc5c_cgraph">
<area shape="rect" id="node3" href="group___m_a_c___l_l_d.html#gaa04797c813452cbc715d4233e4c44f49" title="Releases a receive descriptor." alt="" coords="224,5,421,32"/> </map>
2010-08-10 03:11:02 +00:00
</div>
</p>
</div>
</div>
<a class="anchor" id="gab5bf748233450f371b5a88f2accf87e1"></a><!-- doxytag: member="mac.h::macPollLinkStatus" ref="gab5bf748233450f371b5a88f2accf87e1" args="(MACDriver *macp)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
2010-11-22 05:53:37 +00:00
<td class="memname"><a class="el" href="group__types.html#ga7556af1cb61728b53228fa3af1c851de">bool_t</a> macPollLinkStatus </td>
2010-08-10 03:11:02 +00:00
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_a_c_driver.html">MACDriver</a> *&nbsp;</td>
<td class="paramname"> <em>macp</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Updates and returns the link status. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>macp</em>&nbsp;</td><td>pointer to the <code><a class="el" href="struct_m_a_c_driver.html" title="Structure representing a MAC driver.">MACDriver</a></code> object </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The link status. </dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>TRUE</em>&nbsp;</td><td>if the link is active. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>FALSE</em>&nbsp;</td><td>if the link is down. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="mac_8c_source.html#l00199">199</a> of file <a class="el" href="mac_8c_source.html">mac.c</a>.</p>
<p>References <a class="el" href="group___m_a_c___l_l_d.html#ga5d9f510e66cbdd6f4968c5411c2de7a5">mac_lld_poll_link_status()</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
2010-11-22 05:53:37 +00:00
<div class="dyncontent">
<div class="center"><img src="group___m_a_c_gab5bf748233450f371b5a88f2accf87e1_cgraph.png" border="0" usemap="#group___m_a_c_gab5bf748233450f371b5a88f2accf87e1_cgraph" alt=""/></div>
<map name="group___m_a_c_gab5bf748233450f371b5a88f2accf87e1_cgraph" id="group___m_a_c_gab5bf748233450f371b5a88f2accf87e1_cgraph">
<area shape="rect" id="node3" href="group___m_a_c___l_l_d.html#ga5d9f510e66cbdd6f4968c5411c2de7a5" title="Updates and returns the link status." alt="" coords="164,5,300,32"/> </map>
2010-08-10 03:11:02 +00:00
</div>
</p>
</div>
</div>
</div>
<hr size="1"><address style="text-align: right;"><small>
2010-11-22 05:53:37 +00:00
Generated on Sun Oct 24 2010 09:40:48 for ChibiOS/RT by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.7.1</small></address>
2010-08-10 03:11:02 +00:00
</body>
</html>