📄 ethernet_8h.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>ethernet.h File Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.2.18 --><center><a class="qindex" href="main.html">Main Page</a> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="globals.html">Globals</a> <a class="qindex" href="pages.html">Related Pages</a> <a class="qindex" href="examples.html">Examples</a> </center><hr><h1>/opentcp/include/inet/ethernet.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2> <dl compact><dt><b>Author: </b></dt><dd> <ul><li> Jari Lahti (<a href="mailto:jari.lahti@violasystems.com">jari.lahti@violasystems.com</a>) </ul></dl><dl compact><dt><b>Version: </b></dt><dd>1.0 </dl><dl compact><dt><b>Date: </b></dt><dd>23.6.2002</dl>OpenTCP Ethernet driver and protocol function declarations, constants, etc.<p><p>Definition in file <a class="el" href="ethernet_8h-source.html">ethernet.h</a>.<p><a href="ethernet_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0><tr><td></td></tr><tr><td colspan=2><br><h2>Data Structures</h2></td></tr><tr><td nowrap align=right valign=top>struct </td><td valign=bottom><a class="el" href="structethernet__frame.html">ethernet_frame</a></td></tr><tr><td> </td><td><font size=-1><em>Ethernet packet header fields.</em> <a href="structethernet__frame.html#_details">More...</a><em></em></font><br><br></td></tr><tr><td colspan=2><br><h2>Defines</h2></td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a4">PROTOCOL_IP</a> 0x0800</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a5">PROTOCOL_ARP</a> 0x0806</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a6">CR</a> 0x00</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a7">PSTART</a> 0x01</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a8">PSTOP</a> 0x02</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a9">BOUNDARY</a> 0x03</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a10">TPSR</a> 0x04</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a11">TSR</a> 0x04</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a12">TBCR0</a> 0x05</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a13">TBCR1</a> 0x06</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a14">ISR</a> 0x07</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a15">RSAR0</a> 0x08</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a17">RBCR0</a> 0x0A</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a19">RCR</a> 0x0C</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a20">TCR</a> 0x0D</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a21">DCR</a> 0x0E</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a22">IMR</a> 0x0F</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a23">PAR0</a> 0x01</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a29">CURR</a> 0x07</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a30">MAR0</a> 0x08</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a31">IOPORT</a> 0x10</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a33">RXBUF_START</a> 0x40</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a34">RXBUF_END</a> 0x4D</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a35">ARP_BUFFER</a> 0x5F</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a36">ICMP_BUF</a> 0x4D</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a37">TCP_BUF</a> 0x53</td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="ethernet_8h.html#a38">UDP_BUF</a> 0x59</td></tr><tr><td colspan=2><br><h2>Functions</h2></td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="ethernet_8h.html#a39">outNE2000</a> (UINT8, UINT8)</td></tr><tr><td> </td><td><font size=-1><em>Write data to NE2000 register.</em> <a href="#a39"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="ethernet_8h.html#a40">outNE2000again</a> (UINT8)</td></tr><tr><td> </td><td><font size=-1><em>Write data to the same NE2000 register as before.</em> <a href="#a40"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>UINT8 </td><td valign=bottom><a class="el" href="ethernet_8h.html#a41">inNE2000</a> (UINT8)</td></tr><tr><td> </td><td><font size=-1><em>Read byte from NE2000 register.</em> <a href="#a41"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>UINT8 </td><td valign=bottom><a class="el" href="ethernet_8h.html#a42">inNE2000again</a> (void)</td></tr><tr><td> </td><td><font size=-1><em>Continue reading byte(s) from NE2000.</em> <a href="#a42"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>UINT8 </td><td valign=bottom><a class="el" href="ethernet_8h.html#a43">NE2000CheckRxFrame</a> (void)</td></tr><tr><td> </td><td><font size=-1><em>Check to see if new frame has been received.</em> <a href="#a43"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="ethernet_8h.html#a44">NE2000DumpRxFrame</a> (void)</td></tr><tr><td> </td><td><font size=-1><em>Discard current received frame.</em> <a href="#a44"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="ethernet_8h.html#a45">NE2000Init</a> (UINT8 *)</td></tr><tr><td> </td><td><font size=-1><em>Initialize and configure RTL8019AS.</em> <a href="#a45"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="ethernet_8h.html#a46">NE2000CheckOverFlow</a> (void)</td></tr><tr><td> </td><td><font size=-1><em>Check if receive-buffer overflow occured.</em> <a href="#a46"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>UINT8 </td><td valign=bottom><a class="el" href="ethernet_8h.html#a47">NE2000ReceiveFrame</a> (void)</td></tr><tr><td> </td><td><font size=-1><em>Checks if new Ethernet frame exists and initializes variables accordingly.</em> <a href="#a47"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="ethernet_8h.html#a48">InitTransmission</a> (UINT8)</td></tr><tr><td> </td><td><font size=-1><em>Initialize transmission of new packet.</em> <a href="#a48"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="ethernet_8h.html#a49">NE2000WriteEthernetHeader</a> (struct <a class="el" href="structethernet__frame.html">ethernet_frame</a> *)</td></tr><tr><td> </td><td><font size=-1><em>Write Ethernet Header to transmission buffer.</em> <a href="#a49"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="ethernet_8h.html#a50">NE2000DMAInit</a> (UINT8)</td></tr><tr><td> </td><td><font size=-1><em>Initialize NE2000 in preparation for remote DMA.</em> <a href="#a50"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="ethernet_8h.html#a51">NE2000DMAInit_position</a> (UINT16)</td></tr><tr><td> </td><td><font size=-1><em>Initialize reading from NE2000.</em> <a href="#a51"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="ethernet_8h.html#a52">NE2000SendFrame</a> (UINT16)</td></tr><tr><td> </td><td><font size=-1><em>Instruct NIC to send the Ethernet frame.</em> <a href="#a52"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="ethernet_8h.html#a53">NE2000EnterSleep</a> (void)</td></tr><tr><td> </td><td><font size=-1><em>Put NE2000 to sleep mode.</em> <a href="#a53"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="ethernet_8h.html#a54">NE2000ExitSleep</a> (void)</td></tr><tr><td> </td><td><font size=-1><em>Restore NE2000 from sleep mode.</em> <a href="#a54"></a><em></em></font><br><br></td></tr></table><hr><h2>Define Documentation</h2><a name="a4" doxytag="ethernet.h::PROTOCOL_IP"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define PROTOCOL_IP 0x0800 </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>IP over Ethernet <p>Definition at line <a class="el" href="ethernet_8h-source.html#l00080">80</a> of file <a class="el" href="ethernet_8h-source.html">ethernet.h</a>.<p>Referenced by <a class="el" href="ip_8c-source.html#l00115">process_ip_in()</a>, and <a class="el" href="ip_8c-source.html#l00300">process_ip_out()</a>. </td> </tr></table><a name="a5" doxytag="ethernet.h::PROTOCOL_ARP"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define PROTOCOL_ARP 0x0806 </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>ARP over Ethernet <p>Definition at line <a class="el" href="ethernet_8h-source.html#l00081">81</a> of file <a class="el" href="ethernet_8h-source.html">ethernet.h</a>.<p>Referenced by <a class="el" href="arp_8c-source.html#l00390">arp_send_req()</a>, and <a class="el" href="arp_8c-source.html#l00188">arp_send_response()</a>. </td> </tr></table><a name="a6" doxytag="ethernet.h::CR"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define CR 0x00 </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Command register, R/W <p>Definition at line <a class="el" href="ethernet_8h-source.html#l00085">85</a> of file <a class="el" href="ethernet_8h-source.html">ethernet.h</a>.<p>Referenced by <a class="el" href="ethernet_8c-source.html#l00570">InitTransmission()</a>, <a class="el" href="ethernet_8c-source.html#l00393">NE2000CheckOverFlow()</a>, <a class="el" href="ethernet_8c-source.html#l00274">NE2000CheckRxFrame()</a>, <a class="el" href="ethernet_8c-source.html#l00639">NE2000DMAInit()</a>, <a class="el" href="ethernet_8c-source.html#l00665">NE2000DMAInit_position()</a>, <a class="el" href="ethernet_8c-source.html#l00304">NE2000DumpRxFrame()</a>, <a class="el" href="ethernet_8c-source.html#l00760">NE2000EnterSleep()</a>, <a class="el" href="ethernet_8c-source.html#l00779">NE2000ExitSleep()</a>, <a class="el" href="ethernet_8c-source.html#l00327">NE2000Init()</a>, <a class="el" href="ethernet_8c-source.html#l00482">NE2000ReceiveFrame()</a>, and <a class="el" href="ethernet_8c-source.html#l00725">NE2000SendFrame()</a>. </td> </tr></table><a name="a7" doxytag="ethernet.h::PSTART"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define PSTART 0x01 </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Rx buffer start page, W <p>Definition at line <a class="el" href="ethernet_8h-source.html#l00086">86</a> of file <a class="el" href="ethernet_8h-source.html">ethernet.h</a>.<p>Referenced by <a class="el" href="ethernet_8c-source.html#l00327">NE2000Init()</a>. </td> </tr></table><a name="a8" doxytag="ethernet.h::PSTOP"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define PSTOP 0x02 </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Rx buffer stop page <p>Definition at line <a class="el" href="ethernet_8h-source.html#l00087">87</a> of file <a class="el" href="ethernet_8h-source.html">ethernet.h</a>.<p>Referenced by <a class="el" href="ethernet_8c-source.html#l00327">NE2000Init()</a>. </td> </tr></table><a name="a9" doxytag="ethernet.h::BOUNDARY"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define BOUNDARY 0x03 </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Address of last byte that host has read from RxBuf, R/W <p>Definition at line <a class="el" href="ethernet_8h-source.html#l00088">88</a> of file <a class="el" href="ethernet_8h-source.html">ethernet.h</a>.<p>Referenced by <a class="el" href="ethernet_8c-source.html#l00393">NE2000CheckOverFlow()</a>, <a class="el" href="ethernet_8c-source.html#l00274">NE2000CheckRxFrame()</a>, <a class="el" href="ethernet_8c-source.html#l00304">NE2000DumpRxFrame()</a>, <a class="el" href="ethernet_8c-source.html#l00327">NE2000Init()</a>, and <a class="el" href="ethernet_8c-source.html#l00482">NE2000ReceiveFrame()</a>. </td> </tr></table><a name="a10" doxytag="ethernet.h::TPSR"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define TPSR 0x04 </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Tx Buf start page, W <p>Definition at line <a class="el" href="ethernet_8h-source.html#l00091">91</a> of file <a class="el" href="ethernet_8h-source.html">ethernet.h</a>.<p>Referenced by <a class="el" href="ethernet_8c-source.html#l00570">InitTransmission()</a>. </td> </tr></table><a name="a11" doxytag="ethernet.h::TSR"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define TSR 0x04 </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Status of Tx, R <p>Definition at line <a class="el" href="ethernet_8h-source.html#l00092">92</a> of file <a class="el" href="ethernet_8h-source.html">ethernet.h</a>. </td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -