embeddedsw/ThirdParty/sw_services/lwip140/doc/html/tcpip_8c.html
Jagannadha Sutradharudu Teki 2c8f92039d embeddesw: Add initial code support
Added initial support Xilinx Embedded Software.

Signed-off-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
2014-06-24 16:45:01 +05:30

264 lines
13 KiB
HTML
Executable file

<!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>2014.1_doc: U:/hsm_publish/HEAD/data/embeddedsw/ThirdParty/sw_services/lwip140_v2_0/src/lwip-1.4.0/src/api/tcpip.c File Reference</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.5 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<div class="nav">
<a class="el" href="dir_U_3A_2F.html">U:</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_U_3A_2Fhsm_5Fpublish_2F.html">hsm_publish</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_U_3A_2Fhsm_5Fpublish_2FHEAD_2F.html">HEAD</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_U_3A_2Fhsm_5Fpublish_2FHEAD_2Fdata_2F.html">data</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_U_3A_2Fhsm_5Fpublish_2FHEAD_2Fdata_2Fembeddedsw_2F.html">embeddedsw</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_U_3A_2Fhsm_5Fpublish_2FHEAD_2Fdata_2Fembeddedsw_2FThirdParty_2F.html">ThirdParty</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_U_3A_2Fhsm_5Fpublish_2FHEAD_2Fdata_2Fembeddedsw_2FThirdParty_2Fsw_5Fservices_2F.html">sw_services</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_U_3A_2Fhsm_5Fpublish_2FHEAD_2Fdata_2Fembeddedsw_2FThirdParty_2Fsw_5Fservices_2Flwip140_5Fv2_5F0_2F.html">lwip140_v2_0</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_U_3A_2Fhsm_5Fpublish_2FHEAD_2Fdata_2Fembeddedsw_2FThirdParty_2Fsw_5Fservices_2Flwip140_5Fv2_5F0_2Fsrc_2F.html">src</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_U_3A_2Fhsm_5Fpublish_2FHEAD_2Fdata_2Fembeddedsw_2FThirdParty_2Fsw_5Fservices_2Flwip140_5Fv2_5F0_2Fsrc_2Flwip_2D1_2E4_2E0_2F.html">lwip-1.4.0</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_U_3A_2Fhsm_5Fpublish_2FHEAD_2Fdata_2Fembeddedsw_2FThirdParty_2Fsw_5Fservices_2Flwip140_5Fv2_5F0_2Fsrc_2Flwip_2D1_2E4_2E0_2Fsrc_2F.html">src</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_U_3A_2Fhsm_5Fpublish_2FHEAD_2Fdata_2Fembeddedsw_2FThirdParty_2Fsw_5Fservices_2Flwip140_5Fv2_5F0_2Fsrc_2Flwip_2D1_2E4_2E0_2Fsrc_2Fapi_2F.html">api</a></div>
<h1>tcpip.c File Reference</h1><code>#include &quot;<a class="el" href="opt_8h.html">lwip/opt.h</a>&quot;</code><br>
<code>#include &quot;lwip/sys.h&quot;</code><br>
<code>#include &quot;lwip/memp.h&quot;</code><br>
<code>#include &quot;lwip/mem.h&quot;</code><br>
<code>#include &quot;lwip/pbuf.h&quot;</code><br>
<code>#include &quot;lwip/tcpip.h&quot;</code><br>
<code>#include &quot;lwip/init.h&quot;</code><br>
<code>#include &quot;netif/etharp.h&quot;</code><br>
<code>#include &quot;netif/ppp_oe.h&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">err_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tcpip_8c.html#bf203978100162154bec5cce35f81ae6">tcpip_input</a> (struct pbuf *p, struct <a class="el" href="structnetif.html">netif</a> *inp)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">err_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tcpip_8c.html#c7736eabadfe80232dbed2d8988c612e">tcpip_callback_with_block</a> (tcpip_callback_fn function, void *ctx, u8_t block)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tcpip_8c.html#fb4dbcfa0abc17621a5c844142ee8271">tcpip_init</a> (tcpip_init_done_fn initfunc, void *arg)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">err_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tcpip_8c.html#ef2002d1ca83fdd2f345de026925fa81">pbuf_free_callback</a> (struct pbuf *p)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">err_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tcpip_8c.html#ec484a16823f205f156acbb7e4f638eb">mem_free_callback</a> (void *m)</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Sequential API Main thread module <hr><h2>Function Documentation</h2>
<a class="anchor" name="ec484a16823f205f156acbb7e4f638eb"></a><!-- doxytag: member="tcpip.c::mem_free_callback" ref="ec484a16823f205f156acbb7e4f638eb" args="(void *m)" --><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">err_t mem_free_callback </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">void *&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>m</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
A simple wrapper function that allows you to free heap memory from interrupt context.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>m</em>&nbsp;</td><td>the heap memory to free </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>ERR_OK if callback could be enqueued, an err_t if not </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="ef2002d1ca83fdd2f345de026925fa81"></a><!-- doxytag: member="tcpip.c::pbuf_free_callback" ref="ef2002d1ca83fdd2f345de026925fa81" args="(struct pbuf *p)" --><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">err_t pbuf_free_callback </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">struct pbuf *&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>p</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
A simple wrapper function that allows you to free a pbuf from interrupt context.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>The pbuf (chain) to be dereferenced. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>ERR_OK if callback could be enqueued, an err_t if not </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="c7736eabadfe80232dbed2d8988c612e"></a><!-- doxytag: member="tcpip.c::tcpip_callback_with_block" ref="c7736eabadfe80232dbed2d8988c612e" args="(tcpip_callback_fn function, void *ctx, u8_t block)" --><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">err_t tcpip_callback_with_block </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">tcpip_callback_fn&nbsp;</td>
<td class="mdname" nowrap> <em>function</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>void *&nbsp;</td>
<td class="mdname" nowrap> <em>ctx</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>u8_t&nbsp;</td>
<td class="mdname" nowrap> <em>block</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Call a specific function in the thread context of tcpip_thread for easy access synchronization. A function called in that way may access lwIP core code without fearing concurrent access.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</td><td>the function to call </td></tr>
<tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>parameter passed to f </td></tr>
<tr><td valign="top"></td><td valign="top"><em>block</em>&nbsp;</td><td>1 to block until the request is posted, 0 to non-blocking mode </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>ERR_OK if the function was called, another err_t if not </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="fb4dbcfa0abc17621a5c844142ee8271"></a><!-- doxytag: member="tcpip.c::tcpip_init" ref="fb4dbcfa0abc17621a5c844142ee8271" args="(tcpip_init_done_fn initfunc, void *arg)" --><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">void tcpip_init </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">tcpip_init_done_fn&nbsp;</td>
<td class="mdname" nowrap> <em>initfunc</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>void *&nbsp;</td>
<td class="mdname" nowrap> <em>arg</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Initialize this module:<ul>
<li>initialize all sub modules</li><li>start the tcpip_thread</li></ul>
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>initfunc</em>&nbsp;</td><td>a function to call when tcpip_thread is running and finished initializing </td></tr>
<tr><td valign="top"></td><td valign="top"><em>arg</em>&nbsp;</td><td>argument to pass to initfunc </td></tr>
</table>
</dl>
</td>
</tr>
</table>
<a class="anchor" name="bf203978100162154bec5cce35f81ae6"></a><!-- doxytag: member="tcpip.c::tcpip_input" ref="bf203978100162154bec5cce35f81ae6" args="(struct pbuf *p, struct netif *inp)" --><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">err_t tcpip_input </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">struct pbuf *&nbsp;</td>
<td class="mdname" nowrap> <em>p</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>struct <a class="el" href="structnetif.html">netif</a> *&nbsp;</td>
<td class="mdname" nowrap> <em>inp</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Pass a received packet to tcpip_thread for input processing<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>the received packet, p-&gt;payload pointing to the Ethernet header or to an IP header (if inp doesn't have NETIF_FLAG_ETHARP or NETIF_FLAG_ETHERNET flags) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>inp</em>&nbsp;</td><td>the network interface on which the packet was received </td></tr>
</table>
</dl>
</td>
</tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Fri Feb 14 12:33:21 2014 for 2014.1_doc by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.5 </small></address>
</body>
</html>