📄 arp_8h-source.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>/opentcp/include/inet/arp.h Source File</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/arp.h</h1><a href="arp_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>00002 <span class="comment"> *Copyright (c) 2000-2002 Viola Systems Ltd.</span>00003 <span class="comment"> *All rights reserved.</span>00004 <span class="comment"> *</span>00005 <span class="comment"> *Redistribution and use in source and binary forms, with or without </span>00006 <span class="comment"> *modification, are permitted provided that the following conditions </span>00007 <span class="comment"> *are met:</span>00008 <span class="comment"> *</span>00009 <span class="comment"> *1. Redistributions of source code must retain the above copyright </span>00010 <span class="comment"> *notice, this list of conditions and the following disclaimer.</span>00011 <span class="comment"> *</span>00012 <span class="comment"> *2. Redistributions in binary form must reproduce the above copyright </span>00013 <span class="comment"> *notice, this list of conditions and the following disclaimer in the </span>00014 <span class="comment"> *documentation and/or other materials provided with the distribution.</span>00015 <span class="comment"> *</span>00016 <span class="comment"> *3. The end-user documentation included with the redistribution, if </span>00017 <span class="comment"> *any, must include the following acknowledgment:</span>00018 <span class="comment"> * "This product includes software developed by Viola </span>00019 <span class="comment"> * Systems (http://www.violasystems.com/)."</span>00020 <span class="comment"> *</span>00021 <span class="comment"> *Alternately, this acknowledgment may appear in the software itself, </span>00022 <span class="comment"> *if and wherever such third-party acknowledgments normally appear.</span>00023 <span class="comment"> *</span>00024 <span class="comment"> *4. The names "OpenTCP" and "Viola Systems" must not be used to </span>00025 <span class="comment"> *endorse or promote products derived from this software without prior </span>00026 <span class="comment"> *written permission. For written permission, please contact </span>00027 <span class="comment"> *opentcp@opentcp.org.</span>00028 <span class="comment"> *</span>00029 <span class="comment"> *5. Products derived from this software may not be called "OpenTCP", </span>00030 <span class="comment"> *nor may "OpenTCP" appear in their name, without prior written </span>00031 <span class="comment"> *permission of the Viola Systems Ltd.</span>00032 <span class="comment"> *</span>00033 <span class="comment"> *THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED </span>00034 <span class="comment"> *WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF </span>00035 <span class="comment"> *MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. </span>00036 <span class="comment"> *IN NO EVENT SHALL VIOLA SYSTEMS LTD. OR ITS CONTRIBUTORS BE LIABLE </span>00037 <span class="comment"> *FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR </span>00038 <span class="comment"> *CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF </span>00039 <span class="comment"> *SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR </span>00040 <span class="comment"> *BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, </span>00041 <span class="comment"> *WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE </span>00042 <span class="comment"> *OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, </span>00043 <span class="comment"> *EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>00044 <span class="comment"> *====================================================================</span>00045 <span class="comment"> *</span>00046 <span class="comment"> *OpenTCP is the unified open source TCP/IP stack available on a series </span>00047 <span class="comment"> *of 8/16-bit microcontrollers, please see <http://www.opentcp.org>.</span>00048 <span class="comment"> *</span>00049 <span class="comment"> *For more information on how to network-enable your devices, or how to </span>00050 <span class="comment"> *obtain commercial technical support for OpenTCP, please see </span>00051 <span class="comment"> *<http://www.violasystems.com/>.</span>00052 <span class="comment"> */</span>00053 00063 <span class="preprocessor">#ifndef INCLUDE_ARP_H</span>00064 <span class="preprocessor"></span><span class="preprocessor">#define INCLUDE_ARP_H</span>00065 <span class="preprocessor"></span>00066 <span class="preprocessor">#include <<a class="code" href="datatypes_8h.html">inet/datatypes.h</a>></span>00067 <span class="preprocessor">#include <<a class="code" href="system_8h.html">inet/system.h</a>></span>00068 <span class="preprocessor">#include <<a class="code" href="ethernet_8h.html">inet/ethernet.h</a>></span>00069 <span class="preprocessor">#include <<a class="code" href="ip_8h.html">inet/ip.h</a>></span>00070 00071 <span class="comment">/* User Allowed to modify */</span>00072 00073 <a name="l00074"></a><a class="code" href="arp_8h.html#a0">00074</a> <span class="preprocessor">#define MAXHWALEN 6 </span><a name="l00075"></a><a class="code" href="arp_8h.html#a1">00075</a> <span class="preprocessor">#define MAXPRALEN 4 </span><a name="l00091"></a><a class="code" href="group__opentcp__config.html#a0">00091</a> <span class="preprocessor">#define ARP_TSIZE 10 </span>00092 <span class="preprocessor"></span><a name="l00102"></a><a class="code" href="group__opentcp__config.html#a1">00102</a> <span class="preprocessor">#define ARP_TIMEOUT 60</span>00103 <span class="preprocessor"></span><a name="l00117"></a><a class="code" href="group__opentcp__config.html#a2">00117</a> <span class="preprocessor">#define ARP_RESEND 2 </span>00118 <span class="preprocessor"></span><a name="l00126"></a><a class="code" href="group__opentcp__config.html#a3">00126</a> <span class="preprocessor">#define ARP_MAXRETRY 5 </span>00129 <span class="preprocessor"></span><span class="comment">/* System constants, don't modify */</span>00130 00131 <span class="preprocessor">#define AR_HARDWARE 0x0001 </span><span class="comment">/* Ethernet hardware type code */</span>00132 <span class="preprocessor">#define ARP_ETHCODE 0x0806 </span><span class="comment">/* ARP over Ethernet */</span>00133 00134 <span class="preprocessor">#define ARP_REQUEST 1 </span><span class="comment">/* ARP Request to resolve address */</span>00135 <span class="preprocessor">#define ARP_REPLY 2 </span><span class="comment">/* Reply to resolve request */</span>00136 00137 <span class="preprocessor">#define ARP_MANG_TOUT 1 </span><span class="comment">/* Interval between ARP cache mngmt. */</span>00138 <a name="l00146"></a><a class="code" href="structarp__entry.html">00146</a> <span class="keyword">struct </span><a class="code" href="structarp__entry.html">arp_entry</a>00147 {<a name="l00157"></a><a class="code" href="structarp__entry.html#m0">00157</a> UINT8 <a class="code" href="structarp__entry.html#m0">state</a>;00158 <a name="l00167"></a><a class="code" href="structarp__entry.html#m1">00167</a> UINT8 <a class="code" href="structarp__entry.html#m1">type</a>; <a name="l00168"></a><a class="code" href="structarp__entry.html#m2">00168</a> UINT8 <a class="code" href="structarp__entry.html#m2">retries</a>; <a name="l00172"></a><a class="code" href="structarp__entry.html#m3">00172</a> UINT8 <a class="code" href="structarp__entry.html#m3">ttl</a>; <a name="l00175"></a><a class="code" href="structarp__entry.html#m4">00175</a> UINT8 <a class="code" href="structarp__entry.html#m4">hwadr</a>[<a class="code" href="arp_8h.html#a0">MAXHWALEN</a>]; <a name="l00179"></a><a class="code" href="structarp__entry.html#m5">00179</a> UINT32 <a class="code" href="structarp__entry.html#m5">pradr</a>; 00181 };00182 00183 <span class="comment">/* Arp Entry States */</span>00184 <a name="l00185"></a><a class="code" href="arp_8h.html#a11">00185</a> <span class="preprocessor">#define ARP_FREE 0 </span><a name="l00186"></a><a class="code" href="arp_8h.html#a12">00186</a> <span class="preprocessor">#define ARP_RESERVED 1 </span><a name="l00187"></a><a class="code" href="arp_8h.html#a13">00187</a> <span class="preprocessor">#define ARP_PENDING 2 </span><a name="l00188"></a><a class="code" href="arp_8h.html#a14">00188</a> <span class="preprocessor">#define ARP_RESOLVED 3 </span><a name="l00189"></a><a class="code" href="arp_8h.html#a15">00189</a> <span class="preprocessor">#define ARP_REFRESHING 4 </span>00193 <span class="preprocessor"></span><span class="comment">/* Arp Entry Types */</span>00194 <a name="l00195"></a><a class="code" href="arp_8h.html#a16">00195</a> <span class="preprocessor">#define ARP_FIXED_IP 0 </span><a name="l00196"></a><a class="code" href="arp_8h.html#a17">00196</a> <span class="preprocessor">#define ARP_TEMP_IP 1 </span>00200 <span class="preprocessor"></span><span class="comment">/* ARP Functions */</span>00201 <span class="keywordtype">void</span> <a class="code" href="group__core__initializer.html#a0">arp_init</a>(<span class="keywordtype">void</span>);00202 <span class="keyword">struct </span><a class="code" href="structarp__entry.html">arp_entry</a>* arpfind(LWORD, struct netif*, UINT8);00203 INT8 <a class="code" href="arp_8c.html#a6">arp_alloc</a>(UINT8);00204 <span class="keywordtype">void</span> <a class="code" href="arp_8c.html#a5">arp_send_req</a>(UINT8);00205 <span class="keyword">struct </span><a class="code" href="structarp__entry.html">arp_entry</a>* arp_find (LWORD , struct netif *, UINT8 );00206 <span class="keywordtype">void</span> <a class="code" href="group__periodic__functions.html#a0">arp_manage</a>(<span class="keywordtype">void</span>);00207 BYTE <a class="code" href="arp_8c.html#a11">is_subnet</a>(LWORD, <span class="keyword">struct</span> netif*);00208 BYTE <a class="code" href="arp_8c.html#a2">process_arp</a>(<span class="keyword">struct</span> <a class="code" href="structethernet__frame.html">ethernet_frame</a>*);00209 <span class="keywordtype">void</span> <a class="code" href="arp_8c.html#a3">arp_send_response</a>(<span class="keywordtype">void</span>);00210 <span class="keywordtype">void</span> <a class="code" href="arp_8c.html#a4">arp_get_response</a>(<span class="keywordtype">void</span>);00211 <span class="keywordtype">void</span> arp_send_request(<span class="keywordtype">void</span>);00212 INT8 <a class="code" href="arp_8c.html#a7">arp_add</a>(UINT32, UINT8*, UINT8);00213 00214 <span class="preprocessor">#endif</span>00215 <span class="preprocessor"></span></pre></div><hr><address style="align: right;"><small>Generated on Sun Aug 3 20:32:59 2003 for OpenTCP by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -