Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 550bbe86d83a7870fdddc73c68e5d2b2 > files > 319

libunbound-devel-1.3.4-1mdv2010.0.i586.rpm

<!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: lruhash_entry 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&nbsp;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&nbsp;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&nbsp;Structures</span></a></li>
      <li><a href="classes.html"><span>Data&nbsp;Structure&nbsp;Index</span></a></li>
      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>lruhash_entry Struct Reference</h1><!-- doxytag: class="lruhash_entry" -->An <a class="el" href="structentry.html" title="data structure to keep the canned queries in.">entry</a> into the hash table.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;lruhash.h&gt;</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_rw_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlruhash__entry.html#b6f8df78c0bd88f3478f47f8b8a6761a">lock</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">rwlock for access to the contents of the <a class="el" href="structentry.html" title="data structure to keep the canned queries in.">entry</a> Note that it does _not_ cover the lru_ and overflow_ ptrs.  <a href="#b6f8df78c0bd88f3478f47f8b8a6761a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlruhash__entry.html">lruhash_entry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlruhash__entry.html#d522be505dc708fa9f2bf5a614cbc718">overflow_next</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">next <a class="el" href="structentry.html" title="data structure to keep the canned queries in.">entry</a> in overflow chain.  <a href="#d522be505dc708fa9f2bf5a614cbc718"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlruhash__entry.html">lruhash_entry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlruhash__entry.html#ae649b43924bd258f5e9a2a54615e73c">lru_next</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">next <a class="el" href="structentry.html" title="data structure to keep the canned queries in.">entry</a> in lru chain.  <a href="#ae649b43924bd258f5e9a2a54615e73c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlruhash__entry.html">lruhash_entry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlruhash__entry.html#c44d523c998a5177ad12bec7a9a3e3d8">lru_prev</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">prev <a class="el" href="structentry.html" title="data structure to keep the canned queries in.">entry</a> in lru chain.  <a href="#c44d523c998a5177ad12bec7a9a3e3d8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="lruhash_8h.html#050c9ffcb4f555022a735896cdee3795">hashvalue_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlruhash__entry.html#d39dea2d6f1aaa19615b7e26c33b2bcc">hash</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">hash value of the key.  <a href="#d39dea2d6f1aaa19615b7e26c33b2bcc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fb43da072b1dc42d34732b1335711ba2"></a><!-- doxytag: member="lruhash_entry::key" ref="fb43da072b1dc42d34732b1335711ba2" args="" -->
void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlruhash__entry.html#fb43da072b1dc42d34732b1335711ba2">key</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">key <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b604732a2475322c2fc9a629d4843b19"></a><!-- doxytag: member="lruhash_entry::data" ref="b604732a2475322c2fc9a629d4843b19" args="" -->
void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlruhash__entry.html#b604732a2475322c2fc9a629d4843b19">data</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">data <br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
An <a class="el" href="structentry.html" title="data structure to keep the canned queries in.">entry</a> into the hash table. 
<p>
To change overflow_next you need to hold the bin lock. To change the lru items you need to hold the hashtable lock. This structure is designed as part of key struct. And key pointer helps to get the surrounding structure. Data should be allocated on its own. <hr><h2>Field Documentation</h2>
<a class="anchor" name="b6f8df78c0bd88f3478f47f8b8a6761a"></a><!-- doxytag: member="lruhash_entry::lock" ref="b6f8df78c0bd88f3478f47f8b8a6761a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">lock_rw_t <a class="el" href="structlruhash__entry.html#b6f8df78c0bd88f3478f47f8b8a6761a">lruhash_entry::lock</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
rwlock for access to the contents of the <a class="el" href="structentry.html" title="data structure to keep the canned queries in.">entry</a> Note that it does _not_ cover the lru_ and overflow_ ptrs. 
<p>
Even with a writelock, you cannot change hash and key. You need to delete it to change hash or key. 
<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#l00055">alloc_setup_special()</a>, <a class="el" href="lruhash_8c_source.html#l00415">bin_clear()</a>, <a class="el" href="dns_8c_source.html#l00222">cache_fill_missing()</a>, <a class="el" href="unitlruhash_8c_source.html#l00053">delkey()</a>, <a class="el" href="dns_8c_source.html#l00347">dns_cache_find_delegation()</a>, <a class="el" href="dns_8c_source.html#l00585">dns_cache_lookup()</a>, <a class="el" href="cachedump_8c_source.html#l00311">dump_msg_lruhash()</a>, <a class="el" href="cachedump_8c_source.html#l00147">dump_rrset_lruhash()</a>, <a class="el" href="dns_8c_source.html#l00172">find_add_addrs()</a>, <a class="el" href="dns_8c_source.html#l00274">find_add_ds()</a>, <a class="el" href="val__neg_8c_source.html#l01113">grab_nsec()</a>, <a class="el" href="infra_8c_source.html#l00487">infra_edns_update()</a>, <a class="el" href="infra_8c_source.html#l00513">infra_get_lame_rtt()</a>, <a class="el" href="infra_8c_source.html#l00578">infra_get_mem()</a>, <a class="el" href="infra_8c_source.html#l00227">infra_host()</a>, <a class="el" href="infra_8c_source.html#l00067">infra_host_delkeyfunc()</a>, <a class="el" href="infra_8c_source.html#l00051">infra_host_sizefunc()</a>, <a class="el" href="infra_8c_source.html#l00329">infra_lame_delkeyfunc()</a>, <a class="el" href="infra_8c_source.html#l00169">infra_lookup_host()</a>, <a class="el" href="infra_8c_source.html#l00277">infra_lookup_lame()</a>, <a class="el" href="infra_8c_source.html#l00457">infra_rtt_update()</a>, <a class="el" href="infra_8c_source.html#l00348">infra_set_lame()</a>, <a class="el" href="unitmain_8c_source.html#l00333">infra_test()</a>, <a class="el" href="infra_8c_source.html#l00440">infra_update_tcp_works()</a>, <a class="el" href="pythonmod__utils_8c_source.html#l00071">invalidateQueryInCache()</a>, <a class="el" href="val__kcache_8c_source.html#l00121">key_cache_obtain()</a>, <a class="el" href="val__kentry_8c_source.html#l00136">key_entry_copy()</a>, <a class="el" href="val__kentry_8c_source.html#l00075">key_entry_delkeyfunc()</a>, <a class="el" href="val__kentry_8c_source.html#l00050">key_entry_sizefunc()</a>, <a class="el" href="cachedump_8c_source.html#l00656">load_ref()</a>, <a class="el" href="lruhash_8c_source.html#l00299">lruhash_insert()</a>, <a class="el" href="lruhash_8c_source.html#l00355">lruhash_lookup()</a>, <a class="el" href="lruhash_8c_source.html#l00377">lruhash_remove()</a>, <a class="el" href="lruhash_8c_source.html#l00516">lruhash_traverse()</a>, <a class="el" href="dns_8c_source.html#l00148">msg_cache_lookup()</a>, <a class="el" href="msgreply_8c_source.html#l00557">msgreply_sizefunc()</a>, <a class="el" href="infra_8c_source.html#l00198">new_host_entry()</a>, <a class="el" href="unitlruhash_8c_source.html#l00061">newkey()</a>, <a class="el" href="msgreply_8c_source.html#l00570">query_entry_delete()</a>, <a class="el" href="msgreply_8c_source.html#l00596">query_info_entrysetup()</a>, <a class="el" href="lruhash_8c_source.html#l00181">reclaim_space()</a>, <a class="el" href="rrset_8c_source.html#l00226">rrset_cache_lookup()</a>, <a class="el" href="rrset_8c_source.html#l00092">rrset_cache_touch()</a>, <a class="el" href="rrset_8c_source.html#l00171">rrset_cache_update()</a>, <a class="el" href="rrset_8c_source.html#l00156">rrset_update_id()</a>, <a class="el" href="unitlruhash_8c_source.html#l00209">test_short_table()</a>, <a class="el" href="unitlruhash_8c_source.html#l00258">testlookup()</a>, <a class="el" href="unitlruhash_8c_source.html#l00338">testlookup_unlim()</a>, <a class="el" href="packed__rrset_8c_source.html#l00067">ub_rrset_sizefunc()</a>, <a class="el" href="val__neg_8c_source.html#l00913">val_neg_dlvlookup()</a>, and <a class="el" href="worker_8c_source.html#l00681">worker_handle_request()</a>.</p>

</div>
</div><p>
<a class="anchor" name="d522be505dc708fa9f2bf5a614cbc718"></a><!-- doxytag: member="lruhash_entry::overflow_next" ref="d522be505dc708fa9f2bf5a614cbc718" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structlruhash__entry.html">lruhash_entry</a>* <a class="el" href="structlruhash__entry.html#d522be505dc708fa9f2bf5a614cbc718">lruhash_entry::overflow_next</a><code> [read]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
next <a class="el" href="structentry.html" title="data structure to keep the canned queries in.">entry</a> in overflow chain. 
<p>
Covered by hashlock and binlock. 
<p>Referenced by <a class="el" href="lruhash_8c_source.html#l00415">bin_clear()</a>, <a class="el" href="lruhash_8c_source.html#l00097">bin_delete()</a>, <a class="el" href="lruhash_8c_source.html#l00217">bin_find_entry()</a>, <a class="el" href="lruhash_8c_source.html#l00166">bin_overflow_remove()</a>, <a class="el" href="lruhash_8c_source.html#l00116">bin_split()</a>, <a class="el" href="infra_8c_source.html#l00578">infra_get_mem()</a>, <a class="el" href="lruhash_8c_source.html#l00299">lruhash_insert()</a>, <a class="el" href="lruhash_8c_source.html#l00458">lruhash_status()</a>, <a class="el" href="lruhash_8c_source.html#l00516">lruhash_traverse()</a>, <a class="el" href="lruhash_8c_source.html#l00181">reclaim_space()</a>, and <a class="el" href="unitlruhash_8c_source.html#l00081">test_bin_find_entry()</a>.</p>

</div>
</div><p>
<a class="anchor" name="ae649b43924bd258f5e9a2a54615e73c"></a><!-- doxytag: member="lruhash_entry::lru_next" ref="ae649b43924bd258f5e9a2a54615e73c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structlruhash__entry.html">lruhash_entry</a>* <a class="el" href="structlruhash__entry.html#ae649b43924bd258f5e9a2a54615e73c">lruhash_entry::lru_next</a><code> [read]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
next <a class="el" href="structentry.html" title="data structure to keep the canned queries in.">entry</a> in lru chain. 
<p>
covered by hashlock. 
<p>Referenced by <a class="el" href="unitslabhash_8c_source.html#l00151">check_lru_table()</a>, <a class="el" href="unitlruhash_8c_source.html#l00277">check_table()</a>, <a class="el" href="cachedump_8c_source.html#l00311">dump_msg_lruhash()</a>, <a class="el" href="cachedump_8c_source.html#l00147">dump_rrset_lruhash()</a>, <a class="el" href="lruhash_8c_source.html#l00265">lru_front()</a>, <a class="el" href="lruhash_8c_source.html#l00276">lru_remove()</a>, and <a class="el" href="lruhash_8c_source.html#l00181">reclaim_space()</a>.</p>

</div>
</div><p>
<a class="anchor" name="c44d523c998a5177ad12bec7a9a3e3d8"></a><!-- doxytag: member="lruhash_entry::lru_prev" ref="c44d523c998a5177ad12bec7a9a3e3d8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structlruhash__entry.html">lruhash_entry</a>* <a class="el" href="structlruhash__entry.html#c44d523c998a5177ad12bec7a9a3e3d8">lruhash_entry::lru_prev</a><code> [read]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
prev <a class="el" href="structentry.html" title="data structure to keep the canned queries in.">entry</a> in lru chain. 
<p>
covered by hashlock. 
<p>Referenced by <a class="el" href="unitslabhash_8c_source.html#l00151">check_lru_table()</a>, <a class="el" href="unitlruhash_8c_source.html#l00277">check_table()</a>, <a class="el" href="lruhash_8c_source.html#l00265">lru_front()</a>, <a class="el" href="lruhash_8c_source.html#l00276">lru_remove()</a>, and <a class="el" href="lruhash_8c_source.html#l00181">reclaim_space()</a>.</p>

</div>
</div><p>
<a class="anchor" name="d39dea2d6f1aaa19615b7e26c33b2bcc"></a><!-- doxytag: member="lruhash_entry::hash" ref="d39dea2d6f1aaa19615b7e26c33b2bcc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="lruhash_8h.html#050c9ffcb4f555022a735896cdee3795">hashvalue_t</a> <a class="el" href="structlruhash__entry.html#d39dea2d6f1aaa19615b7e26c33b2bcc">lruhash_entry::hash</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
hash value of the key. 
<p>
It may not change, until <a class="el" href="structentry.html" title="data structure to keep the canned queries in.">entry</a> deleted. 
<p>Referenced by <a class="el" href="lruhash_8c_source.html#l00217">bin_find_entry()</a>, <a class="el" href="lruhash_8c_source.html#l00116">bin_split()</a>, <a class="el" href="infra_8c_source.html#l00487">infra_edns_update()</a>, <a class="el" href="infra_8c_source.html#l00227">infra_host()</a>, <a class="el" href="infra_8c_source.html#l00156">infra_lookup_host_nottl()</a>, <a class="el" href="infra_8c_source.html#l00277">infra_lookup_lame()</a>, <a class="el" href="infra_8c_source.html#l00457">infra_rtt_update()</a>, <a class="el" href="infra_8c_source.html#l00348">infra_set_lame()</a>, <a class="el" href="val__kcache_8c_source.html#l00082">key_cache_insert()</a>, <a class="el" href="val__kcache_8c_source.html#l00104">key_cache_search()</a>, <a class="el" href="val__kentry_8c_source.html#l00094">key_entry_hash()</a>, <a class="el" href="cachedump_8c_source.html#l00458">move_into_cache()</a>, <a class="el" href="infra_8c_source.html#l00198">new_host_entry()</a>, <a class="el" href="unitlruhash_8c_source.html#l00061">newkey()</a>, <a class="el" href="packed__rrset_8c_source.html#l00268">packed_rrset_copy_region()</a>, <a class="el" href="msgreply_8c_source.html#l00333">parse_copy_decompress_rrset()</a>, <a class="el" href="msgreply_8c_source.html#l00596">query_info_entrysetup()</a>, <a class="el" href="lruhash_8c_source.html#l00181">reclaim_space()</a>, <a class="el" href="msgreply_8c_source.html#l00617">repinfo_copy_rrsets()</a>, <a class="el" href="rrset_8c_source.html#l00226">rrset_cache_lookup()</a>, <a class="el" href="rrset_8c_source.html#l00385">rrset_cache_remove()</a>, <a class="el" href="rrset_8c_source.html#l00092">rrset_cache_touch()</a>, <a class="el" href="rrset_8c_source.html#l00171">rrset_cache_update()</a>, <a class="el" href="rrset_8c_source.html#l00349">rrset_check_sec_status()</a>, <a class="el" href="rrset_8c_source.html#l00316">rrset_update_sec_status()</a>, <a class="el" href="dns_8c_source.html#l00498">synth_dname_msg()</a>, and <a class="el" href="unitlruhash_8c_source.html#l00081">test_bin_find_entry()</a>.</p>

</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li>util/storage/<a class="el" href="lruhash_8h.html">lruhash.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Oct 13 06:46:34 2009 for unbound by&nbsp;
<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>