xref: /nrf52832-nimble/rt-thread/components/net/uip/doc/html/a00159.html (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2*10465441SEvalZero<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3*10465441SEvalZero<title>uIP 1.0: Memory block management functions</title>
4*10465441SEvalZero<link href="doxygen.css" rel="stylesheet" type="text/css">
5*10465441SEvalZero<link href="tabs.css" rel="stylesheet" type="text/css">
6*10465441SEvalZero</head><body>
7*10465441SEvalZero<!-- Generated by Doxygen 1.4.6 -->
8*10465441SEvalZero<div class="tabs">
9*10465441SEvalZero  <ul>
10*10465441SEvalZero    <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
11*10465441SEvalZero    <li><a href="modules.html"><span>Modules</span></a></li>
12*10465441SEvalZero    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
13*10465441SEvalZero    <li><a href="files.html"><span>Files</span></a></li>
14*10465441SEvalZero    <li><a href="examples.html"><span>Examples</span></a></li>
15*10465441SEvalZero  </ul></div>
16*10465441SEvalZero<h1>Memory block management functions</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
17*10465441SEvalZeroThe memory block allocation routines provide a simple yet powerful set of functions for managing a set of memory blocks of fixed size.
18*10465441SEvalZero<p>
19*10465441SEvalZeroA set of memory blocks is statically declared with the <a class="el" href="a00159.html#gf31774d02a69fd3f1c2b282454438cba">MEMB()</a> macro. Memory blocks are allocated from the declared memory by the <a class="el" href="a00159.html#gfe5e93119035e14cc485760a176249ba">memb_alloc()</a> function, and are deallocated with the <a class="el" href="a00159.html#gceb952d27de8125d5146ac0bee325b8f">memb_free()</a> function.<p>
20*10465441SEvalZero<dl compact><dt><b>Note:</b></dt><dd>Because of namespace clashes only one <a class="el" href="a00159.html#gf31774d02a69fd3f1c2b282454438cba">MEMB()</a> can be declared per C module, and the name scope of a <a class="el" href="a00159.html#gf31774d02a69fd3f1c2b282454438cba">MEMB()</a> memory block is local to each C module.</dd></dl>
21*10465441SEvalZeroThe following example shows how to declare and use a memory block called "cmem" which has 8 chunks of memory with each memory chunk being 20 bytes large.
22*10465441SEvalZero<p>
23*10465441SEvalZero<table border="0" cellpadding="0" cellspacing="0">
24*10465441SEvalZero<tr><td></td></tr>
25*10465441SEvalZero<tr><td colspan="2"><br><h2>Files</h2></td></tr>
26*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html">memb.c</a></td></tr>
27*10465441SEvalZero
28*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Memory block allocation routines. <br></td></tr>
29*10465441SEvalZero
30*10465441SEvalZero<p>
31*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html">memb.h</a></td></tr>
32*10465441SEvalZero
33*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Memory block allocation routines. <br></td></tr>
34*10465441SEvalZero
35*10465441SEvalZero<p>
36*10465441SEvalZero<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
37*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00081.html">memb_blocks</a></td></tr>
38*10465441SEvalZero
39*10465441SEvalZero<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
40*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga680bc3f3a1a8a6aec20fe729d138cb8"></a><!-- doxytag: member="memb::MEMB_CONCAT2" ref="ga680bc3f3a1a8a6aec20fe729d138cb8" args="(s1, s2)" -->
41*10465441SEvalZero#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga680bc3f3a1a8a6aec20fe729d138cb8">MEMB_CONCAT2</a>(s1, s2)&nbsp;&nbsp;&nbsp;s1##s2</td></tr>
42*10465441SEvalZero
43*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g720ac440c7b24bdd07c53ba146e36fb2"></a><!-- doxytag: member="memb::MEMB_CONCAT" ref="g720ac440c7b24bdd07c53ba146e36fb2" args="(s1, s2)" -->
44*10465441SEvalZero#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#g720ac440c7b24bdd07c53ba146e36fb2">MEMB_CONCAT</a>(s1, s2)&nbsp;&nbsp;&nbsp;MEMB_CONCAT2(s1, s2)</td></tr>
45*10465441SEvalZero
46*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#gf31774d02a69fd3f1c2b282454438cba">MEMB</a>(name, structure, num)</td></tr>
47*10465441SEvalZero
48*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Declare a memory block.  <a href="#gf31774d02a69fd3f1c2b282454438cba"></a><br></td></tr>
49*10465441SEvalZero<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
50*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#gd58a6c7e62ae59bf7a016ded12ca2910">memb_init</a> (struct <a class="el" href="a00081.html">memb_blocks</a> *m)</td></tr>
51*10465441SEvalZero
52*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a memory block that was declared with <a class="el" href="a00159.html#gf31774d02a69fd3f1c2b282454438cba">MEMB()</a>.  <a href="#gd58a6c7e62ae59bf7a016ded12ca2910"></a><br></td></tr>
53*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#gfe5e93119035e14cc485760a176249ba">memb_alloc</a> (struct <a class="el" href="a00081.html">memb_blocks</a> *m)</td></tr>
54*10465441SEvalZero
55*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocate a memory block from a block of memory declared with <a class="el" href="a00159.html#gf31774d02a69fd3f1c2b282454438cba">MEMB()</a>.  <a href="#gfe5e93119035e14cc485760a176249ba"></a><br></td></tr>
56*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#gceb952d27de8125d5146ac0bee325b8f">memb_free</a> (struct <a class="el" href="a00081.html">memb_blocks</a> *m, void *ptr)</td></tr>
57*10465441SEvalZero
58*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Deallocate a memory block from a memory block previously declared with <a class="el" href="a00159.html#gf31774d02a69fd3f1c2b282454438cba">MEMB()</a>.  <a href="#gceb952d27de8125d5146ac0bee325b8f"></a><br></td></tr>
59*10465441SEvalZero</table>
60*10465441SEvalZero<hr><h2>Define Documentation</h2>
61*10465441SEvalZero<a class="anchor" name="gf31774d02a69fd3f1c2b282454438cba"></a><!-- doxytag: member="memb.h::MEMB" ref="gf31774d02a69fd3f1c2b282454438cba" args="(name, structure, num)" --><p>
62*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
63*10465441SEvalZero  <tr>
64*10465441SEvalZero    <td class="mdRow">
65*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
66*10465441SEvalZero        <tr>
67*10465441SEvalZero          <td class="md" nowrap valign="top">#define MEMB          </td>
68*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
69*10465441SEvalZero          <td class="md" nowrap valign="top">name,         <tr>
70*10465441SEvalZero          <td class="md" nowrap align="right"></td>
71*10465441SEvalZero          <td class="md"></td>
72*10465441SEvalZero          <td class="md" nowrap>structure,         <tr>
73*10465441SEvalZero          <td class="md" nowrap align="right"></td>
74*10465441SEvalZero          <td class="md"></td>
75*10465441SEvalZero          <td class="md" nowrap>num&nbsp;</td>
76*10465441SEvalZero          <td class="mdname1" valign="top" nowrap>          </td>
77*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
78*10465441SEvalZero          <td class="md" nowrap></td>
79*10465441SEvalZero        </tr>
80*10465441SEvalZero      </table>
81*10465441SEvalZero    </td>
82*10465441SEvalZero  </tr>
83*10465441SEvalZero</table>
84*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
85*10465441SEvalZero  <tr>
86*10465441SEvalZero    <td>
87*10465441SEvalZero      &nbsp;
88*10465441SEvalZero    </td>
89*10465441SEvalZero    <td>
90*10465441SEvalZero
91*10465441SEvalZero<p>
92*10465441SEvalZero<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code" href="a00159.html#g720ac440c7b24bdd07c53ba146e36fb2">MEMB_CONCAT</a>(name,_memb_count)[num]; \
93*10465441SEvalZero        <span class="keyword">static</span> structure <a class="code" href="a00159.html#g720ac440c7b24bdd07c53ba146e36fb2">MEMB_CONCAT</a>(name,_memb_mem)[num]; \
94*10465441SEvalZero        <span class="keyword">static</span> <span class="keyword">struct </span><a class="code" href="a00081.html">memb_blocks</a> name = {<span class="keyword">sizeof</span>(structure), <a class="code" href="a00081.html#164124d48fe85bc98d9a300382a5245d">num</a>, \
95*10465441SEvalZero                                          <a class="code" href="a00159.html#g720ac440c7b24bdd07c53ba146e36fb2">MEMB_CONCAT</a>(name,_memb_count), \
96*10465441SEvalZero                                          (<span class="keywordtype">void</span> *)<a class="code" href="a00159.html#g720ac440c7b24bdd07c53ba146e36fb2">MEMB_CONCAT</a>(name,_memb_mem)}
97*10465441SEvalZero</pre></div>Declare a memory block.
98*10465441SEvalZero<p>
99*10465441SEvalZeroThis macro is used to staticall declare a block of memory that can be used by the block allocation functions. The macro statically declares a C array with a size that matches the specified number of blocks and their individual sizes.<p>
100*10465441SEvalZeroExample: <div class="fragment"><pre class="fragment"><a class="code" href="a00159.html#gf31774d02a69fd3f1c2b282454438cba">MEMB</a>(connections, <span class="keyword">sizeof</span>(<span class="keyword">struct</span> connection), 16);
101*10465441SEvalZero</pre></div><p>
102*10465441SEvalZero<dl compact><dt><b>Parameters:</b></dt><dd>
103*10465441SEvalZero  <table border="0" cellspacing="2" cellpadding="0">
104*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the memory block (later used with <a class="el" href="a00159.html#gd58a6c7e62ae59bf7a016ded12ca2910">memb_init()</a>, <a class="el" href="a00159.html#gfe5e93119035e14cc485760a176249ba">memb_alloc()</a> and <a class="el" href="a00159.html#gceb952d27de8125d5146ac0bee325b8f">memb_free()</a>).</td></tr>
105*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>The size of each memory chunk, in bytes.</td></tr>
106*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>num</em>&nbsp;</td><td>The total number of memory chunks in the block. </td></tr>
107*10465441SEvalZero  </table>
108*10465441SEvalZero</dl>
109*10465441SEvalZero<dl compact><dt><b>Examples: </b></dt><dd>
110*10465441SEvalZero<a class="el" href="a00044.html#a206">telnetd.c</a>.</dl>
111*10465441SEvalZero<p>
112*10465441SEvalZeroDefinition at line <a class="el" href="a00187.html#l00098">98</a> of file <a class="el" href="a00187.html">memb.h</a>.    </td>
113*10465441SEvalZero  </tr>
114*10465441SEvalZero</table>
115*10465441SEvalZero<hr><h2>Function Documentation</h2>
116*10465441SEvalZero<a class="anchor" name="gfe5e93119035e14cc485760a176249ba"></a><!-- doxytag: member="memb.c::memb_alloc" ref="gfe5e93119035e14cc485760a176249ba" args="(struct memb_blocks *m)" --><p>
117*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
118*10465441SEvalZero  <tr>
119*10465441SEvalZero    <td class="mdRow">
120*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
121*10465441SEvalZero        <tr>
122*10465441SEvalZero          <td class="md" nowrap valign="top">void * memb_alloc           </td>
123*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
124*10465441SEvalZero          <td class="md" nowrap valign="top">struct <a class="el" href="a00081.html">memb_blocks</a> *&nbsp;</td>
125*10465441SEvalZero          <td class="mdname1" valign="top" nowrap> <em>m</em>          </td>
126*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
127*10465441SEvalZero          <td class="md" nowrap></td>
128*10465441SEvalZero        </tr>
129*10465441SEvalZero      </table>
130*10465441SEvalZero    </td>
131*10465441SEvalZero  </tr>
132*10465441SEvalZero</table>
133*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
134*10465441SEvalZero  <tr>
135*10465441SEvalZero    <td>
136*10465441SEvalZero      &nbsp;
137*10465441SEvalZero    </td>
138*10465441SEvalZero    <td>
139*10465441SEvalZero
140*10465441SEvalZero<p>
141*10465441SEvalZeroAllocate a memory block from a block of memory declared with <a class="el" href="a00159.html#gf31774d02a69fd3f1c2b282454438cba">MEMB()</a>.
142*10465441SEvalZero<p>
143*10465441SEvalZero<dl compact><dt><b>Parameters:</b></dt><dd>
144*10465441SEvalZero  <table border="0" cellspacing="2" cellpadding="0">
145*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>m</em>&nbsp;</td><td>A memory block previosly declared with <a class="el" href="a00159.html#gf31774d02a69fd3f1c2b282454438cba">MEMB()</a>. </td></tr>
146*10465441SEvalZero  </table>
147*10465441SEvalZero</dl>
148*10465441SEvalZero<dl compact><dt><b>Examples: </b></dt><dd>
149*10465441SEvalZero<a class="el" href="a00044.html#a208">telnetd.c</a>.</dl>
150*10465441SEvalZero<p>
151*10465441SEvalZeroDefinition at line <a class="el" href="a00186.html#l00059">59</a> of file <a class="el" href="a00186.html">memb.c</a>.
152*10465441SEvalZero<p>
153*10465441SEvalZeroReferences <a class="el" href="a00187.html#l00108">memb_blocks::count</a>, <a class="el" href="a00187.html#l00109">memb_blocks::mem</a>, <a class="el" href="a00187.html#l00107">memb_blocks::num</a>, and <a class="el" href="a00187.html#l00106">memb_blocks::size</a>.    </td>
154*10465441SEvalZero  </tr>
155*10465441SEvalZero</table>
156*10465441SEvalZero<a class="anchor" name="gceb952d27de8125d5146ac0bee325b8f"></a><!-- doxytag: member="memb.c::memb_free" ref="gceb952d27de8125d5146ac0bee325b8f" args="(struct memb_blocks *m, void *ptr)" --><p>
157*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
158*10465441SEvalZero  <tr>
159*10465441SEvalZero    <td class="mdRow">
160*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
161*10465441SEvalZero        <tr>
162*10465441SEvalZero          <td class="md" nowrap valign="top">char memb_free           </td>
163*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
164*10465441SEvalZero          <td class="md" nowrap valign="top">struct <a class="el" href="a00081.html">memb_blocks</a> *&nbsp;</td>
165*10465441SEvalZero          <td class="mdname" nowrap> <em>m</em>, </td>
166*10465441SEvalZero        </tr>
167*10465441SEvalZero        <tr>
168*10465441SEvalZero          <td class="md" nowrap align="right"></td>
169*10465441SEvalZero          <td class="md"></td>
170*10465441SEvalZero          <td class="md" nowrap>void *&nbsp;</td>
171*10465441SEvalZero          <td class="mdname" nowrap> <em>ptr</em></td>
172*10465441SEvalZero        </tr>
173*10465441SEvalZero        <tr>
174*10465441SEvalZero          <td class="md"></td>
175*10465441SEvalZero          <td class="md">)&nbsp;</td>
176*10465441SEvalZero          <td class="md" colspan="2"></td>
177*10465441SEvalZero        </tr>
178*10465441SEvalZero      </table>
179*10465441SEvalZero    </td>
180*10465441SEvalZero  </tr>
181*10465441SEvalZero</table>
182*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
183*10465441SEvalZero  <tr>
184*10465441SEvalZero    <td>
185*10465441SEvalZero      &nbsp;
186*10465441SEvalZero    </td>
187*10465441SEvalZero    <td>
188*10465441SEvalZero
189*10465441SEvalZero<p>
190*10465441SEvalZeroDeallocate a memory block from a memory block previously declared with <a class="el" href="a00159.html#gf31774d02a69fd3f1c2b282454438cba">MEMB()</a>.
191*10465441SEvalZero<p>
192*10465441SEvalZero<dl compact><dt><b>Parameters:</b></dt><dd>
193*10465441SEvalZero  <table border="0" cellspacing="2" cellpadding="0">
194*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>m</em>&nbsp;</td><td>m A memory block previosly declared with <a class="el" href="a00159.html#gf31774d02a69fd3f1c2b282454438cba">MEMB()</a>.</td></tr>
195*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>ptr</em>&nbsp;</td><td>A pointer to the memory block that is to be deallocated.</td></tr>
196*10465441SEvalZero  </table>
197*10465441SEvalZero</dl>
198*10465441SEvalZero<dl compact><dt><b>Returns:</b></dt><dd>The new reference count for the memory block (should be 0 if successfully deallocated) or -1 if the pointer "ptr" did not point to a legal memory block. </dd></dl>
199*10465441SEvalZero<dl compact><dt><b>Examples: </b></dt><dd>
200*10465441SEvalZero<a class="el" href="a00044.html#a209">telnetd.c</a>.</dl>
201*10465441SEvalZero<p>
202*10465441SEvalZeroDefinition at line <a class="el" href="a00186.html#l00079">79</a> of file <a class="el" href="a00186.html">memb.c</a>.
203*10465441SEvalZero<p>
204*10465441SEvalZeroReferences <a class="el" href="a00187.html#l00108">memb_blocks::count</a>, <a class="el" href="a00187.html#l00109">memb_blocks::mem</a>, and <a class="el" href="a00187.html#l00106">memb_blocks::size</a>.    </td>
205*10465441SEvalZero  </tr>
206*10465441SEvalZero</table>
207*10465441SEvalZero<a class="anchor" name="gd58a6c7e62ae59bf7a016ded12ca2910"></a><!-- doxytag: member="memb.c::memb_init" ref="gd58a6c7e62ae59bf7a016ded12ca2910" args="(struct memb_blocks *m)" --><p>
208*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
209*10465441SEvalZero  <tr>
210*10465441SEvalZero    <td class="mdRow">
211*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
212*10465441SEvalZero        <tr>
213*10465441SEvalZero          <td class="md" nowrap valign="top">void memb_init           </td>
214*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
215*10465441SEvalZero          <td class="md" nowrap valign="top">struct <a class="el" href="a00081.html">memb_blocks</a> *&nbsp;</td>
216*10465441SEvalZero          <td class="mdname1" valign="top" nowrap> <em>m</em>          </td>
217*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
218*10465441SEvalZero          <td class="md" nowrap></td>
219*10465441SEvalZero        </tr>
220*10465441SEvalZero      </table>
221*10465441SEvalZero    </td>
222*10465441SEvalZero  </tr>
223*10465441SEvalZero</table>
224*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
225*10465441SEvalZero  <tr>
226*10465441SEvalZero    <td>
227*10465441SEvalZero      &nbsp;
228*10465441SEvalZero    </td>
229*10465441SEvalZero    <td>
230*10465441SEvalZero
231*10465441SEvalZero<p>
232*10465441SEvalZeroInitialize a memory block that was declared with <a class="el" href="a00159.html#gf31774d02a69fd3f1c2b282454438cba">MEMB()</a>.
233*10465441SEvalZero<p>
234*10465441SEvalZero<dl compact><dt><b>Parameters:</b></dt><dd>
235*10465441SEvalZero  <table border="0" cellspacing="2" cellpadding="0">
236*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>m</em>&nbsp;</td><td>A memory block previosly declared with <a class="el" href="a00159.html#gf31774d02a69fd3f1c2b282454438cba">MEMB()</a>. </td></tr>
237*10465441SEvalZero  </table>
238*10465441SEvalZero</dl>
239*10465441SEvalZero<dl compact><dt><b>Examples: </b></dt><dd>
240*10465441SEvalZero<a class="el" href="a00044.html#a220">telnetd.c</a>.</dl>
241*10465441SEvalZero<p>
242*10465441SEvalZeroDefinition at line <a class="el" href="a00186.html#l00052">52</a> of file <a class="el" href="a00186.html">memb.c</a>.
243*10465441SEvalZero<p>
244*10465441SEvalZeroReferences <a class="el" href="a00187.html#l00108">memb_blocks::count</a>, <a class="el" href="a00187.html#l00109">memb_blocks::mem</a>, <a class="el" href="a00187.html#l00107">memb_blocks::num</a>, and <a class="el" href="a00187.html#l00106">memb_blocks::size</a>.    </td>
245*10465441SEvalZero  </tr>
246*10465441SEvalZero</table>
247*10465441SEvalZero<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
248*10465441SEvalZero<a href="http://www.doxygen.org/index.html">
249*10465441SEvalZero<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
250*10465441SEvalZero</body>
251*10465441SEvalZero</html>
252