<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>unbound: alloc_cache Struct Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.9 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="classes.html"><span>Data Structure Index</span></a></li> <li><a href="functions.html"><span>Data Fields</span></a></li> </ul> </div> </div> <div class="contents"> <h1>alloc_cache Struct Reference</h1><!-- doxytag: class="alloc_cache" -->Structure that provides allocation. <a href="#_details">More...</a> <p> <code>#include <alloc.h></code> <p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Data Fields</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">lock_quick_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structalloc__cache.html#0dcc758b68fa520a91167fad0d73a8ba">lock</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">lock, only used for the super. <a href="#0dcc758b68fa520a91167fad0d73a8ba"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structalloc__cache.html">alloc_cache</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structalloc__cache.html#544018c10de15ffc6a0b45b17a418801">super</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">global allocator above this one. <a href="#544018c10de15ffc6a0b45b17a418801"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structub__packed__rrset__key.html">alloc_special_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structalloc__cache.html#45f7ec0db45344f6c50fcd002027b0b2">quar</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">singly linked lists of special type. <a href="#45f7ec0db45344f6c50fcd002027b0b2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structalloc__cache.html#b3321201c18abf9d6806843fe68afdea">num_quar</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">number of items in quarantine. <a href="#b3321201c18abf9d6806843fe68afdea"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="bddad38336ac26f836bf593ebb81e8f0"></a><!-- doxytag: member="alloc_cache::thread_num" ref="bddad38336ac26f836bf593ebb81e8f0" args="" --> int </td><td class="memItemRight" valign="bottom"><a class="el" href="structalloc__cache.html#bddad38336ac26f836bf593ebb81e8f0">thread_num</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">thread number for id creation <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="80f182b69edcbaac0aa23b485c7c082c"></a><!-- doxytag: member="alloc_cache::next_id" ref="80f182b69edcbaac0aa23b485c7c082c" args="" --> uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structalloc__cache.html#80f182b69edcbaac0aa23b485c7c082c">next_id</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">next id number to pass out <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e32f72aaff235d90c499a0365004c9a6"></a><!-- doxytag: member="alloc_cache::last_id" ref="e32f72aaff235d90c499a0365004c9a6" args="" --> uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structalloc__cache.html#e32f72aaff235d90c499a0365004c9a6">last_id</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">last id number possible <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3d12e999f3f3f87fc8401dd4acd0f2e2"></a><!-- doxytag: member="alloc_cache::cleanup" ref="3d12e999f3f3f87fc8401dd4acd0f2e2" args=")(void *)" --> void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structalloc__cache.html#3d12e999f3f3f87fc8401dd4acd0f2e2">cleanup</a> )(void *)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">what function to call to cleanup when last id is reached <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b06b7dc1a17ed296c1f8751ea4c31650"></a><!-- doxytag: member="alloc_cache::cleanup_arg" ref="b06b7dc1a17ed296c1f8751ea4c31650" args="" --> void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structalloc__cache.html#b06b7dc1a17ed296c1f8751ea4c31650">cleanup_arg</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">user arg for cleanup <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7335a18972c0ce227a1320d7db44e210"></a><!-- doxytag: member="alloc_cache::max_reg_blocks" ref="7335a18972c0ce227a1320d7db44e210" args="" --> size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structalloc__cache.html#7335a18972c0ce227a1320d7db44e210">max_reg_blocks</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">how many <a class="el" href="structregional.html" title="the regional* is the first block*.">regional</a> blocks to keep back max <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ce5a6cb87de1f73012d40dd094e5ca6c"></a><!-- doxytag: member="alloc_cache::num_reg_blocks" ref="ce5a6cb87de1f73012d40dd094e5ca6c" args="" --> size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structalloc__cache.html#ce5a6cb87de1f73012d40dd094e5ca6c">num_reg_blocks</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">how many <a class="el" href="structregional.html" title="the regional* is the first block*.">regional</a> blocks are kept now <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5ee1771656c3825fd3c0b9e5d86d9526"></a><!-- doxytag: member="alloc_cache::reg_list" ref="5ee1771656c3825fd3c0b9e5d86d9526" args="" --> struct <a class="el" href="structregional.html">regional</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structalloc__cache.html#5ee1771656c3825fd3c0b9e5d86d9526">reg_list</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">linked list of <a class="el" href="structregional.html" title="the regional* is the first block*.">regional</a> blocks, using regional->next <br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Structure that provides allocation. <p> Use one per thread. The one on top has a NULL super pointer. <hr><h2>Field Documentation</h2> <a class="anchor" name="0dcc758b68fa520a91167fad0d73a8ba"></a><!-- doxytag: member="alloc_cache::lock" ref="0dcc758b68fa520a91167fad0d73a8ba" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">lock_quick_t <a class="el" href="structalloc__cache.html#0dcc758b68fa520a91167fad0d73a8ba">alloc_cache::lock</a> </td> </tr> </table> </div> <div class="memdoc"> <p> lock, only used for the super. <p> <p>Referenced by <a class="el" href="alloc_8c_source.html#l00124">alloc_clear()</a>, <a class="el" href="alloc_8c_source.html#l00280">alloc_get_mem()</a>, <a class="el" href="alloc_8c_source.html#l00097">alloc_init()</a>, <a class="el" href="alloc_8c_source.html#l00186">alloc_special_obtain()</a>, <a class="el" href="alloc_8c_source.html#l00249">alloc_special_release()</a>, <a class="el" href="unitverify_8c_source.html#l00089">entry_to_repinfo()</a>, and <a class="el" href="alloc_8c_source.html#l00224">pushintosuper()</a>.</p> </div> </div><p> <a class="anchor" name="544018c10de15ffc6a0b45b17a418801"></a><!-- doxytag: member="alloc_cache::super" ref="544018c10de15ffc6a0b45b17a418801" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structalloc__cache.html">alloc_cache</a>* <a class="el" href="structalloc__cache.html#544018c10de15ffc6a0b45b17a418801">alloc_cache::super</a><code> [read]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> global allocator above this one. <p> NULL for none (malloc/free) <p>Referenced by <a class="el" href="alloc_8c_source.html#l00124">alloc_clear()</a>, <a class="el" href="alloc_8c_source.html#l00280">alloc_get_mem()</a>, <a class="el" href="alloc_8c_source.html#l00097">alloc_init()</a>, <a class="el" href="alloc_8c_source.html#l00186">alloc_special_obtain()</a>, <a class="el" href="alloc_8c_source.html#l00249">alloc_special_release()</a>, <a class="el" href="alloc_8c_source.html#l00274">alloc_stats()</a>, <a class="el" href="context_8c_source.html#l00167">context_obtain_alloc()</a>, <a class="el" href="context_8c_source.html#l00193">context_release_alloc()</a>, <a class="el" href="alloc_8c_source.html#l00224">pushintosuper()</a>, and <a class="el" href="libunbound_8c_source.html#l00153">ub_ctx_delete()</a>.</p> </div> </div><p> <a class="anchor" name="45f7ec0db45344f6c50fcd002027b0b2"></a><!-- doxytag: member="alloc_cache::quar" ref="45f7ec0db45344f6c50fcd002027b0b2" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structub__packed__rrset__key.html">alloc_special_t</a>* <a class="el" href="structalloc__cache.html#45f7ec0db45344f6c50fcd002027b0b2">alloc_cache::quar</a> </td> </tr> </table> </div> <div class="memdoc"> <p> singly linked lists of special type. <p> These are free for use. <p>Referenced by <a class="el" href="alloc_8c_source.html#l00124">alloc_clear()</a>, <a class="el" href="alloc_8c_source.html#l00280">alloc_get_mem()</a>, <a class="el" href="alloc_8c_source.html#l00186">alloc_special_obtain()</a>, <a class="el" href="alloc_8c_source.html#l00249">alloc_special_release()</a>, <a class="el" href="alloc_8c_source.html#l00067">prealloc()</a>, and <a class="el" href="alloc_8c_source.html#l00224">pushintosuper()</a>.</p> </div> </div><p> <a class="anchor" name="b3321201c18abf9d6806843fe68afdea"></a><!-- doxytag: member="alloc_cache::num_quar" ref="b3321201c18abf9d6806843fe68afdea" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t <a class="el" href="structalloc__cache.html#b3321201c18abf9d6806843fe68afdea">alloc_cache::num_quar</a> </td> </tr> </table> </div> <div class="memdoc"> <p> number of items in quarantine. <p> <p>Referenced by <a class="el" href="alloc_8c_source.html#l00124">alloc_clear()</a>, <a class="el" href="alloc_8c_source.html#l00280">alloc_get_mem()</a>, <a class="el" href="alloc_8c_source.html#l00186">alloc_special_obtain()</a>, <a class="el" href="alloc_8c_source.html#l00249">alloc_special_release()</a>, <a class="el" href="alloc_8c_source.html#l00274">alloc_stats()</a>, <a class="el" href="unitmain_8c_source.html#l00052">alloc_test()</a>, <a class="el" href="alloc_8c_source.html#l00067">prealloc()</a>, and <a class="el" href="alloc_8c_source.html#l00224">pushintosuper()</a>.</p> </div> </div><p> <hr>The documentation for this struct was generated from the following file:<ul> <li>util/<a class="el" href="alloc_8h.html">alloc.h</a></ul> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Tue Oct 13 06:46:33 2009 for unbound by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address> </body> </html>