📄 group__periodic__functions.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>Main loop functions</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>Main loop functions</h1><hr><a name="_details"></a><h2>Detailed Description</h2>This is a group of functions invoked usually from main loop to perform period tasks for the TCP/IP stack and to manage data processing. They are not part of the API functions, but they must still be invoked by the user.<p>Not all of these functions must be invoked all the time in the main loop. Certain functions are only invoked when it is needed (IP, UDP and TCP processing for example). Check their individual documentation for detailed instructions on how to use them. <table border=0 cellpadding=0 cellspacing=0><tr><td></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="group__periodic__functions.html#a7">NETWORK_CHECK_IF_RECEIVED</a>() NE2000ReceiveFrame()</td></tr><tr><td> </td><td><font size=-1><em>Use this macro to check if there is recieved data in Ethernet controller.</em> <a href="#a7"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__periodic__functions.html#a8">NETWORK_RECEIVE_END</a>() NE2000DumpRxFrame()</td></tr><tr><td> </td><td><font size=-1><em>Dump received packet in the Ethernet controller.</em> <a href="#a8"></a><em></em></font><br><br></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="group__periodic__functions.html#a0">arp_manage</a> (void)</td></tr><tr><td> </td><td><font size=-1><em>Manage ARP cache periodically.</em> <a href="#a0"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__periodic__functions.html#a1">NE2000CheckOverFlow</a> (void)</td></tr><tr><td> </td><td><font size=-1><em>Check if receive-buffer overflow occured.</em> <a href="#a1"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>INT16 </td><td valign=bottom><a class="el" href="group__periodic__functions.html#a2">process_icmp_in</a> (struct <a class="el" href="structip__frame.html">ip_frame</a> *frame, UINT16 len)</td></tr><tr><td> </td><td><font size=-1><em>Process recieved ICMP datagram.</em> <a href="#a2"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>INT16 </td><td valign=bottom><a class="el" href="group__periodic__functions.html#a3">process_ip_in</a> (struct <a class="el" href="structethernet__frame.html">ethernet_frame</a> *)</td></tr><tr><td> </td><td><font size=-1><em>Process received IP frame.</em> <a href="#a3"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__periodic__functions.html#a4">tcp_poll</a> (void)</td></tr><tr><td> </td><td><font size=-1><em>Poll TCP sockets periodically.</em> <a href="#a4"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>INT16 </td><td valign=bottom><a class="el" href="group__periodic__functions.html#a5">process_tcp_in</a> (struct <a class="el" href="structip__frame.html">ip_frame</a> *, UINT16)</td></tr><tr><td> </td><td><font size=-1><em>Check and process the received TCP frame.</em> <a href="#a5"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>INT16 </td><td valign=bottom><a class="el" href="group__periodic__functions.html#a6">process_udp_in</a> (struct <a class="el" href="structip__frame.html">ip_frame</a> *, UINT16)</td></tr><tr><td> </td><td><font size=-1><em>Process received UDP frame.</em> <a href="#a6"></a><em></em></font><br><br></td></tr></table><hr><h2>Define Documentation</h2><a name="a7" doxytag="system.h::NETWORK_CHECK_IF_RECEIVED"></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 NETWORK_CHECK_IF_RECEIVED</td> <td class="md" valign="top">( </td> </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap> NE2000ReceiveFrame() </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Invoke this macro periodically (see <a class="el" href="main__demo_8c.html">main_demo.c</a> for example) to check if there is new data in the Ethernet controller.<p>If there is new data in the Ethernet controller, this macro (function that it points to that is) will return a value of TRUE and fill in the appropriate values in the received_frame variable. Otherwise it returns FALSE. <dl compact><dt><b>Examples: </b></dt><dd><a class="el" href="main__demo_8c-example.html#a10">main_demo.c</a>.</dl><p>Definition at line <a class="el" href="system_8h-source.html#l00262">262</a> of file <a class="el" href="system_8h-source.html">system.h</a>. </td> </tr></table><a name="a8" doxytag="system.h::NETWORK_RECEIVE_END"></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 NETWORK_RECEIVE_END</td> <td class="md" valign="top">( </td> </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap> NE2000DumpRxFrame() </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Invoke this macro when the received Ethernet packet is not needed any more and can be discarded. <dl compact><dt><b>Examples: </b></dt><dd><a class="el" href="main__demo_8c-example.html#a16">main_demo.c</a>.</dl><p>Definition at line <a class="el" href="system_8h-source.html#l00279">279</a> of file <a class="el" href="system_8h-source.html">system.h</a>. </td> </tr></table><hr><h2>Function Documentation</h2><a name="a0" doxytag="arp.c::arp_manage"></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"> void arp_manage </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p><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>Date: </b></dt><dd>04.11.2001 </dl><dl compact><dt><b>Warning: </b></dt><dd> <ul><li> Invoke this function periodically to ensure proper ARP cache behaviour</ul></dl>Iterate through ARP cache aging entries. If timed-out entry is found, remove it (dynamic address) or update it (static address). This function must be called periodically by the system. <dl compact><dt><b>Examples: </b></dt><dd><a class="el" href="main__demo_8c-example.html#a18">main_demo.c</a>.</dl><p>Definition at line <a class="el" href="arp_8c-source.html#l00785">785</a> of file <a class="el" href="arp_8c-source.html">arp.c</a>.<p>References <a class="el" href="arp_8h-source.html#l00195">ARP_FIXED_IP</a>, <a class="el" href="arp_8h-source.html#l00185">ARP_FREE</a>, <a class="el" href="arp_8h-source.html#l00187">ARP_PENDING</a>, <a class="el" href="arp_8h-source.html#l00189">ARP_REFRESHING</a>, <a class="el" href="arp_8h-source.html#l00117">ARP_RESEND</a>, <a class="el" href="arp_8h-source.html#l00188">ARP_RESOLVED</a>, <a class="el" href="arp_8c-source.html#l00390">arp_send_req()</a>, <a class="el" href="arp_8h-source.html#l00196">ARP_TEMP_IP</a>, <a class="el" href="arp_8h-source.html#l00102">ARP_TIMEOUT</a>, <a class="el" href="arp_8c-source.html#l00094">arp_timer</a>, <a class="el" href="timers_8c-source.html#l00233">check_timer()</a>, <a class="el" href="timers_8c-source.html#l00194">init_timer()</a>, <a class="el" href="arp_8h-source.html#l00179">arp_entry::pradr</a>, <a class="el" href="arp_8h-source.html#l00168">arp_entry::retries</a>, <a class="el" href="arp_8h-source.html#l00157">arp_entry::state</a>, <a class="el" href="timers_8h-source.html#l00086">TIMERTIC</a>, <a class="el" href="arp_8h-source.html#l00172">arp_entry::ttl</a>, and <a class="el" href="arp_8h-source.html#l00167">arp_entry::type</a>. </td> </tr></table><a name="a1" doxytag="ethernet.c::NE2000CheckOverFlow"></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"> void NE2000CheckOverFlow </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -