📄 a00153.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>uIP 1.0: Configuration options for uIP</title><link href="doxygen.css" rel="stylesheet" type="text/css"><link href="tabs.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.4.6 --><div class="tabs"> <ul> <li><a href="main.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="classes.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> </ul></div><h1>Configuration options for uIP</h1><hr><a name="_details"></a><h2>Detailed Description</h2>uIP is configured using the per-project configuration file <a class="el" href="a00140.html">uipopt.h</a>. <p>This file contains all compile-time options for uIP and should be tweaked to match each specific project. The uIP distribution contains a documented example "uipopt.h" that can be copied and modified for each project.<p><dl compact><dt><b>Note:</b></dt><dd>Most of the configuration options in the <a class="el" href="a00140.html">uipopt.h</a> should not be changed, but rather the per-project uip-conf.h file. </dd></dl><p><table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>Files</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00141.html">uip-conf.h</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">An example uIP configuration file. <br></td></tr><p><tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00140.html">uipopt.h</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Configuration options for uIP. <br></td></tr><p><tr><td colspan="2"><br><h2>Project-specific configuration options</h2></td></tr><tr><td colspan="2">uIP has a number of configuration options that can be overridden for each project. These are kept in a project-specific uip-conf.h file and all configuration names have the prefix UIP_CONF. <br><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3f6f1f6f98431f2d33ed30a30d2ccc35"></a><!-- doxytag: member="uipopt::UIP_CONF_MAX_CONNECTIONS" ref="g3f6f1f6f98431f2d33ed30a30d2ccc35" args="" -->#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g3f6f1f6f98431f2d33ed30a30d2ccc35">UIP_CONF_MAX_CONNECTIONS</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Maximum number of TCP connections. <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g974c9b4bbe6b07cc1d64ac4fad278030"></a><!-- doxytag: member="uipopt::UIP_CONF_MAX_LISTENPORTS" ref="g974c9b4bbe6b07cc1d64ac4fad278030" args="" -->#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g974c9b4bbe6b07cc1d64ac4fad278030">UIP_CONF_MAX_LISTENPORTS</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Maximum number of listening TCP ports. <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gcacc406c3bf7d0e00412e4c946252739"></a><!-- doxytag: member="uipopt::UIP_CONF_BUFFER_SIZE" ref="gcacc406c3bf7d0e00412e4c946252739" args="" -->#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#gcacc406c3bf7d0e00412e4c946252739">UIP_CONF_BUFFER_SIZE</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">uIP buffer size. <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gca1240bba5dd57f8c7c27123c84a1f6d"></a><!-- doxytag: member="uipopt::UIP_CONF_BYTE_ORDER" ref="gca1240bba5dd57f8c7c27123c84a1f6d" args="" -->#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#gca1240bba5dd57f8c7c27123c84a1f6d">UIP_CONF_BYTE_ORDER</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">CPU byte order. <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3001114ddadc1f2ada5cc9a780e866fc"></a><!-- doxytag: member="uipopt::UIP_CONF_LOGGING" ref="g3001114ddadc1f2ada5cc9a780e866fc" args="" -->#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g3001114ddadc1f2ada5cc9a780e866fc">UIP_CONF_LOGGING</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Logging on or off. <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g763f12007aad8cc0e483bf50f8a8d9b4"></a><!-- doxytag: member="uipopt::UIP_CONF_UDP" ref="g763f12007aad8cc0e483bf50f8a8d9b4" args="" -->#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g763f12007aad8cc0e483bf50f8a8d9b4">UIP_CONF_UDP</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">UDP support on or off. <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9dd44616d41cef74d3beb51d8be5ecec"></a><!-- doxytag: member="uipopt::UIP_CONF_UDP_CHECKSUMS" ref="g9dd44616d41cef74d3beb51d8be5ecec" args="" -->#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g9dd44616d41cef74d3beb51d8be5ecec">UIP_CONF_UDP_CHECKSUMS</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">UDP checksums on or off. <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g529648ad3b0b327a43689b0f1779ff55"></a><!-- doxytag: member="uipopt::UIP_CONF_STATISTICS" ref="g529648ad3b0b327a43689b0f1779ff55" args="" -->#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g529648ad3b0b327a43689b0f1779ff55">UIP_CONF_STATISTICS</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">uIP statistics on or off <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">typedef uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">8 bit datatype <a href="#g4caecabca98b43919dd11be1c0d4cd8e"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">typedef uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">16 bit datatype <a href="#g77570ac4fcab86864fa1916e55676da2"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned short </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Statistics datatype. <a href="#g727459e5c4f777543c81ffffa3df3f0c"></a><br></td></tr><tr><td colspan="2"><br><h2>Static configuration options</h2></td></tr><tr><td colspan="2">These configuration options can be used for setting the IP address settings statically, but only if UIP_FIXEDADDR is set to 1. The configuration options for a specific node includes IP address, netmask and default router as well as the Ethernet address. The netmask, default router and Ethernet address are appliciable only if uIP should be run over Ethernet.<p>All of these should be changed to suit your project. <br><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g51195ea7cd5aa387a87f9d3b23905b62">UIP_FIXEDADDR</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Determines if uIP should use a fixed IP address or not. <a href="#g51195ea7cd5aa387a87f9d3b23905b62"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g9069474ea570fd78c481aa164317dbaf">UIP_PINGADDRCONF</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Ping IP address asignment. <a href="#g9069474ea570fd78c481aa164317dbaf"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#ge0f8cbeca9731af2171ffd37e79de893">UIP_FIXEDETHADDR</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Specifies if the uIP ARP module should be compiled with a fixed Ethernet MAC address or not. <a href="#ge0f8cbeca9731af2171ffd37e79de893"></a><br></td></tr><tr><td colspan="2"><br><h2>IP configuration options</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#gb61381673de27f31848c5396bf0b338e">UIP_TTL</a> 64</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">The IP TTL (time to live) of IP packets sent by uIP. <a href="#gb61381673de27f31848c5396bf0b338e"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#gf963fdea2b75d27ef31e92d1d01359ee">UIP_REASSEMBLY</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Turn on support for IP packet reassembly. <a href="#gf963fdea2b75d27ef31e92d1d01359ee"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc3882366feda1cb759ccbfe98327a7db"></a><!-- doxytag: member="uipopt::UIP_REASS_MAXAGE" ref="gc3882366feda1cb759ccbfe98327a7db" args="" -->#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#gc3882366feda1cb759ccbfe98327a7db">UIP_REASS_MAXAGE</a> 40</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">The maximum time an IP fragment should wait in the reassembly buffer before it is dropped. <br></td></tr><tr><td colspan="2"><br><h2>UDP configuration options</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gdcf372ff9748996f7c05e9822a615384"></a><!-- doxytag: member="uipopt::UIP_UDP" ref="gdcf372ff9748996f7c05e9822a615384" args="" -->#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#gdcf372ff9748996f7c05e9822a615384">UIP_UDP</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Toggles wether UDP support should be compiled in or not. <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g92f3344ec8ca46893163399c89fafed5">UIP_UDP_CHECKSUMS</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Toggles if UDP checksums should be used or not. <a href="#g92f3344ec8ca46893163399c89fafed5"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g196379ceb1219a99f4495e41ccc9bbfb"></a><!-- doxytag: member="uipopt::UIP_UDP_CONNS" ref="g196379ceb1219a99f4495e41ccc9bbfb" args="" -->#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g196379ceb1219a99f4495e41ccc9bbfb">UIP_UDP_CONNS</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">The maximum amount of concurrent UDP connections. <br></td></tr><tr><td colspan="2"><br><h2>TCP configuration options</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#gac0de06236b02659460445de30776e00">UIP_ACTIVE_OPEN</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Determines if support for opening connections from uIP should be compiled in. <a href="#gac0de06236b02659460445de30776e00"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#gf5fe83be78b78b9e7d9e7f1e34ab1cc5">UIP_CONNS</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">The maximum number of simultaneously open TCP connections. <a href="#gf5fe83be78b78b9e7d9e7f1e34ab1cc5"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g8f4ebd8ef6c0ea665ed351d87fec09fd">UIP_LISTENPORTS</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">The maximum number of simultaneously listening TCP ports. <a href="#g8f4ebd8ef6c0ea665ed351d87fec09fd"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g51c1cd531ff0afb81620151f2248cd21">UIP_URGDATA</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Determines if support for TCP urgent data notification should be compiled in. <a href="#g51c1cd531ff0afb81620151f2248cd21"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g15de27b044603284f68db05a378235a7">UIP_RTO</a> 3</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">The initial retransmission timeout counted in timer pulses. <a href="#g15de27b044603284f68db05a378235a7"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g67cf1e0d2324c93f332c1f020c0fe8b3">UIP_MAXRTX</a> 8</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">The maximum number of times a segment should be retransmitted before the connection should be aborted. <a href="#g67cf1e0d2324c93f332c1f020c0fe8b3"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g24aa5bc36939cc9a0833e1df01478a7e">UIP_MAXSYNRTX</a> 5</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">The maximum number of times a SYN segment should be retransmitted before a connection request should be deemed to have been unsuccessful. <a href="#g24aa5bc36939cc9a0833e1df01478a7e"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g4910467b83a639f06739c82cd362037e">UIP_TCP_MSS</a> (UIP_BUFSIZE - UIP_LLH_LEN - UIP_TCPIP_HLEN)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">The TCP maximum segment size. <a href="#g4910467b83a639f06739c82cd362037e"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g5b9dba2123705bce1ce95c3deca0bdad">UIP_RECEIVE_WINDOW</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">The size of the advertised receiver's window. <a href="#g5b9dba2123705bce1ce95c3deca0bdad"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g2bc3b489923793759526a3181eb667fa">UIP_TIME_WAIT_TIMEOUT</a> 120</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">How long a connection should stay in the TIME_WAIT state. <a href="#g2bc3b489923793759526a3181eb667fa"></a><br></td></tr><tr><td colspan="2"><br><h2>ARP configuration options</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#gb1455b27c06532a399cf06d2c1d6d08d">UIP_ARPTAB_SIZE</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">The size of the ARP table. <a href="#gb1455b27c06532a399cf06d2c1d6d08d"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g3090117ef3ff5775b77cb1960e442d07">UIP_ARP_MAXAGE</a> 120</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">The maxium age of ARP table entries measured in 10ths of seconds. <a href="#g3090117ef3ff5775b77cb1960e442d07"></a><br></td></tr><tr><td colspan="2"><br><h2>General configuration options</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g3589822ecb9d9c4145209756396b8a6b">UIP_BUFSIZE</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">The size of the uIP packet buffer. <a href="#g3589822ecb9d9c4145209756396b8a6b"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g5726142fec34f35fb9ea19e5a45975c6">UIP_STATISTICS</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Determines if statistics support should be compiled in. <a href="#g5726142fec34f35fb9ea19e5a45975c6"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g21664b7441cfa37d280228d23316d609">UIP_LOGGING</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Determines if logging of certain events should be compiled in. <a href="#g21664b7441cfa37d280228d23316d609"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g156dd2891a57035e4afdc4c2bc0b0ebf">UIP_BROADCAST</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Broadcast support. <a href="#g156dd2891a57035e4afdc4c2bc0b0ebf"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#ge6f4a2453dbd8bc60e6a82774552366a">UIP_LLH_LEN</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">The link level header length. <a href="#ge6f4a2453dbd8bc60e6a82774552366a"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#gb58e1ceb7cb73ca2bcd73146b6c1b4e7">uip_log</a> (char *msg)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Print out a uIP log message. <a href="#gb58e1ceb7cb73ca2bcd73146b6c1b4e7"></a><br></td></tr><tr><td colspan="2"><br><h2>CPU architecture configuration</h2></td></tr><tr><td colspan="2">The CPU architecture configuration is where the endianess of the CPU on which uIP is to be run is specified. Most CPUs today are little endian, and the most notable exception are the Motorolas which are big endian. The BYTE_ORDER macro should be changed to reflect the CPU architecture on which uIP is to be run. <br><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g285a80366aed9428f64282b8d13c918b">UIP_BYTE_ORDER</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">The byte order of the CPU architecture on which uIP is to be run. <a href="#g285a80366aed9428f64282b8d13c918b"></a><br></td></tr><tr><td colspan="2"><br><h2>Appication specific configurations</h2></td></tr><tr><td colspan="2">An uIP application is implemented using a single application function that is called by uIP whenever a TCP/IP event occurs. The name of this function must be registered with uIP at compile time using the UIP_APPCALL definition.<p>uIP applications can store the application state within the <a class="el" href="a00088.html">uip_conn</a> structure by specifying the type of the application structure by typedef:ing the type uip_tcp_appstate_t and uip_udp_appstate_t.<p>The file containing the definitions must be included in the <a class="el" href="a00140.html">uipopt.h</a> file.<p>The following example illustrates how this can look. <div class="fragment"><pre class="fragment"><span class="keywordtype">void</span> <a class="code" href="a00164.html#g648ddfb2dde2cc55034e4e0ea41cb6d1">httpd_appcall</a>(<span class="keywordtype">void</span>);<span class="preprocessor">#define UIP_APPCALL httpd_appcall</span><span class="preprocessor"></span><span class="keyword">struct </span><a class="code" href="a00080.html">httpd_state</a> { <a class="code" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> <a class="code" href="a00080.html#94fcc9f5c47f419040d849ce58beae35">state</a>; <a class="code" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> <a class="code" href="a00080.html#6df929b448ea98bc44d41f5e96237bda">count</a>; <span class="keywordtype">char</span> *dataptr; <span class="keywordtype">char</span> *script;};<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a00080.html">httpd_state</a> <a class="code" href="a00153.html#g69646a81a922033c5281445a71f8ffed">uip_tcp_appstate_t</a></pre></div> <br><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g41aa744caa46913b3b3aedb2a4e78546"></a><!-- doxytag: member="uipopt::UIP_APPCALL" ref="g41aa744caa46913b3b3aedb2a4e78546" args="" -->#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g41aa744caa46913b3b3aedb2a4e78546">UIP_APPCALL</a> smtp_appcall</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">The name of the application function that uIP should call in response to TCP/IP events. <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="a00085.html">smtp_state</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g69646a81a922033c5281445a71f8ffed">uip_tcp_appstate_t</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">The type of the application state that is to be stored in the <a class="el" href="a00088.html">uip_conn</a> structure. <a href="#g69646a81a922033c5281445a71f8ffed"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#ga92afb113e122f860392bfbd385f842e">uip_udp_appstate_t</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">The type of the application state that is to be stored in the <a class="el" href="a00088.html">uip_conn</a> structure. <a href="#ga92afb113e122f860392bfbd385f842e"></a><br></td></tr><tr><td colspan="2"><br><h2>Defines</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb6e04358481bd2057524fb874cfa472b"></a><!-- doxytag: member="uipopt::UIP_LITTLE_ENDIAN" ref="gb6e04358481bd2057524fb874cfa472b" args="" -->#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#gb6e04358481bd2057524fb874cfa472b">UIP_LITTLE_ENDIAN</a> 3412</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6836f92f3692f3a4429eb599db40cbae"></a><!-- doxytag: member="uipopt::UIP_BIG_ENDIAN" ref="g6836f92f3692f3a4429eb599db40cbae" args="" -->#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html#g6836f92f3692f3a4429eb599db40cbae">UIP_BIG_ENDIAN</a> 1234</td></tr></table><hr><h2>Define Documentation</h2><a class="anchor" name="gac0de06236b02659460445de30776e00"></a><!-- doxytag: member="uipopt.h::UIP_ACTIVE_OPEN" ref="gac0de06236b02659460445de30776e00" args="" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">#define UIP_ACTIVE_OPEN </td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p>Determines if support for opening connections from uIP should be compiled in. <p>If the applications that are running on top of uIP for this project do not need to open outgoing TCP connections, this configration option can be turned off to reduce the code size of uIP. <p>Definition at line <a class="el" href="a00206.html#l00233">233</a> of file <a class="el" href="a00206.html">uipopt.h</a>. </td> </tr></table><a class="anchor" name="g3090117ef3ff5775b77cb1960e442d07"></a><!-- doxytag: member="uipopt.h::UIP_ARP_MAXAGE" ref="g3090117ef3ff5775b77cb1960e442d07" args="" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">#define UIP_ARP_MAXAGE 120 </td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p>The maxium age of ARP table entries measured in 10ths of seconds. <p>An UIP_ARP_MAXAGE of 120 corresponds to 20 minutes (BSD default). <p>Definition at line <a class="el" href="a00206.html#l00358">358</a> of file <a class="el" href="a00206.html">uipopt.h</a>.<p>Referenced by <a class="el" href="a00204.html#l00142">uip_arp_timer()</a>. </td> </tr></table>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -