--- /dev/null
+2005-03-21 Martin Hunt <hunt@redhat.com>
+
+ * io.c (_stp_print_buf): Add print buffer stuff and other misc.
+ Will move later.
+
+ * map.c (_stp_map_add_int64): New function.
+
+ * probes: Directory of example probes.
+
# directories that contain example code fragments that are included (see
# the \include command).
-EXAMPLE_PATH = docs/examples
+EXAMPLE_PATH = docs/examples probes
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
* If maps overflow or memory runs out for some reason, globals are set but nothing is done yet.
* I expect to implement a function to tell the system to either ignore it or unload the module and quit.
*
- * Working sample probe code using the runtime is in tests/test4_probe and tests/shellprobe.
+ * @section probe_sec Example Probes
+ *
+ * Working sample probe code using the runtime is in runtime/probes.
*
- * @todo The Runtime Library is not actually a library yet. It is just a collection of functions
- * included in the probe boilerplate.
+ *
+ * @section todo_sec ToDo
+ * \link todo Click Here for Complete List \endlink
+ * The Runtime Library is not actually a library yet. It is just a collection of functions
+ * included in the probe boilerplate. Maybe it should stay that way to allow the translator
+ * more flexibility in what is included.
*
*/
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>README</h1><a href="README.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>README File Reference</h1>
<p>
<a href="README-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
-<h1>alloc.h</h1><a href="alloc_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a><a class="code" href="alloc_8h.html#a7">00001</a> <span class="keyword">enum</span> <a class="code" href="alloc_8h.html#a7">errorcode</a> { <a class="code" href="alloc_8h.html#a7a0">ERR_NONE</a>=0, <a class="code" href="alloc_8h.html#a7a1">ERR_NO_MEM</a> };
-00002 <span class="keyword">enum</span> <a class="code" href="alloc_8h.html#a7">errorcode</a> _stp_error = ERR_NONE;
+<!-- Generated by Doxygen 1.4.1 -->
+<h1>alloc.h</h1><a href="alloc_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a><a class="code" href="alloc_8h.html#a8">00001</a> <span class="keyword">enum</span> <a class="code" href="alloc_8h.html#a8">errorcode</a> { <a class="code" href="alloc_8h.html#a8a1">ERR_NONE</a>=0, <a class="code" href="alloc_8h.html#a8a2">ERR_NO_MEM</a> };
+<a name="l00002"></a><a class="code" href="alloc_8h.html#a0">00002</a> <span class="keyword">enum</span> <a class="code" href="alloc_8h.html#a8">errorcode</a> <a class="code" href="alloc_8h.html#a0">_stp_error</a> = <a class="code" href="alloc_8h.html#a8a1">ERR_NONE</a>;
00003
-<a name="l00012"></a><a class="code" href="alloc_8h.html#a2">00012</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> *<a class="code" href="alloc_8h.html#a2">_stp_alloc</a>(size_t len)
+<a name="l00012"></a><a class="code" href="alloc_8h.html#a3">00012</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> *<a class="code" href="alloc_8h.html#a3">_stp_alloc</a>(size_t len)
00013 {
00014 <span class="keywordtype">void</span> *ptr = kmalloc(len, GFP_ATOMIC);
00015 <span class="keywordflow">if</span> (ptr == NULL)
-00016 _stp_error = ERR_NO_MEM;
+00016 <a class="code" href="alloc_8h.html#a0">_stp_error</a> = <a class="code" href="alloc_8h.html#a8a2">ERR_NO_MEM</a>;
00017 <span class="keywordflow">return</span> ptr;
00018 }
00019
-<a name="l00028"></a><a class="code" href="alloc_8h.html#a3">00028</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> *<a class="code" href="alloc_8h.html#a3">_stp_calloc</a>(size_t len)
+<a name="l00028"></a><a class="code" href="alloc_8h.html#a4">00028</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> *<a class="code" href="alloc_8h.html#a4">_stp_calloc</a>(size_t len)
00029 {
-00030 <span class="keywordtype">void</span> *ptr = <a class="code" href="alloc_8h.html#a2">_stp_alloc</a>(len);
+00030 <span class="keywordtype">void</span> *ptr = <a class="code" href="alloc_8h.html#a3">_stp_alloc</a>(len);
00031 <span class="keywordflow">if</span> (ptr)
00032 memset(ptr, 0, len);
00033 <span class="keywordflow">return</span> ptr;
00034 }
00035
-<a name="l00043"></a><a class="code" href="alloc_8h.html#a4">00043</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> *<a class="code" href="alloc_8h.html#a4">_stp_valloc</a>(size_t len)
+<a name="l00043"></a><a class="code" href="alloc_8h.html#a5">00043</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> *<a class="code" href="alloc_8h.html#a5">_stp_valloc</a>(size_t len)
00044 {
00045 <span class="keywordtype">void</span> *ptr = vmalloc(len);
00046 <span class="keywordflow">if</span> (ptr)
00047 memset(ptr, 0, len);
00048 <span class="keywordflow">else</span>
-00049 _stp_error = ERR_NO_MEM;
+00049 <a class="code" href="alloc_8h.html#a0">_stp_error</a> = <a class="code" href="alloc_8h.html#a8a2">ERR_NO_MEM</a>;
00050 <span class="keywordflow">return</span> ptr;
00051 }
00052
-<a name="l00057"></a><a class="code" href="alloc_8h.html#a5">00057</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="alloc_8h.html#a5">_stp_free</a>(<span class="keywordtype">void</span> *ptr)
+<a name="l00057"></a><a class="code" href="alloc_8h.html#a6">00057</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="alloc_8h.html#a6">_stp_free</a>(<span class="keywordtype">void</span> *ptr)
00058 {
00059 <span class="keywordflow">if</span> (ptr)
00060 kfree(ptr);
00061 }
00062
-<a name="l00067"></a><a class="code" href="alloc_8h.html#a6">00067</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="alloc_8h.html#a6">_stp_vfree</a>(<span class="keywordtype">void</span> *ptr)
+<a name="l00067"></a><a class="code" href="alloc_8h.html#a7">00067</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="alloc_8h.html#a7">_stp_vfree</a>(<span class="keywordtype">void</span> *ptr)
00068 {
00069 <span class="keywordflow">if</span> (ptr)
00070 vfree(ptr);
00071 }
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>alloc.h File Reference</h1>
<p>
<a href="alloc_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a7">errorcode</a> { <a class="el" href="alloc_8h.html#a7a0">ERR_NONE</a> = 0,
-<a class="el" href="alloc_8h.html#a7a1">ERR_NO_MEM</a>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a8">errorcode</a> { <a class="el" href="alloc_8h.html#a8a1">ERR_NONE</a> = 0,
+<a class="el" href="alloc_8h.html#a8a2">ERR_NO_MEM</a>
}</td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a2">_stp_alloc</a> (size_t len)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a3">_stp_alloc</a> (size_t len)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Allocates memory within a probe. <a href="#a2"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a3">_stp_calloc</a> (size_t len)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Allocates memory within a probe. <a href="#a3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a4">_stp_calloc</a> (size_t len)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Allocates and clears memory within a probe. <a href="#a3"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a4">_stp_valloc</a> (size_t len)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Allocates and clears memory within a probe. <a href="#a4"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a5">_stp_valloc</a> (size_t len)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Allocates and clears memory outside a probe. <a href="#a4"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a5">_stp_free</a> (void *ptr)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Allocates and clears memory outside a probe. <a href="#a5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a6">_stp_free</a> (void *ptr)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees memory allocated by _stp_alloc or _stp_calloc. <a href="#a5"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a6">_stp_vfree</a> (void *ptr)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees memory allocated by _stp_alloc or _stp_calloc. <a href="#a6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a7">_stp_vfree</a> (void *ptr)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees memory allocated by _stp_valloc. <a href="#a7"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum <a class="el" href="alloc_8h.html#a8">errorcode</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a0">_stp_error</a> = ERR_NONE</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees memory allocated by _stp_valloc. <a href="#a6"></a><br></td></tr>
</table>
<hr><h2>Enumeration Type Documentation</h2>
-<a class="anchor" name="a7" doxytag="alloc.h::errorcode"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="a8" doxytag="alloc.h::errorcode"></a><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">enum <a class="el" href="alloc_8h.html#a7">errorcode</a> </td>
+ <td class="md" nowrap valign="top">enum <a class="el" href="alloc_8h.html#a8">errorcode</a> </td>
</tr>
</table>
</td>
<p>
<dl compact><dt><b>Enumeration values: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" name="a7a0" doxytag="ERR_NONE"></a>ERR_NONE</em> </td><td>
+<tr><td valign="top"><em><a class="anchor" name="a8a1" doxytag="ERR_NONE"></a>ERR_NONE</em> </td><td>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" name="a7a1" doxytag="ERR_NO_MEM"></a>ERR_NO_MEM</em> </td><td>
+<tr><td valign="top"><em><a class="anchor" name="a8a2" doxytag="ERR_NO_MEM"></a>ERR_NO_MEM</em> </td><td>
</td></tr>
</table>
</dl>
</tr>
</table>
<hr><h2>Function Documentation</h2>
-<a class="anchor" name="a2" doxytag="alloc.h::_stp_alloc"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="a3" doxytag="alloc.h::_stp_alloc"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="alloc_8h-source.html#l00012">12</a> of file <a class="el" href="alloc_8h-source.html">alloc.h</a>.
<p>
-Referenced by <a class="el" href="alloc_8h-source.html#l00028">_stp_calloc()</a>, and <a class="el" href="map_8c-source.html#l00548">_stp_map_set_str()</a>. </td>
+References <a class="el" href="alloc_8h-source.html#l00002">_stp_error</a>, and <a class="el" href="alloc_8h.html#a8a2">ERR_NO_MEM</a>.
+<p>
+Referenced by <a class="el" href="alloc_8h-source.html#l00028">_stp_calloc()</a>, and <a class="el" href="map_8c-source.html#l00571">_stp_map_set_str()</a>. </td>
</tr>
</table>
-<a class="anchor" name="a3" doxytag="alloc.h::_stp_calloc"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="a4" doxytag="alloc.h::_stp_calloc"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
References <a class="el" href="alloc_8h-source.html#l00012">_stp_alloc()</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00471">_stp_map_set_int64()</a>, <a class="el" href="map_8c-source.html#l00633">_stp_map_set_stat()</a>, and <a class="el" href="map_8c-source.html#l00548">_stp_map_set_str()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00656">_stp_map_set_stat()</a>, and <a class="el" href="map_8c-source.html#l00571">_stp_map_set_str()</a>. </td>
</tr>
</table>
-<a class="anchor" name="a5" doxytag="alloc.h::_stp_free"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="a6" doxytag="alloc.h::_stp_free"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="alloc_8h-source.html#l00057">57</a> of file <a class="el" href="alloc_8h-source.html">alloc.h</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00765">_stp_list_clear()</a>, <a class="el" href="map_8c-source.html#l00104">_stp_map_key_del()</a>, and <a class="el" href="map_8c-source.html#l00548">_stp_map_set_str()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00788">_stp_list_clear()</a>, <a class="el" href="map_8c-source.html#l00104">_stp_map_key_del()</a>, and <a class="el" href="map_8c-source.html#l00571">_stp_map_set_str()</a>. </td>
</tr>
</table>
-<a class="anchor" name="a4" doxytag="alloc.h::_stp_valloc"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="a5" doxytag="alloc.h::_stp_valloc"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="alloc_8h-source.html#l00043">43</a> of file <a class="el" href="alloc_8h-source.html">alloc.h</a>.
<p>
+References <a class="el" href="alloc_8h-source.html#l00002">_stp_error</a>, and <a class="el" href="alloc_8h.html#a8a2">ERR_NO_MEM</a>.
+<p>
Referenced by <a class="el" href="map_8c-source.html#l00043">_stp_map_new()</a>. </td>
</tr>
</table>
-<a class="anchor" name="a6" doxytag="alloc.h::_stp_vfree"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="a7" doxytag="alloc.h::_stp_vfree"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
Referenced by <a class="el" href="map_8c-source.html#l00190">_stp_map_del()</a>. </td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr><h2>Variable Documentation</h2>
+<a class="anchor" name="a0" doxytag="alloc.h::_stp_error"></a><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">enum <a class="el" href="alloc_8h.html#a8">errorcode</a> <a class="el" href="alloc_8h.html#a0">_stp_error</a> = ERR_NONE </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="alloc_8h-source.html#l00002">2</a> of file <a class="el" href="alloc_8h-source.html">alloc.h</a>.
+<p>
+Referenced by <a class="el" href="alloc_8h-source.html#l00012">_stp_alloc()</a>, and <a class="el" href="alloc_8h-source.html#l00043">_stp_valloc()</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>SystemTap Data Structures</h1>Here are the data structures with brief descriptions:<table>
<tr><td class="indexkey"><a class="el" href="unionkey__data.html">key_data</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="structmap__node.html">map_node</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="structmap__root.html">map_root</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="structstat.html">stat</a></td><td class="indexvalue"></td></tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1><a class="anchor" name="bug">Bug List</a></h1><a class="anchor" name="_bug000001"></a> <dl>
-<dt>Global <a class="el" href="alloc_8h.html#a2">_stp_alloc</a> (size_t len) </dt>
+<dt>Global <a class="el" href="alloc_8h.html#a3">_stp_alloc</a> (size_t len) </dt>
<dd>Currently uses kmalloc (GFP_ATOMIC). </dd>
</dl>
<p>
<a class="anchor" name="_bug000002"></a> <dl>
-<dt>Global <a class="el" href="alloc_8h.html#a3">_stp_calloc</a> (size_t len) </dt>
+<dt>Global <a class="el" href="alloc_8h.html#a4">_stp_calloc</a> (size_t len) </dt>
<dd>Currently uses kmalloc (GFP_ATOMIC). </dd>
</dl>
<p>
<a class="anchor" name="_bug000003"></a> <dl>
-<dt>Global <a class="el" href="io_8c.html#a0">dlog</a> (const char *fmt,...) </dt>
+<dt>Global <a class="el" href="io_8c.html#a4">dlog</a> (const char *fmt,...) </dt>
<dd>Lines are limited in length by printk buffer.</dd>
</dl>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>copy.c</h1><a href="copy_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 <span class="keywordtype">long</span> <a class="code" href="copy_8c.html#a0">_stp_strncpy_from_user</a>(<span class="keywordtype">char</span> *dst, <span class="keyword">const</span> <span class="keywordtype">char</span> __user *src, <span class="keywordtype">long</span> count);
00002 <span class="comment">//static long __stp_strncpy_from_user(char *dst, const char __user *src, long count);</span>
00003
00130
00131 len = <a class="code" href="copy_8c.html#a0">_stp_strncpy_from_user</a>(str, vstr, 128);
00132 str[len] = 0;
-00133 <a class="code" href="map_8c.html#a25">_stp_list_add_str</a> (list, str);
+00133 <a class="code" href="map_8c.html#a27">_stp_list_add_str</a> (list, str);
00134 argv++;
00135 }
-00136 <span class="keywordflow">return</span> list-><a class="code" href="structmap__root.html#o1">num</a>;
+00136 <span class="keywordflow">return</span> list-><a class="code" href="structmap__root.html#o2">num</a>;
00137 }
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>copy.c File Reference</h1>
<p>
<a href="copy_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="a2" doxytag="copy.c::_stp_copy_argv_from_user"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="copy_8c-source.html#l00115">115</a> of file <a class="el" href="copy_8c-source.html">copy.c</a>.
<p>
-References <a class="el" href="map_8c-source.html#l00805">_stp_list_add_str()</a>, <a class="el" href="copy_8c-source.html#l00079">_stp_strncpy_from_user()</a>, <a class="el" href="map_8h-source.html#l00084">MAP</a>, and <a class="el" href="map_8h-source.html#l00053">map_root::num</a>. </td>
+References <a class="el" href="map_8c-source.html#l00828">_stp_list_add_str()</a>, <a class="el" href="copy_8c-source.html#l00079">_stp_strncpy_from_user()</a>, and <a class="el" href="map_8h-source.html#l00053">map_root::num</a>. </td>
</tr>
</table>
<a class="anchor" name="a1" doxytag="copy.c::_stp_copy_from_user"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
</tr>
</table>
<a class="anchor" name="a0" doxytag="copy.c::_stp_strncpy_from_user"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
Referenced by <a class="el" href="copy_8c-source.html#l00115">_stp_copy_argv_from_user()</a>. </td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
font-family: Geneva, Arial, Helvetica, sans-serif;
}
+BODY,TD {
+ font-size: 90%;
+}
H1 {
text-align: center;
+ font-size: 160%;
+}
+H2 {
+ font-size: 120%;
+}
+H3 {
+ font-size: 110%;
}
CAPTION { font-weight: bold }
DIV.qindex {
}
DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
TD.md { background-color: #F4F4FB; font-weight: bold; }
+TD.mdPrefix {
+ background-color: #F4F4FB;
+ color: #606060;
+ font-size: 80%;
+}
TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; }
TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; }
DIV.groupHeader {
margin-bottom: 6px;
font-weight: bold;
}
-DIV.groupText { margin-left: 16px; font-style: italic; font-size: 14px }
+DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }
BODY {
background: white;
color: black;
}
.mdescLeft {
padding: 0px 8px 4px 8px;
- font-size: 12px;
+ font-size: 80%;
font-style: italic;
background-color: #FAFAFA;
border-top: 1px none #E0E0E0;
}
.mdescRight {
padding: 0px 8px 4px 8px;
- font-size: 12px;
+ font-size: 80%;
font-style: italic;
background-color: #FAFAFA;
border-top: 1px none #E0E0E0;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
- font-size: 12px;
+ font-size: 80%;
}
.memItemRight {
padding: 1px 8px 0px 8px;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
- font-size: 13px;
+ font-size: 80%;
}
.memTemplItemLeft {
padding: 1px 0px 0px 8px;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
- font-size: 12px;
+ font-size: 80%;
}
.memTemplItemRight {
padding: 1px 8px 0px 8px;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
- font-size: 13px;
+ font-size: 80%;
}
.memTemplParams {
padding: 1px 0px 0px 8px;
border-left-style: none;
color: #606060;
background-color: #FAFAFA;
- font-size: 12px;
+ font-size: 80%;
}
.search { color: #003399;
font-weight: bold;
a:visited {
color: #3D2185;
}
+.dirtab { padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #b0b0b0;
+}
+TH.dirtab { background: #eeeeff;
+ font-weight: bold;
+}
+HR { height: 1px;
+ border: none;
+ border-top: 1px solid black;
+}
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>SystemTap File List</h1>Here is a list of all files with brief descriptions:<table>
<tr><td class="indexkey"><a class="el" href="alloc_8h.html">alloc.h</a> <a href="alloc_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="copy_8c.html">copy.c</a> <a href="copy_8c-source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="io_8c.html">io.c</a> <a href="io_8c-source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="map_8c.html">map.c</a> <a href="map_8c-source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="map_8h.html">map.h</a> <a href="map_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="probes_8c.html">probes.c</a> <a href="probes_8c-source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="README.html">README</a> <a href="README-source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="runtime_8h.html">runtime.h</a> <a href="runtime_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="stack_8c.html">stack.c</a> <a href="stack_8c-source.html">[code]</a></td><td class="indexvalue"></td></tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<div class="qindex"><a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
<p>
Here is a list of all struct and union fields with links to the structures/unions they belong to:<ul>
<li>c_key1
+: <a class="el" href="structmap__root.html#o11">map_root</a><li>c_key1type
: <a class="el" href="structmap__root.html#o8">map_root</a><li>c_key2
+: <a class="el" href="structmap__root.html#o12">map_root</a><li>c_key2type
: <a class="el" href="structmap__root.html#o9">map_root</a><li>c_keyhead
-: <a class="el" href="structmap__root.html#o7">map_root</a><li>count
+: <a class="el" href="structmap__root.html#o10">map_root</a><li>count
: <a class="el" href="structstat.html#o0">stat</a><li>create
-: <a class="el" href="structmap__root.html#o6">map_root</a><li>hashes
-: <a class="el" href="structmap__root.html#o10">map_root</a><li>head
-: <a class="el" href="structmap__root.html#o3">map_root</a><li>histogram
+: <a class="el" href="structmap__root.html#o7">map_root</a><li>hashes
+: <a class="el" href="structmap__root.html#o13">map_root</a><li>head
+: <a class="el" href="structmap__root.html#o4">map_root</a><li>histogram
: <a class="el" href="structstat.html#o4">stat</a><li>hnode
: <a class="el" href="structmap__node.html#o1">map_node</a><li>key
-: <a class="el" href="structmap__root.html#o5">map_root</a><li>key1
-: <a class="el" href="structmap__node.html#o2">map_node</a><li>key2
-: <a class="el" href="structmap__node.html#o3">map_node</a><li>lnode
+: <a class="el" href="structmap__root.html#o6">map_root</a><li>key1
+: <a class="el" href="structmap__node.html#o2">map_node</a><li>key1type
+: <a class="el" href="structmap__node.html#o4">map_node</a><li>key2
+: <a class="el" href="structmap__node.html#o3">map_node</a><li>key2type
+: <a class="el" href="structmap__node.html#o5">map_node</a><li>lnode
: <a class="el" href="structmap__node.html#o0">map_node</a><li>max
: <a class="el" href="structstat.html#o3">stat</a><li>maxnum
-: <a class="el" href="structmap__root.html#o0">map_root</a><li>membuf
-: <a class="el" href="structmap__root.html#o11">map_root</a><li>min
+: <a class="el" href="structmap__root.html#o1">map_root</a><li>membuf
+: <a class="el" href="structmap__root.html#o14">map_root</a><li>min
: <a class="el" href="structstat.html#o2">stat</a><li>n
: <a class="el" href="structmap__node__stat.html#o0">map_node_stat</a>, <a class="el" href="structmap__node__str.html#o0">map_node_str</a>, <a class="el" href="structmap__node__int64.html#o0">map_node_int64</a><li>no_wrap
-: <a class="el" href="structmap__root.html#o2">map_root</a><li>num
-: <a class="el" href="structmap__root.html#o1">map_root</a><li>pool
-: <a class="el" href="structmap__root.html#o4">map_root</a><li>stats
+: <a class="el" href="structmap__root.html#o3">map_root</a><li>num
+: <a class="el" href="structmap__root.html#o2">map_root</a><li>pool
+: <a class="el" href="structmap__root.html#o5">map_root</a><li>stats
: <a class="el" href="structmap__node__stat.html#o1">map_node_stat</a><li>str
: <a class="el" href="structmap__node__str.html#o1">map_node_str</a>, <a class="el" href="unionkey__data.html#o1">key_data</a><li>sum
-: <a class="el" href="structstat.html#o1">stat</a><li>val
+: <a class="el" href="structstat.html#o1">stat</a><li>type
+: <a class="el" href="structmap__root.html#o0">map_root</a><li>val
: <a class="el" href="structmap__node__int64.html#o1">map_node_int64</a>, <a class="el" href="unionkey__data.html#o0">key_data</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_vars.html">Variables</a></div>
<p>
<ul>
<li>c_key1
+: <a class="el" href="structmap__root.html#o11">map_root</a><li>c_key1type
: <a class="el" href="structmap__root.html#o8">map_root</a><li>c_key2
+: <a class="el" href="structmap__root.html#o12">map_root</a><li>c_key2type
: <a class="el" href="structmap__root.html#o9">map_root</a><li>c_keyhead
-: <a class="el" href="structmap__root.html#o7">map_root</a><li>count
+: <a class="el" href="structmap__root.html#o10">map_root</a><li>count
: <a class="el" href="structstat.html#o0">stat</a><li>create
-: <a class="el" href="structmap__root.html#o6">map_root</a><li>hashes
-: <a class="el" href="structmap__root.html#o10">map_root</a><li>head
-: <a class="el" href="structmap__root.html#o3">map_root</a><li>histogram
+: <a class="el" href="structmap__root.html#o7">map_root</a><li>hashes
+: <a class="el" href="structmap__root.html#o13">map_root</a><li>head
+: <a class="el" href="structmap__root.html#o4">map_root</a><li>histogram
: <a class="el" href="structstat.html#o4">stat</a><li>hnode
: <a class="el" href="structmap__node.html#o1">map_node</a><li>key
-: <a class="el" href="structmap__root.html#o5">map_root</a><li>key1
-: <a class="el" href="structmap__node.html#o2">map_node</a><li>key2
-: <a class="el" href="structmap__node.html#o3">map_node</a><li>lnode
+: <a class="el" href="structmap__root.html#o6">map_root</a><li>key1
+: <a class="el" href="structmap__node.html#o2">map_node</a><li>key1type
+: <a class="el" href="structmap__node.html#o4">map_node</a><li>key2
+: <a class="el" href="structmap__node.html#o3">map_node</a><li>key2type
+: <a class="el" href="structmap__node.html#o5">map_node</a><li>lnode
: <a class="el" href="structmap__node.html#o0">map_node</a><li>max
: <a class="el" href="structstat.html#o3">stat</a><li>maxnum
-: <a class="el" href="structmap__root.html#o0">map_root</a><li>membuf
-: <a class="el" href="structmap__root.html#o11">map_root</a><li>min
+: <a class="el" href="structmap__root.html#o1">map_root</a><li>membuf
+: <a class="el" href="structmap__root.html#o14">map_root</a><li>min
: <a class="el" href="structstat.html#o2">stat</a><li>n
: <a class="el" href="structmap__node__stat.html#o0">map_node_stat</a>, <a class="el" href="structmap__node__str.html#o0">map_node_str</a>, <a class="el" href="structmap__node__int64.html#o0">map_node_int64</a><li>no_wrap
-: <a class="el" href="structmap__root.html#o2">map_root</a><li>num
-: <a class="el" href="structmap__root.html#o1">map_root</a><li>pool
-: <a class="el" href="structmap__root.html#o4">map_root</a><li>stats
+: <a class="el" href="structmap__root.html#o3">map_root</a><li>num
+: <a class="el" href="structmap__root.html#o2">map_root</a><li>pool
+: <a class="el" href="structmap__root.html#o5">map_root</a><li>stats
: <a class="el" href="structmap__node__stat.html#o1">map_node_stat</a><li>str
: <a class="el" href="structmap__node__str.html#o1">map_node_str</a>, <a class="el" href="unionkey__data.html#o1">key_data</a><li>sum
-: <a class="el" href="structstat.html#o1">stat</a><li>val
+: <a class="el" href="structstat.html#o1">stat</a><li>type
+: <a class="el" href="structmap__root.html#o0">map_root</a><li>val
: <a class="el" href="structmap__node__int64.html#o1">map_node_int64</a>, <a class="el" href="unionkey__data.html#o0">key_data</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<div class="qindex"><a class="qindexHL" href="globals.html">All</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_type.html">Typedefs</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration values</a> | <a class="qindex" href="globals_defs.html">Defines</a></div>
-<div class="qindex"><a class="qindex" href="#index__">_</a> | <a class="qindex" href="#index_d">d</a> | <a class="qindex" href="#index_e">e</a> | <a class="qindex" href="#index_f">f</a> | <a class="qindex" href="#index_i">i</a> | <a class="qindex" href="#index_k">k</a> | <a class="qindex" href="#index_l">l</a> | <a class="qindex" href="#index_m">m</a> | <a class="qindex" href="#index_n">n</a> | <a class="qindex" href="#index_p">p</a> | <a class="qindex" href="#index_s">s</a> | <a class="qindex" href="#index_v">v</a></div>
+<div class="qindex"><a class="qindex" href="#index__">_</a> | <a class="qindex" href="#index_c">c</a> | <a class="qindex" href="#index_d">d</a> | <a class="qindex" href="#index_e">e</a> | <a class="qindex" href="#index_f">f</a> | <a class="qindex" href="#index_i">i</a> | <a class="qindex" href="#index_k">k</a> | <a class="qindex" href="#index_l">l</a> | <a class="qindex" href="#index_m">m</a> | <a class="qindex" href="#index_n">n</a> | <a class="qindex" href="#index_p">p</a> | <a class="qindex" href="#index_s">s</a> | <a class="qindex" href="#index_v">v</a></div>
<p>
<p>
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:<h3><a class="anchor" name="index__">- _ -</a></h3><ul>
-<li>_stp_alloc()
-: <a class="el" href="alloc_8h.html#a2">alloc.h</a><li>_stp_calloc()
-: <a class="el" href="alloc_8h.html#a3">alloc.h</a><li>_stp_copy_argv_from_user()
+<li>__kernel_text_address()
+: <a class="el" href="stack_8c.html#a1">stack.c</a><li>_stp_alloc()
+: <a class="el" href="alloc_8h.html#a3">alloc.h</a><li>_stp_calloc()
+: <a class="el" href="alloc_8h.html#a4">alloc.h</a><li>_stp_copy_argv_from_user()
: <a class="el" href="copy_8c.html#a2">copy.c</a><li>_stp_copy_from_user()
-: <a class="el" href="copy_8c.html#a1">copy.c</a><li>_stp_free()
-: <a class="el" href="alloc_8h.html#a5">alloc.h</a><li>_stp_list_add
+: <a class="el" href="copy_8c.html#a1">copy.c</a><li>_stp_error
+: <a class="el" href="alloc_8h.html#a0">alloc.h</a><li>_stp_free()
+: <a class="el" href="alloc_8h.html#a6">alloc.h</a><li>_stp_list_add
: <a class="el" href="map_8h.html#a7">map.h</a><li>_stp_list_add_int64()
-: <a class="el" href="map_8c.html#a26">map.c</a><li>_stp_list_add_str()
-: <a class="el" href="map_8c.html#a25">map.c</a><li>_stp_list_clear()
-: <a class="el" href="map_8c.html#a24">map.c</a><li>_stp_list_new()
-: <a class="el" href="map_8c.html#a23">map.c</a><li>_stp_list_size()
-: <a class="el" href="map_8c.html#a27">map.c</a><li>_stp_map_del()
+: <a class="el" href="map_8c.html#a28">map.c</a><li>_stp_list_add_str()
+: <a class="el" href="map_8c.html#a27">map.c</a><li>_stp_list_clear()
+: <a class="el" href="map_8c.html#a26">map.c</a><li>_stp_list_new()
+: <a class="el" href="map_8c.html#a25">map.c</a><li>_stp_list_size()
+: <a class="el" href="map_8c.html#a29">map.c</a><li>_stp_map_add_int64()
+: <a class="el" href="map_8c.html#a18">map.c</a><li>_stp_map_del()
: <a class="el" href="map_8c.html#a8">map.c</a><li>_stp_map_get_int64()
-: <a class="el" href="map_8c.html#a17">map.c</a><li>_stp_map_get_stat()
-: <a class="el" href="map_8c.html#a21">map.c</a><li>_stp_map_get_str()
-: <a class="el" href="map_8c.html#a19">map.c</a><li>_stp_map_iter()
+: <a class="el" href="map_8c.html#a19">map.c</a><li>_stp_map_get_stat()
+: <a class="el" href="map_8c.html#a23">map.c</a><li>_stp_map_get_str()
+: <a class="el" href="map_8c.html#a21">map.c</a><li>_stp_map_iter()
: <a class="el" href="map_8c.html#a7">map.c</a><li>_stp_map_key
: <a class="el" href="map_8h.html#a5">map.h</a><li>_stp_map_key2
: <a class="el" href="map_8h.html#a4">map.h</a><li>_stp_map_key_del()
: <a class="el" href="map_8c.html#a10">map.c</a><li>_stp_map_new()
: <a class="el" href="map_8c.html#a3">map.c</a><li>_stp_map_set
: <a class="el" href="map_8h.html#a6">map.h</a><li>_stp_map_set_int64()
-: <a class="el" href="map_8c.html#a16">map.c</a><li>_stp_map_set_stat()
-: <a class="el" href="map_8c.html#a20">map.c</a><li>_stp_map_set_str()
-: <a class="el" href="map_8c.html#a18">map.c</a><li>_stp_map_start()
+: <a class="el" href="map_8c.html#a17">map.c</a><li>_stp_map_set_stat()
+: <a class="el" href="map_8c.html#a22">map.c</a><li>_stp_map_set_str()
+: <a class="el" href="map_8c.html#a20">map.c</a><li>_stp_map_start()
: <a class="el" href="map_8c.html#a6">map.c</a><li>_stp_map_stat_add()
-: <a class="el" href="map_8c.html#a22">map.c</a><li>_stp_strncpy_from_user()
-: <a class="el" href="copy_8c.html#a0">copy.c</a><li>_stp_valloc()
-: <a class="el" href="alloc_8h.html#a4">alloc.h</a><li>_stp_vfree()
-: <a class="el" href="alloc_8h.html#a6">alloc.h</a></ul>
+: <a class="el" href="map_8c.html#a24">map.c</a><li>_stp_print_buf()
+: <a class="el" href="io_8c.html#a5">io.c</a><li>_stp_print_buf_init()
+: <a class="el" href="io_8c.html#a6">io.c</a><li>_stp_print_symbol()
+: <a class="el" href="io_8c.html#a7">io.c</a><li>_stp_register_jprobes()
+: <a class="el" href="probes_8c.html#a2">probes.c</a><li>_stp_register_kprobes()
+: <a class="el" href="probes_8c.html#a4">probes.c</a><li>_stp_strncpy_from_user()
+: <a class="el" href="copy_8c.html#a0">copy.c</a><li>_stp_unregister_jprobes()
+: <a class="el" href="probes_8c.html#a1">probes.c</a><li>_stp_unregister_kprobes()
+: <a class="el" href="probes_8c.html#a3">probes.c</a><li>_stp_valloc()
+: <a class="el" href="alloc_8h.html#a5">alloc.h</a><li>_stp_vfree()
+: <a class="el" href="alloc_8h.html#a7">alloc.h</a></ul>
+<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
+<li>cur_ret_addr()
+: <a class="el" href="io_8c.html#a8">io.c</a></ul>
<h3><a class="anchor" name="index_d">- d -</a></h3><ul>
<li>dbug
: <a class="el" href="runtime_8h.html#a0">runtime.h</a><li>dlog()
-: <a class="el" href="io_8c.html#a0">io.c</a></ul>
+: <a class="el" href="io_8c.html#a4">io.c</a><li>dump_stack()
+: <a class="el" href="stack_8c.html#a4">stack.c</a></ul>
<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
<li>END
: <a class="el" href="map_8h.html#a19a17">map.h</a><li>ERR_NO_MEM
-: <a class="el" href="alloc_8h.html#a7a1">alloc.h</a><li>ERR_NONE
-: <a class="el" href="alloc_8h.html#a7a0">alloc.h</a><li>errorcode
-: <a class="el" href="alloc_8h.html#a7">alloc.h</a></ul>
+: <a class="el" href="alloc_8h.html#a8a2">alloc.h</a><li>ERR_NONE
+: <a class="el" href="alloc_8h.html#a8a1">alloc.h</a><li>errorcode
+: <a class="el" href="alloc_8h.html#a8">alloc.h</a></ul>
<h3><a class="anchor" name="index_f">- f -</a></h3><ul>
<li>foreach
: <a class="el" href="map_8h.html#a8">map.h</a></ul>
<li>packed
: <a class="el" href="map_8h.html#a9">map.h</a></ul>
<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
-<li>STAT
-: <a class="el" href="map_8h.html#a19a15">map.h</a><li>STR
+<li>show_trace()
+: <a class="el" href="stack_8c.html#a3">stack.c</a><li>STAT
+: <a class="el" href="map_8h.html#a19a15">map.h</a><li>STP_BUF_LEN
+: <a class="el" href="io_8c.html#a0">io.c</a><li>STR
: <a class="el" href="map_8h.html#a18a13">map.h</a><li>STRING
: <a class="el" href="map_8h.html#a19a16">map.h</a></ul>
<h3><a class="anchor" name="index_v">- v -</a></h3><ul>
<li>valtype
: <a class="el" href="map_8h.html#a19">map.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_type.html">Typedefs</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration values</a> | <a class="qindexHL" href="globals_defs.html">Defines</a></div>
<p>
: <a class="el" href="map_8h.html#a2">map.h</a><li>key1str
: <a class="el" href="map_8h.html#a0">map.h</a><li>key2int
: <a class="el" href="map_8h.html#a3">map.h</a><li>key2str
-: <a class="el" href="map_8h.html#a1">map.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+: <a class="el" href="map_8h.html#a1">map.h</a><li>STP_BUF_LEN
+: <a class="el" href="io_8c.html#a0">io.c</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_type.html">Typedefs</a> | <a class="qindexHL" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration values</a> | <a class="qindex" href="globals_defs.html">Defines</a></div>
<p>
<ul>
<li>errorcode
-: <a class="el" href="alloc_8h.html#a7">alloc.h</a><li>keytype
+: <a class="el" href="alloc_8h.html#a8">alloc.h</a><li>keytype
: <a class="el" href="map_8h.html#a18">map.h</a><li>valtype
: <a class="el" href="map_8h.html#a19">map.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_type.html">Typedefs</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindexHL" href="globals_eval.html">Enumeration values</a> | <a class="qindex" href="globals_defs.html">Defines</a></div>
<p>
<ul>
<li>END
: <a class="el" href="map_8h.html#a19a17">map.h</a><li>ERR_NO_MEM
-: <a class="el" href="alloc_8h.html#a7a1">alloc.h</a><li>ERR_NONE
-: <a class="el" href="alloc_8h.html#a7a0">alloc.h</a><li>INT64
+: <a class="el" href="alloc_8h.html#a8a2">alloc.h</a><li>ERR_NONE
+: <a class="el" href="alloc_8h.html#a8a1">alloc.h</a><li>INT64
: <a class="el" href="map_8h.html#a19a14">map.h</a><li>LONG
: <a class="el" href="map_8h.html#a18a12">map.h</a><li>NONE
: <a class="el" href="map_8h.html#a18a11">map.h</a><li>STAT
: <a class="el" href="map_8h.html#a19a15">map.h</a><li>STR
: <a class="el" href="map_8h.html#a18a13">map.h</a><li>STRING
: <a class="el" href="map_8h.html#a19a16">map.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindexHL" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_type.html">Typedefs</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration values</a> | <a class="qindex" href="globals_defs.html">Defines</a></div>
-<div class="qindex"><a class="qindex" href="#index__">_</a> | <a class="qindex" href="#index_d">d</a></div>
+<div class="qindex"><a class="qindex" href="#index__">_</a> | <a class="qindex" href="#index_c">c</a> | <a class="qindex" href="#index_d">d</a> | <a class="qindex" href="#index_s">s</a></div>
<p>
<p>
<h3><a class="anchor" name="index__">- _ -</a></h3><ul>
-<li>_stp_alloc()
-: <a class="el" href="alloc_8h.html#a2">alloc.h</a><li>_stp_calloc()
-: <a class="el" href="alloc_8h.html#a3">alloc.h</a><li>_stp_copy_argv_from_user()
+<li>__kernel_text_address()
+: <a class="el" href="stack_8c.html#a1">stack.c</a><li>_stp_alloc()
+: <a class="el" href="alloc_8h.html#a3">alloc.h</a><li>_stp_calloc()
+: <a class="el" href="alloc_8h.html#a4">alloc.h</a><li>_stp_copy_argv_from_user()
: <a class="el" href="copy_8c.html#a2">copy.c</a><li>_stp_copy_from_user()
: <a class="el" href="copy_8c.html#a1">copy.c</a><li>_stp_free()
-: <a class="el" href="alloc_8h.html#a5">alloc.h</a><li>_stp_list_add_int64()
-: <a class="el" href="map_8c.html#a26">map.c</a><li>_stp_list_add_str()
-: <a class="el" href="map_8c.html#a25">map.c</a><li>_stp_list_clear()
-: <a class="el" href="map_8c.html#a24">map.c</a><li>_stp_list_new()
-: <a class="el" href="map_8c.html#a23">map.c</a><li>_stp_list_size()
-: <a class="el" href="map_8c.html#a27">map.c</a><li>_stp_map_del()
+: <a class="el" href="alloc_8h.html#a6">alloc.h</a><li>_stp_list_add_int64()
+: <a class="el" href="map_8c.html#a28">map.c</a><li>_stp_list_add_str()
+: <a class="el" href="map_8c.html#a27">map.c</a><li>_stp_list_clear()
+: <a class="el" href="map_8c.html#a26">map.c</a><li>_stp_list_new()
+: <a class="el" href="map_8c.html#a25">map.c</a><li>_stp_list_size()
+: <a class="el" href="map_8c.html#a29">map.c</a><li>_stp_map_add_int64()
+: <a class="el" href="map_8c.html#a18">map.c</a><li>_stp_map_del()
: <a class="el" href="map_8c.html#a8">map.c</a><li>_stp_map_get_int64()
-: <a class="el" href="map_8c.html#a17">map.c</a><li>_stp_map_get_stat()
-: <a class="el" href="map_8c.html#a21">map.c</a><li>_stp_map_get_str()
-: <a class="el" href="map_8c.html#a19">map.c</a><li>_stp_map_iter()
+: <a class="el" href="map_8c.html#a19">map.c</a><li>_stp_map_get_stat()
+: <a class="el" href="map_8c.html#a23">map.c</a><li>_stp_map_get_str()
+: <a class="el" href="map_8c.html#a21">map.c</a><li>_stp_map_iter()
: <a class="el" href="map_8c.html#a7">map.c</a><li>_stp_map_key_del()
: <a class="el" href="map_8c.html#a5">map.c</a><li>_stp_map_key_long()
: <a class="el" href="map_8c.html#a14">map.c</a><li>_stp_map_key_long_long()
: <a class="el" href="map_8c.html#a11">map.c</a><li>_stp_map_key_str_str()
: <a class="el" href="map_8c.html#a10">map.c</a><li>_stp_map_new()
: <a class="el" href="map_8c.html#a3">map.c</a><li>_stp_map_set_int64()
-: <a class="el" href="map_8c.html#a16">map.c</a><li>_stp_map_set_stat()
-: <a class="el" href="map_8c.html#a20">map.c</a><li>_stp_map_set_str()
-: <a class="el" href="map_8c.html#a18">map.c</a><li>_stp_map_start()
+: <a class="el" href="map_8c.html#a17">map.c</a><li>_stp_map_set_stat()
+: <a class="el" href="map_8c.html#a22">map.c</a><li>_stp_map_set_str()
+: <a class="el" href="map_8c.html#a20">map.c</a><li>_stp_map_start()
: <a class="el" href="map_8c.html#a6">map.c</a><li>_stp_map_stat_add()
-: <a class="el" href="map_8c.html#a22">map.c</a><li>_stp_strncpy_from_user()
-: <a class="el" href="copy_8c.html#a0">copy.c</a><li>_stp_valloc()
-: <a class="el" href="alloc_8h.html#a4">alloc.h</a><li>_stp_vfree()
-: <a class="el" href="alloc_8h.html#a6">alloc.h</a></ul>
+: <a class="el" href="map_8c.html#a24">map.c</a><li>_stp_print_buf()
+: <a class="el" href="io_8c.html#a5">io.c</a><li>_stp_print_buf_init()
+: <a class="el" href="io_8c.html#a6">io.c</a><li>_stp_print_symbol()
+: <a class="el" href="io_8c.html#a7">io.c</a><li>_stp_register_jprobes()
+: <a class="el" href="probes_8c.html#a2">probes.c</a><li>_stp_register_kprobes()
+: <a class="el" href="probes_8c.html#a4">probes.c</a><li>_stp_strncpy_from_user()
+: <a class="el" href="copy_8c.html#a0">copy.c</a><li>_stp_unregister_jprobes()
+: <a class="el" href="probes_8c.html#a1">probes.c</a><li>_stp_unregister_kprobes()
+: <a class="el" href="probes_8c.html#a3">probes.c</a><li>_stp_valloc()
+: <a class="el" href="alloc_8h.html#a5">alloc.h</a><li>_stp_vfree()
+: <a class="el" href="alloc_8h.html#a7">alloc.h</a></ul>
+<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
+<li>cur_ret_addr()
+: <a class="el" href="io_8c.html#a8">io.c</a></ul>
<h3><a class="anchor" name="index_d">- d -</a></h3><ul>
<li>dlog()
-: <a class="el" href="io_8c.html#a0">io.c</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+: <a class="el" href="io_8c.html#a4">io.c</a><li>dump_stack()
+: <a class="el" href="stack_8c.html#a4">stack.c</a></ul>
+<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
+<li>show_trace()
+: <a class="el" href="stack_8c.html#a3">stack.c</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_vars.html">Variables</a> | <a class="qindexHL" href="globals_type.html">Typedefs</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration values</a> | <a class="qindex" href="globals_defs.html">Defines</a></div>
<p>
<ul>
<li>MAP
: <a class="el" href="map_8h.html#a10">map.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindexHL" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_type.html">Typedefs</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration values</a> | <a class="qindex" href="globals_defs.html">Defines</a></div>
<p>
<ul>
-<li>packed
+<li>_stp_error
+: <a class="el" href="alloc_8h.html#a0">alloc.h</a><li>packed
: <a class="el" href="map_8h.html#a9">map.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>SystemTap Runtime Library </h1>
<p>
<h3 align="center">0.1 </h3><h2><a class="anchor" name="intro_sec">
map_set_int64 (mymap, 2000);
</pre></div><p>
All elements have a default value of 0 (or NULL). Elements are only saved to the map when their value is set to something nonzero. This means that querying for the existance of a key is inexpensive because no element is created, just a hash table lookup.<p>
-A list is a special map which has internally ascending long integer keys. Adding a value to a list does not require setting a key first. See <a class="el" href="map_8c.html#a25">_stp_list_add_str()</a> and <a class="el" href="map_8c.html#a26">_stp_list_add_int64()</a>.<h2><a class="anchor" name="status_sec">
+A list is a special map which has internally ascending long integer keys. Adding a value to a list does not require setting a key first. See <a class="el" href="map_8c.html#a27">_stp_list_add_str()</a> and <a class="el" href="map_8c.html#a28">_stp_list_add_int64()</a>.<h2><a class="anchor" name="status_sec">
Status</a></h2>
Maps are implemented and tested. Histograms are not yet finished.<p>
Copy_From_User functions are done.<p>
-If maps overflow or memory runs out for some reason, globals are set but nothing is done yet. I expect to implement a function to tell the system to either ignore it or unload the module and quit.<p>
-Working sample probe code using the runtime is in tests/test4_probe and tests/shellprobe.<p>
-<dl compact><dt><b><a class="el" href="todo.html#_todo000004">Todo:</a></b></dt><dd>The Runtime Library is not actually a library yet. It is just a collection of functions included in the probe boilerplate. </dd></dl>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+If maps overflow or memory runs out for some reason, globals are set but nothing is done yet. I expect to implement a function to tell the system to either ignore it or unload the module and quit.<h2><a class="anchor" name="probe_sec">
+Example Probes</a></h2>
+Working sample probe code using the runtime is in runtime/probes.<h2><a class="anchor" name="todo_sec">
+ToDo</a></h2>
+<a class="el" href="todo.html">Click Here for Complete List </a> The Runtime Library is not actually a library yet. It is just a collection of functions included in the probe boilerplate. Maybe it should stay that way to allow the translator more flexibility in what is included. <hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>io.c</h1><a href="io_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
-<a name="l00011"></a><a class="code" href="io_8c.html#a0">00011</a> <span class="keywordtype">void</span> <a class="code" href="io_8c.html#a0">dlog</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...)
+<a name="l00011"></a><a class="code" href="io_8c.html#a4">00011</a> <span class="keywordtype">void</span> <a class="code" href="io_8c.html#a4">dlog</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...)
00012 {
00013 va_list args;
00014 printk(<span class="stringliteral">"STP: "</span>);
00017 va_end(args);
00018 }
00019
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+00020
+00021 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * (*_stp_kallsyms_lookup)(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> addr,
+00022 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *symbolsize,
+00023 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *offset,
+00024 <span class="keywordtype">char</span> **modname, <span class="keywordtype">char</span> *namebuf)=(<span class="keywordtype">void</span> *)KALLSYMS_LOOKUP;
+00025
+00026
+<a name="l00027"></a><a class="code" href="io_8c.html#a0">00027</a> <span class="preprocessor">#define STP_BUF_LEN 8191</span>
+00028 <span class="preprocessor"></span>
+00029 <span class="comment">/* FIXME. These need to be per-cpu */</span>
+00030 <span class="keyword">static</span> <span class="keywordtype">char</span> _stp_pbuf[<a class="code" href="io_8c.html#a0">STP_BUF_LEN</a>+1];
+00031 <span class="keyword">static</span> <span class="keywordtype">int</span> _stp_pbuf_len = <a class="code" href="io_8c.html#a0">STP_BUF_LEN</a>;
+00032
+<a name="l00033"></a><a class="code" href="io_8c.html#a5">00033</a> <span class="keywordtype">void</span> <a class="code" href="io_8c.html#a5">_stp_print_buf</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...)
+00034 {
+00035 <span class="keywordtype">int</span> num;
+00036 va_list args;
+00037 <span class="keywordtype">char</span> *buf = _stp_pbuf + <a class="code" href="io_8c.html#a0">STP_BUF_LEN</a> - _stp_pbuf_len;
+00038 va_start(args, fmt);
+00039 num = vscnprintf(buf, _stp_pbuf_len, fmt, args);
+00040 va_end(args);
+00041 <span class="keywordflow">if</span> (num > 0)
+00042 _stp_pbuf_len -= num;
+00043 }
+00044
+<a name="l00045"></a><a class="code" href="io_8c.html#a6">00045</a> <span class="keywordtype">void</span> <a class="code" href="io_8c.html#a6">_stp_print_buf_init</a> (<span class="keywordtype">void</span>)
+00046 {
+00047 _stp_pbuf_len = <a class="code" href="io_8c.html#a0">STP_BUF_LEN</a>;
+00048 _stp_pbuf[0] = 0;
+00049 }
+00050
+<a name="l00051"></a><a class="code" href="io_8c.html#a7">00051</a> <span class="keywordtype">void</span> <a class="code" href="io_8c.html#a7">_stp_print_symbol</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> address)
+00052 {
+00053 <span class="keywordtype">char</span> *modname;
+00054 <span class="keyword">const</span> <span class="keywordtype">char</span> *name;
+00055 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> offset, size;
+00056 <span class="keywordtype">char</span> namebuf[KSYM_NAME_LEN+1];
+00057
+00058 name = _stp_kallsyms_lookup(address, &size, &offset, &modname, namebuf);
+00059
+00060 <span class="keywordflow">if</span> (!name)
+00061 <a class="code" href="io_8c.html#a5">_stp_print_buf</a>(<span class="stringliteral">"0x%lx"</span>, address);
+00062 <span class="keywordflow">else</span> {
+00063 <span class="keywordflow">if</span> (modname)
+00064 <a class="code" href="io_8c.html#a5">_stp_print_buf</a>(<span class="stringliteral">"%s+%#lx/%#lx [%s]"</span>, name, offset,
+00065 size, modname);
+00066 <span class="keywordflow">else</span>
+00067 <a class="code" href="io_8c.html#a5">_stp_print_buf</a>(<span class="stringliteral">"%s+%#lx/%#lx"</span>, name, offset, size);
+00068 }
+00069 }
+00070
+00071
+<a name="l00072"></a><a class="code" href="io_8c.html#a8">00072</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="io_8c.html#a8">cur_ret_addr</a> (<span class="keyword">struct</span> pt_regs *regs)
+00073 {
+00074 <span class="preprocessor">#ifdef __x86_64__</span>
+00075 <span class="preprocessor"></span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *ra = (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *)regs->rsp;
+00076 <span class="preprocessor">#else</span>
+00077 <span class="preprocessor"></span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *ra = (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *)regs->esp;
+00078 <span class="preprocessor">#endif</span>
+00079 <span class="preprocessor"></span> <span class="keywordflow">if</span> (ra)
+00080 <span class="keywordflow">return</span> *ra;
+00081 <span class="keywordflow">else</span>
+00082 <span class="keywordflow">return</span> 0;
+00083 }
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>io.c File Reference</h1>
<p>
<a href="io_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="io_8c.html#a0">STP_BUF_LEN</a> 8191</td></tr>
+
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="io_8c.html#a0">dlog</a> (const char *fmt,...)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="io_8c.html#a4">dlog</a> (const char *fmt,...)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Logs data. <a href="#a4"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="io_8c.html#a5">_stp_print_buf</a> (const char *fmt,...)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="io_8c.html#a6">_stp_print_buf_init</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="io_8c.html#a7">_stp_print_symbol</a> (const char *fmt, unsigned long address)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned long </td><td class="memItemRight" valign="bottom"><a class="el" href="io_8c.html#a8">cur_ret_addr</a> (struct pt_regs *regs)</td></tr>
+
+</table>
+<hr><h2>Define Documentation</h2>
+<a class="anchor" name="a0" doxytag="io.c::STP_BUF_LEN"></a><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">#define STP_BUF_LEN 8191 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+
+ </td>
+ <td>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Logs data. <a href="#a0"></a><br></td></tr>
+<p>
+
+<p>
+Definition at line <a class="el" href="io_8c-source.html#l00027">27</a> of file <a class="el" href="io_8c-source.html">io.c</a>.
+<p>
+Referenced by <a class="el" href="io_8c-source.html#l00033">_stp_print_buf()</a>, and <a class="el" href="io_8c-source.html#l00045">_stp_print_buf_init()</a>. </td>
+ </tr>
</table>
<hr><h2>Function Documentation</h2>
-<a class="anchor" name="a0" doxytag="io.c::dlog"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="a5" doxytag="io.c::_stp_print_buf"></a><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 _stp_print_buf </td>
+ <td class="md" valign="top">( </td>
+ <td class="md" nowrap valign="top">const char * </td>
+ <td class="mdname" nowrap> <em>fmt</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap> </td>
+ <td class="mdname" nowrap> <em>...</em></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">) </td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="io_8c-source.html#l00033">33</a> of file <a class="el" href="io_8c-source.html">io.c</a>.
+<p>
+References <a class="el" href="io_8c-source.html#l00027">STP_BUF_LEN</a>.
+<p>
+Referenced by <a class="el" href="io_8c-source.html#l00051">_stp_print_symbol()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a6" doxytag="io.c::_stp_print_buf_init"></a><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 _stp_print_buf_init </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>
+
+<p>
+Definition at line <a class="el" href="io_8c-source.html#l00045">45</a> of file <a class="el" href="io_8c-source.html">io.c</a>.
+<p>
+References <a class="el" href="io_8c-source.html#l00027">STP_BUF_LEN</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a7" doxytag="io.c::_stp_print_symbol"></a><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 _stp_print_symbol </td>
+ <td class="md" valign="top">( </td>
+ <td class="md" nowrap valign="top">const char * </td>
+ <td class="mdname" nowrap> <em>fmt</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>unsigned long </td>
+ <td class="mdname" nowrap> <em>address</em></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">) </td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="io_8c-source.html#l00051">51</a> of file <a class="el" href="io_8c-source.html">io.c</a>.
+<p>
+References <a class="el" href="io_8c-source.html#l00033">_stp_print_buf()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a8" doxytag="io.c::cur_ret_addr"></a><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">unsigned long cur_ret_addr </td>
+ <td class="md" valign="top">( </td>
+ <td class="md" nowrap valign="top">struct pt_regs * </td>
+ <td class="mdname1" valign="top" nowrap> <em>regs</em> </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>
+
+<p>
+Definition at line <a class="el" href="io_8c-source.html#l00072">72</a> of file <a class="el" href="io_8c-source.html">io.c</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a4" doxytag="io.c::dlog"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="io_8c-source.html#l00011">11</a> of file <a class="el" href="io_8c-source.html">io.c</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00765">_stp_list_clear()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00788">_stp_list_clear()</a>, <a class="el" href="probes_8c-source.html#l00022">_stp_register_jprobes()</a>, <a class="el" href="probes_8c-source.html#l00056">_stp_register_kprobes()</a>, <a class="el" href="probes_8c-source.html#l00014">_stp_unregister_jprobes()</a>, and <a class="el" href="probes_8c-source.html#l00048">_stp_unregister_kprobes()</a>. </td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>map.c</h1><a href="map_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 <span class="comment">/* -*- linux-c -*- */</span>
00002
00003 <span class="keyword">static</span> <span class="keywordtype">int</span> map_sizes[] = {
00027 <span class="keywordtype">char</span> *v = (<span class="keywordtype">char</span> *)key1;
00028 <span class="keywordflow">while</span> (v && *v && count++ < 5)
00029 hash += *v++;
-00030 <span class="keywordflow">return</span> hash_long((<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)(hash ^ key2), HASH_TABLE_BITS);
+00030 return hash_long((<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)(hash ^ key2), HASH_TABLE_BITS);
00031 }
00032
-<a name="l00043"></a><a class="code" href="map_8c.html#a3">00043</a> <a class="code" href="structmap__root.html">MAP</a> <a class="code" href="map_8c.html#a3">_stp_map_new</a>(<span class="keywordtype">unsigned</span> max_entries, <span class="keyword">enum</span> valtype type)
+<a name="l00043"></a><a class="code" href="map_8c.html#a3">00043</a> <a class="code" href="structmap__root.html">MAP</a> _stp_map_new(<span class="keywordtype">unsigned</span> max_entries, enum valtype type)
00044 {
00045 size_t size;
-00046 <a class="code" href="structmap__root.html">MAP</a> m = (<a class="code" href="structmap__root.html">MAP</a>) <a class="code" href="alloc_8h.html#a4">_stp_valloc</a>(<span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structmap__root.html">map_root</a>));
+00046 <a class="code" href="structmap__root.html">MAP</a> m = (<a class="code" href="structmap__root.html">MAP</a>) <a class="code" href="alloc_8h.html#a5">_stp_valloc</a>(<span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structmap__root.html">map_root</a>));
00047 <span class="keywordflow">if</span> (m == NULL)
00048 <span class="keywordflow">return</span> NULL;
00049
-00050 INIT_LIST_HEAD(&m-><a class="code" href="structmap__root.html#o3">head</a>);
+00050 INIT_LIST_HEAD(&m-><a class="code" href="structmap__root.html#o4">head</a>);
00051
-00052 m-><a class="code" href="structmap__root.html#o0">maxnum</a> = max_entries;
-00053 m->type = type;
-00054 <span class="keywordflow">if</span> (type >= END) {
+00052 m-><a class="code" href="structmap__root.html#o1">maxnum</a> = max_entries;
+00053 m-><a class="code" href="structmap__root.html#o0">type</a> = type;
+00054 <span class="keywordflow">if</span> (type >= <a class="code" href="map_8h.html#a19a17">END</a>) {
00055 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"map_new: unknown type %d\n"</span>, type);
00056 <span class="keywordflow">return</span> NULL;
00057 }
00061 <span class="keywordtype">int</span> i;
00062 <span class="keyword">struct </span>list_head *e;
00063
-00064 INIT_LIST_HEAD(&m-><a class="code" href="structmap__root.html#o4">pool</a>);
+00064 INIT_LIST_HEAD(&m-><a class="code" href="structmap__root.html#o5">pool</a>);
00065 size = map_sizes[type];
-00066 tmp = <a class="code" href="alloc_8h.html#a4">_stp_valloc</a>(max_entries * size);
+00066 tmp = <a class="code" href="alloc_8h.html#a5">_stp_valloc</a>(max_entries * size);
00067
00068 <span class="keywordflow">for</span> (i = max_entries - 1; i >= 0; i--) {
00069 e = i * size + tmp;
00070 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"e=%lx\n"</span>, (<span class="keywordtype">long</span>)e);
-00071 list_add(e, &m-><a class="code" href="structmap__root.html#o4">pool</a>);
+00071 list_add(e, &m-><a class="code" href="structmap__root.html#o5">pool</a>);
00072 }
-00073 m-><a class="code" href="structmap__root.html#o11">membuf</a> = tmp;
+00073 m-><a class="code" href="structmap__root.html#o14">membuf</a> = tmp;
00074 }
00075 <span class="keywordflow">return</span> m;
00076 }
00079 {
00080 <span class="keyword">struct </span>map_node_str *m = (<span class="keyword">struct </span>map_node_str *)n;
00081 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"n = %lx\n"</span>, (<span class="keywordtype">long</span>)n);
-00082 <span class="keywordflow">if</span> (map->type == STRING) {
+00082 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o0">type</a> == STRING) {
00083 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"val STRING %lx\n"</span>, (<span class="keywordtype">long</span>)m-><a class="code" href="structmap__node__str.html#o1">str</a>);
00084 <span class="keywordflow">if</span> (m-><a class="code" href="structmap__node__str.html#o1">str</a>)
-00085 <a class="code" href="alloc_8h.html#a5">_stp_free</a>(m-><a class="code" href="structmap__node__str.html#o1">str</a>);
+00085 _stp_free(m->str);
00086 }
-00087 <span class="keywordflow">if</span> (m-><a class="code" href="structmap__node__str.html#o0">n</a>.key1type == STR) {
+00087 if (m->n.key1type == STR) {
00088 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"key1 STR %lx\n"</span>, (<span class="keywordtype">long</span>)<a class="code" href="map_8h.html#a0">key1str</a>(m));
00089 <span class="keywordflow">if</span> (<a class="code" href="map_8h.html#a0">key1str</a>(m))
-00090 <a class="code" href="alloc_8h.html#a5">_stp_free</a>(<a class="code" href="map_8h.html#a0">key1str</a>(m));
+00090 _stp_free(key1str(m));
00091 }
-00092 <span class="keywordflow">if</span> (m-><a class="code" href="structmap__node__str.html#o0">n</a>.key2type == STR) {
+00092 if (m->n.key2type == STR) {
00093 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"key2 STR %lx\n"</span>, (<span class="keywordtype">long</span>)<a class="code" href="map_8h.html#a1">key2str</a>(m));
00094 <span class="keywordflow">if</span> (<a class="code" href="map_8h.html#a1">key2str</a>(m))
-00095 <a class="code" href="alloc_8h.html#a5">_stp_free</a>(<a class="code" href="map_8h.html#a1">key2str</a>(m));
+00095 _stp_free(key2str(m));
00096 }
00097 }
00098
-<a name="l00104"></a><a class="code" href="map_8c.html#a5">00104</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a5">_stp_map_key_del</a>(<a class="code" href="structmap__root.html">MAP</a> map)
+<a name="l00104"></a><a class="code" href="map_8c.html#a5">00104</a> <span class="keywordtype">void</span> _stp_map_key_del(<a class="code" href="structmap__root.html">MAP</a> map)
00105 {
00106 <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *m;
00107
-00108 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"create=%d key=%lx\n"</span>, map-><a class="code" href="structmap__root.html#o6">create</a>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o5">key</a>);
+00108 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"create=%d key=%lx\n"</span>, map->create, (<span class="keywordtype">long</span>)map->key);
00109 <span class="keywordflow">if</span> (map == NULL)
00110 <span class="keywordflow">return</span>;
00111
-00112 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o6">create</a>) {
-00113 map-><a class="code" href="structmap__root.html#o6">create</a> = 0;
-00114 map-><a class="code" href="structmap__root.html#o5">key</a> = NULL;
+00112 <span class="keywordflow">if</span> (map->create) {
+00113 map->create = 0;
+00114 map->key = NULL;
00115 <span class="keywordflow">return</span>;
00116 }
00117
-00118 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o5">key</a> == NULL)
+00118 <span class="keywordflow">if</span> (map->key == NULL)
00119 <span class="keywordflow">return</span>;
00120
-00121 m = (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)map-><a class="code" href="structmap__root.html#o5">key</a>;
+00121 m = (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)map->key;
00122
00123 <span class="comment">/* remove node from old hash list */</span>
00124 hlist_del_init(&m-><a class="code" href="structmap__node.html#o1">hnode</a>);
00127 list_del(&m-><a class="code" href="structmap__node.html#o0">lnode</a>);
00128
00129 <span class="comment">/* remove any allocated string storage */</span>
-00130 map_free_strings(map, (<span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *)map-><a class="code" href="structmap__root.html#o5">key</a>);
+00130 map_free_strings(map, (<span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *)map->key);
00131
-00132 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o0">maxnum</a>)
-00133 list_add(&m-><a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o4">pool</a>);
+00132 <span class="keywordflow">if</span> (map->maxnum)
+00133 list_add(&m-><a class="code" href="structmap__node.html#o0">lnode</a>, &map->pool);
00134 <span class="keywordflow">else</span>
-00135 <a class="code" href="alloc_8h.html#a5">_stp_free</a>(m);
+00135 <a class="code" href="alloc_8h.html#a6">_stp_free</a>(m);
00136
-00137 map-><a class="code" href="structmap__root.html#o5">key</a> = NULL;
-00138 map-><a class="code" href="structmap__root.html#o1">num</a>--;
+00137 map->key = NULL;
+00138 map->num--;
00139 }
00140
<a name="l00149"></a><a class="code" href="map_8c.html#a6">00149</a> <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *<a class="code" href="map_8c.html#a6">_stp_map_start</a>(<a class="code" href="structmap__root.html">MAP</a> map)
00151 <span class="keywordflow">if</span> (map == NULL)
00152 <span class="keywordflow">return</span> NULL;
00153
-00154 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"%lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o3">head</a>.next);
+00154 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"%lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o4">head</a>.next);
00155
-00156 <span class="keywordflow">if</span> (list_empty(&map-><a class="code" href="structmap__root.html#o3">head</a>))
+00156 <span class="keywordflow">if</span> (list_empty(&map-><a class="code" href="structmap__root.html#o4">head</a>))
00157 <span class="keywordflow">return</span> NULL;
00158
-00159 <span class="keywordflow">return</span> (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)map-><a class="code" href="structmap__root.html#o3">head</a>.next;
+00159 <span class="keywordflow">return</span> (<span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *)map-><a class="code" href="structmap__root.html#o4">head</a>.next;
00160 }
00161
<a name="l00172"></a><a class="code" href="map_8c.html#a7">00172</a> <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *<a class="code" href="map_8c.html#a7">_stp_map_iter</a>(<a class="code" href="structmap__root.html">MAP</a> map, <span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *m)
00174 <span class="keywordflow">if</span> (map == NULL)
00175 <span class="keywordflow">return</span> NULL;
00176
-00177 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"%lx next=%lx prev=%lx map->head.next=%lx\n"</span>, (<span class="keywordtype">long</span>)m, (<span class="keywordtype">long</span>)m-><a class="code" href="structmap__node.html#o0">lnode</a>.next, (<span class="keywordtype">long</span>)m-><a class="code" href="structmap__node.html#o0">lnode</a>.prev, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o3">head</a>.next);
+00177 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"%lx next=%lx prev=%lx map->head.next=%lx\n"</span>, (<span class="keywordtype">long</span>)m, (<span class="keywordtype">long</span>)m->lnode.next, (<span class="keywordtype">long</span>)m->lnode.prev, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o4">head</a>.next);
00178
-00179 <span class="keywordflow">if</span> (m->lnode.next == &map-><a class="code" href="structmap__root.html#o3">head</a>)
+00179 <span class="keywordflow">if</span> (m->lnode.next == &map-><a class="code" href="structmap__root.html#o4">head</a>)
00180 <span class="keywordflow">return</span> NULL;
00181
-00182 <span class="keywordflow">return</span> (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)m-><a class="code" href="structmap__node.html#o0">lnode</a>.next;
+00182 <span class="keywordflow">return</span> (<span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *)m-><a class="code" href="structmap__node.html#o0">lnode</a>.next;
00183 }
00184
<a name="l00190"></a><a class="code" href="map_8c.html#a8">00190</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a8">_stp_map_del</a>(<a class="code" href="structmap__root.html">MAP</a> map)
00192 <span class="keywordflow">if</span> (map == NULL)
00193 <span class="keywordflow">return</span>;
00194
-00195 <span class="keywordflow">if</span> (!list_empty(&map-><a class="code" href="structmap__root.html#o3">head</a>)) {
-00196 <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *ptr = (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)map-><a class="code" href="structmap__root.html#o3">head</a>.next;
-00197 <span class="keywordflow">while</span> (ptr && ptr != (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)&map-><a class="code" href="structmap__root.html#o3">head</a>) {
+00195 <span class="keywordflow">if</span> (!list_empty(&map-><a class="code" href="structmap__root.html#o4">head</a>)) {
+00196 <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *ptr = (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)map-><a class="code" href="structmap__root.html#o4">head</a>.next;
+00197 <span class="keywordflow">while</span> (ptr && ptr != (<span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *)&map-><a class="code" href="structmap__root.html#o4">head</a>) {
00198 map_free_strings(map, ptr);
00199 ptr = (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)ptr-><a class="code" href="structmap__node.html#o0">lnode</a>.next;
00200 }
00201 }
-00202 <a class="code" href="alloc_8h.html#a6">_stp_vfree</a>(map-><a class="code" href="structmap__root.html#o11">membuf</a>);
-00203 <a class="code" href="alloc_8h.html#a6">_stp_vfree</a>(map);
+00202 <a class="code" href="alloc_8h.html#a7">_stp_vfree</a>(map-><a class="code" href="structmap__root.html#o14">membuf</a>);
+00203 <a class="code" href="alloc_8h.html#a7">_stp_vfree</a>(map);
00204 }
00205
00206 <span class="comment">/********************** KEY FUNCTIONS *********************/</span>
00225 <span class="keywordflow">return</span>;
00226
00227 hv = hash_long(key1 ^ key2, HASH_TABLE_BITS);
-00228 head = &map-><a class="code" href="structmap__root.html#o10">hashes</a>[hv];
+00228 head = &map-><a class="code" href="structmap__root.html#o13">hashes</a>[hv];
00229
00230 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"hash for %ld,%ld is %d\n"</span>, key1, key2, hv);
00231
00234 (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)((long)e - <span class="keyword">sizeof</span>(<span class="keyword">struct </span>hlist_node));
00235 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"n =%lx key=%ld,%ld\n"</span>, (<span class="keywordtype">long</span>)n, n-><a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o0">val</a>, n->key2.<a class="code" href="unionkey__data.html#o0">val</a>);
00236 <span class="keywordflow">if</span> (key1 == n->key1.val && key2 == n->key2.val) {
-00237 map-><a class="code" href="structmap__root.html#o5">key</a> = n;
-00238 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"saving key %lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o5">key</a>);
-00239 map-><a class="code" href="structmap__root.html#o6">create</a> = 0;
+00237 map-><a class="code" href="structmap__root.html#o6">key</a> = n;
+00238 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"saving key %lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o6">key</a>);
+00239 map-><a class="code" href="structmap__root.html#o7">create</a> = 0;
00240 <span class="keywordflow">return</span>;
00241 }
00242 }
00243
-00244 map-><a class="code" href="structmap__root.html#o8">c_key1</a>.<a class="code" href="unionkey__data.html#o0">val</a> = key1;
-00245 map-><a class="code" href="structmap__root.html#o9">c_key2</a>.<a class="code" href="unionkey__data.html#o0">val</a> = key2;
-00246 map->c_key1type = LONG;
-00247 map->c_key2type = LONG;
-00248 map-><a class="code" href="structmap__root.html#o7">c_keyhead</a> = head;
-00249 map-><a class="code" href="structmap__root.html#o6">create</a> = 1;
+00244 map-><a class="code" href="structmap__root.html#o11">c_key1</a>.<a class="code" href="unionkey__data.html#o0">val</a> = key1;
+00245 map-><a class="code" href="structmap__root.html#o12">c_key2</a>.<a class="code" href="unionkey__data.html#o0">val</a> = key2;
+00246 map-><a class="code" href="structmap__root.html#o8">c_key1type</a> = <a class="code" href="map_8h.html#a18a12">LONG</a>;
+00247 map-><a class="code" href="structmap__root.html#o9">c_key2type</a> = <a class="code" href="map_8h.html#a18a12">LONG</a>;
+00248 map-><a class="code" href="structmap__root.html#o10">c_keyhead</a> = head;
+00249 map-><a class="code" href="structmap__root.html#o7">create</a> = 1;
00250 }
00251
<a name="l00261"></a><a class="code" href="map_8c.html#a10">00261</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a10">_stp_map_key_str_str</a>(<a class="code" href="structmap__root.html">MAP</a> map, <span class="keywordtype">char</span> *key1, <span class="keywordtype">char</span> *key2)
00268 <span class="keywordflow">return</span>;
00269
00270 <span class="keywordflow">if</span> (key1 == NULL) {
-00271 map-><a class="code" href="structmap__root.html#o5">key</a> = NULL;
+00271 map-><a class="code" href="structmap__root.html#o6">key</a> = NULL;
00272 <span class="keywordflow">return</span>;
00273 }
00274
00275 hv = string_hash(key1, key2);
-00276 head = &map-><a class="code" href="structmap__root.html#o10">hashes</a>[hv];
+00276 head = &map-><a class="code" href="structmap__root.html#o13">hashes</a>[hv];
00277
00278 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"hash for %s,%s is %d\n"</span>, key1, key2, hv);
00279
00283 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"e =%lx key=%s,%s\n"</span>, (<span class="keywordtype">long</span>)e, n-><a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>,n-><a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o1">str</a>);
00284 <span class="keywordflow">if</span> (strcmp(key1, n-><a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>) == 0
00285 && (key2 == NULL || strcmp(key2, n-><a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o1">str</a>) == 0)) {
-00286 map-><a class="code" href="structmap__root.html#o5">key</a> = n;
-00287 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"saving key %lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o5">key</a>);
-00288 map-><a class="code" href="structmap__root.html#o6">create</a> = 0;
+00286 map-><a class="code" href="structmap__root.html#o6">key</a> = n;
+00287 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"saving key %lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o6">key</a>);
+00288 map-><a class="code" href="structmap__root.html#o7">create</a> = 0;
00289 <span class="keywordflow">return</span>;
00290 }
00291 }
00292
-00293 map-><a class="code" href="structmap__root.html#o8">c_key1</a>.<a class="code" href="unionkey__data.html#o1">str</a> = key1;
-00294 map-><a class="code" href="structmap__root.html#o9">c_key2</a>.<a class="code" href="unionkey__data.html#o1">str</a> = key2;
-00295 map->c_key1type = STR;
-00296 map->c_key2type = STR;
-00297 map-><a class="code" href="structmap__root.html#o7">c_keyhead</a> = head;
-00298 map-><a class="code" href="structmap__root.html#o6">create</a> = 1;
+00293 map-><a class="code" href="structmap__root.html#o11">c_key1</a>.<a class="code" href="unionkey__data.html#o1">str</a> = key1;
+00294 map-><a class="code" href="structmap__root.html#o12">c_key2</a>.<a class="code" href="unionkey__data.html#o1">str</a> = key2;
+00295 map-><a class="code" href="structmap__root.html#o8">c_key1type</a> = <a class="code" href="map_8h.html#a18a13">STR</a>;
+00296 map-><a class="code" href="structmap__root.html#o9">c_key2type</a> = <a class="code" href="map_8h.html#a18a13">STR</a>;
+00297 map-><a class="code" href="structmap__root.html#o10">c_keyhead</a> = head;
+00298 map-><a class="code" href="structmap__root.html#o7">create</a> = 1;
00299 }
00300
<a name="l00310"></a><a class="code" href="map_8c.html#a11">00310</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a11">_stp_map_key_str_long</a>(<a class="code" href="structmap__root.html">MAP</a> map, <span class="keywordtype">char</span> *key1, <span class="keywordtype">long</span> key2)
00317 <span class="keywordflow">return</span>;
00318
00319 <span class="keywordflow">if</span> (key1 == NULL) {
-00320 map-><a class="code" href="structmap__root.html#o5">key</a> = NULL;
+00320 map-><a class="code" href="structmap__root.html#o6">key</a> = NULL;
00321 <span class="keywordflow">return</span>;
00322 }
00323
00324 hv = mixed_hash(key1, key2);
-00325 head = &map-><a class="code" href="structmap__root.html#o10">hashes</a>[hv];
+00325 head = &map-><a class="code" href="structmap__root.html#o13">hashes</a>[hv];
00326
00327 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"hash for %s,%ld is %d\n"</span>, key1, key2, hv);
00328
00331 (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)((long)e - <span class="keyword">sizeof</span>(<span class="keyword">struct </span>hlist_node));
00332 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"e =%lx key=%s,%ld\n"</span>, (<span class="keywordtype">long</span>)e, n-><a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>,(<span class="keywordtype">long</span>)n-><a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o0">val</a>);
00333 <span class="keywordflow">if</span> (strcmp(key1, n-><a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>) == 0 && key2 == n-><a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o0">val</a>) {
-00334 map-><a class="code" href="structmap__root.html#o5">key</a> = n;
-00335 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"saving key %lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o5">key</a>);
-00336 map-><a class="code" href="structmap__root.html#o6">create</a> = 0;
+00334 map-><a class="code" href="structmap__root.html#o6">key</a> = n;
+00335 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"saving key %lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o6">key</a>);
+00336 map-><a class="code" href="structmap__root.html#o7">create</a> = 0;
00337 <span class="keywordflow">return</span>;
00338 }
00339 }
00340
-00341 map-><a class="code" href="structmap__root.html#o8">c_key1</a>.<a class="code" href="unionkey__data.html#o1">str</a> = key1;
-00342 map-><a class="code" href="structmap__root.html#o9">c_key2</a>.<a class="code" href="unionkey__data.html#o0">val</a> = key2;
-00343 map->c_key1type = STR;
-00344 map->c_key2type = LONG;
-00345 map-><a class="code" href="structmap__root.html#o7">c_keyhead</a> = head;
-00346 map-><a class="code" href="structmap__root.html#o6">create</a> = 1;
+00341 map-><a class="code" href="structmap__root.html#o11">c_key1</a>.<a class="code" href="unionkey__data.html#o1">str</a> = key1;
+00342 map-><a class="code" href="structmap__root.html#o12">c_key2</a>.<a class="code" href="unionkey__data.html#o0">val</a> = key2;
+00343 map-><a class="code" href="structmap__root.html#o8">c_key1type</a> = <a class="code" href="map_8h.html#a18a13">STR</a>;
+00344 map-><a class="code" href="structmap__root.html#o9">c_key2type</a> = <a class="code" href="map_8h.html#a18a12">LONG</a>;
+00345 map-><a class="code" href="structmap__root.html#o10">c_keyhead</a> = head;
+00346 map-><a class="code" href="structmap__root.html#o7">create</a> = 1;
00347 }
00348
<a name="l00358"></a><a class="code" href="map_8c.html#a12">00358</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a12">_stp_map_key_long_str</a>(<a class="code" href="structmap__root.html">MAP</a> map, <span class="keywordtype">long</span> key1, <span class="keywordtype">char</span> *key2)
00365 <span class="keywordflow">return</span>;
00366
00367 hv = mixed_hash(key2, key1);
-00368 head = &map-><a class="code" href="structmap__root.html#o10">hashes</a>[hv];
+00368 head = &map-><a class="code" href="structmap__root.html#o13">hashes</a>[hv];
00369 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"hash for %ld,%s is %d\n"</span>, key1, key2, hv);
00370
00371 hlist_for_each(e, head) {
00373 (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)((long)e - <span class="keyword">sizeof</span>(<span class="keyword">struct </span>hlist_node));
00374 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"e =%lx key=%ld,%s\n"</span>, (<span class="keywordtype">long</span>)e, n-><a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o0">val</a>,n-><a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o1">str</a>);
00375 <span class="keywordflow">if</span> (key1 == n-><a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o0">val</a> && strcmp(key2, n-><a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o1">str</a>) == 0) {
-00376 map-><a class="code" href="structmap__root.html#o5">key</a> = n;
-00377 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"saving key %lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o5">key</a>);
-00378 map-><a class="code" href="structmap__root.html#o6">create</a> = 0;
+00376 map-><a class="code" href="structmap__root.html#o6">key</a> = n;
+00377 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"saving key %lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o6">key</a>);
+00378 map-><a class="code" href="structmap__root.html#o7">create</a> = 0;
00379 <span class="keywordflow">return</span>;
00380 }
00381 }
00382
-00383 map-><a class="code" href="structmap__root.html#o8">c_key1</a>.<a class="code" href="unionkey__data.html#o0">val</a> = key1;
-00384 map-><a class="code" href="structmap__root.html#o9">c_key2</a>.<a class="code" href="unionkey__data.html#o1">str</a> = key2;
-00385 map->c_key1type = LONG;
-00386 map->c_key2type = STR;
-00387 map-><a class="code" href="structmap__root.html#o7">c_keyhead</a> = head;
-00388 map-><a class="code" href="structmap__root.html#o6">create</a> = 1;
+00383 map-><a class="code" href="structmap__root.html#o11">c_key1</a>.<a class="code" href="unionkey__data.html#o0">val</a> = key1;
+00384 map-><a class="code" href="structmap__root.html#o12">c_key2</a>.<a class="code" href="unionkey__data.html#o1">str</a> = key2;
+00385 map-><a class="code" href="structmap__root.html#o8">c_key1type</a> = <a class="code" href="map_8h.html#a18a12">LONG</a>;
+00386 map-><a class="code" href="structmap__root.html#o9">c_key2type</a> = <a class="code" href="map_8h.html#a18a13">STR</a>;
+00387 map-><a class="code" href="structmap__root.html#o10">c_keyhead</a> = head;
+00388 map-><a class="code" href="structmap__root.html#o7">create</a> = 1;
00389 }
00390
<a name="l00399"></a><a class="code" href="map_8c.html#a13">00399</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a13">_stp_map_key_str</a>(<a class="code" href="structmap__root.html">MAP</a> map, <span class="keywordtype">char</span> *key)
00401 <span class="keywordflow">if</span> (map == NULL)
00402 <span class="keywordflow">return</span>;
00403 <a class="code" href="map_8c.html#a10">_stp_map_key_str_str</a>(map, key, NULL);
-00404 map->c_key2type = NONE;
+00404 map-><a class="code" href="structmap__root.html#o9">c_key2type</a> = <a class="code" href="map_8h.html#a18a11">NONE</a>;
00405 }
00406
<a name="l00415"></a><a class="code" href="map_8c.html#a14">00415</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a14">_stp_map_key_long</a>(<a class="code" href="structmap__root.html">MAP</a> map, <span class="keywordtype">long</span> key)
00417 <span class="keywordflow">if</span> (map == NULL)
00418 <span class="keywordflow">return</span>;
00419 <a class="code" href="map_8c.html#a9">_stp_map_key_long_long</a>(map, key, 0);
-00420 map->c_key2type = NONE;
+00420 map-><a class="code" href="structmap__root.html#o9">c_key2type</a> = <a class="code" href="map_8h.html#a18a11">NONE</a>;
00421 }
00422
00423 <span class="comment">/********************** SET/GET VALUES *********************/</span>
00424
00425 <span class="keyword">static</span> <span class="keywordtype">void</span> map_copy_keys(<a class="code" href="structmap__root.html">MAP</a> map, <span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *m)
00426 {
-00427 m->key1type = map->c_key1type;
-00428 m->key2type = map->c_key2type;
-00429 <span class="keywordflow">switch</span> (map->c_key1type) {
+00427 m->key1type = map-><a class="code" href="structmap__root.html#o8">c_key1type</a>;
+00428 m->key2type = map-><a class="code" href="structmap__root.html#o9">c_key2type</a>;
+00429 <span class="keywordflow">switch</span> (map-><a class="code" href="structmap__root.html#o8">c_key1type</a>) {
00430 <span class="keywordflow">case</span> <a class="code" href="map_8h.html#a18a13">STR</a>:
-00431 m-><a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o1">str</a> = <a class="code" href="alloc_8h.html#a2">_stp_alloc</a>(strlen(map-><a class="code" href="structmap__root.html#o8">c_key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>) + 1);
-00432 strcpy(m-><a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>, map-><a class="code" href="structmap__root.html#o8">c_key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>);
+00431 m->key1.str = <a class="code" href="alloc_8h.html#a3">_stp_alloc</a>(strlen(map-><a class="code" href="structmap__root.html#o11">c_key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>) + 1);
+00432 strcpy(m->key1.str, map-><a class="code" href="structmap__root.html#o11">c_key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>);
00433 <span class="keywordflow">break</span>;
00434 <span class="keywordflow">case</span> <a class="code" href="map_8h.html#a18a12">LONG</a>:
-00435 m-><a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o0">val</a> = map-><a class="code" href="structmap__root.html#o8">c_key1</a>.<a class="code" href="unionkey__data.html#o0">val</a>;
+00435 m->key1.val = map-><a class="code" href="structmap__root.html#o11">c_key1</a>.<a class="code" href="unionkey__data.html#o0">val</a>;
00436 <span class="keywordflow">break</span>;
00437 <span class="keywordflow">case</span> <a class="code" href="map_8h.html#a18a11">NONE</a>:
00438 <span class="comment">/* ERROR */</span>
00439 <span class="keywordflow">break</span>;
00440 }
-00441 <span class="keywordflow">switch</span> (map->c_key2type) {
+00441 <span class="keywordflow">switch</span> (map-><a class="code" href="structmap__root.html#o9">c_key2type</a>) {
00442 <span class="keywordflow">case</span> <a class="code" href="map_8h.html#a18a13">STR</a>:
-00443 m-><a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o1">str</a> = <a class="code" href="alloc_8h.html#a2">_stp_alloc</a>(strlen(map-><a class="code" href="structmap__root.html#o9">c_key2</a>.<a class="code" href="unionkey__data.html#o1">str</a>) + 1);
-00444 strcpy(m-><a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o1">str</a>, map-><a class="code" href="structmap__root.html#o9">c_key2</a>.<a class="code" href="unionkey__data.html#o1">str</a>);
+00443 m->key2.<a class="code" href="unionkey__data.html#o1">str</a> = <a class="code" href="alloc_8h.html#a3">_stp_alloc</a>(strlen(map-><a class="code" href="structmap__root.html#o12">c_key2</a>.<a class="code" href="unionkey__data.html#o1">str</a>) + 1);
+00444 strcpy(m->key2.str, map-><a class="code" href="structmap__root.html#o12">c_key2</a>.<a class="code" href="unionkey__data.html#o1">str</a>);
00445 <span class="keywordflow">break</span>;
00446 <span class="keywordflow">case</span> <a class="code" href="map_8h.html#a18a12">LONG</a>:
-00447 m-><a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o0">val</a> = map-><a class="code" href="structmap__root.html#o9">c_key2</a>.<a class="code" href="unionkey__data.html#o0">val</a>;
+00447 m->key2.<a class="code" href="unionkey__data.html#o0">val</a> = map-><a class="code" href="structmap__root.html#o12">c_key2</a>.<a class="code" href="unionkey__data.html#o0">val</a>;
00448 <span class="keywordflow">break</span>;
00449 <span class="keywordflow">case</span> <a class="code" href="map_8h.html#a18a11">NONE</a>:
00450 <span class="keywordflow">break</span>;
00451 }
00452
00453 <span class="comment">/* add node to new hash list */</span>
-00454 hlist_add_head(&m-><a class="code" href="structmap__node.html#o1">hnode</a>, map-><a class="code" href="structmap__root.html#o7">c_keyhead</a>);
+00454 hlist_add_head(&m->hnode, map-><a class="code" href="structmap__root.html#o10">c_keyhead</a>);
00455
-00456 map-><a class="code" href="structmap__root.html#o5">key</a> = m;
-00457 map-><a class="code" href="structmap__root.html#o6">create</a> = 0;
-00458 map-><a class="code" href="structmap__root.html#o1">num</a>++;
+00456 map-><a class="code" href="structmap__root.html#o6">key</a> = m;
+00457 map-><a class="code" href="structmap__root.html#o7">create</a> = 0;
+00458 map-><a class="code" href="structmap__root.html#o2">num</a>++;
00459 }
00460
-<a name="l00471"></a><a class="code" href="map_8c.html#a16">00471</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a16">_stp_map_set_int64</a>(<a class="code" href="structmap__root.html">MAP</a> map, int64_t val)
-00472 {
-00473 <span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *m;
-00474
-00475 <span class="keywordflow">if</span> (map == NULL)
-00476 <span class="keywordflow">return</span>;
-00477
-00478 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o6">create</a>) {
-00479 <span class="keywordflow">if</span> (val == 0)
-00480 <span class="keywordflow">return</span>;
-00481
-00482 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o0">maxnum</a>) {
-00483 <span class="keywordflow">if</span> (list_empty(&map-><a class="code" href="structmap__root.html#o4">pool</a>)) {
-00484 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o2">no_wrap</a>) {
-00485 <span class="comment">/* ERROR. FIXME */</span>
-00486 <span class="keywordflow">return</span>;
-00487 }
-00488 m = (<span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *)map-><a class="code" href="structmap__root.html#o3">head</a>.next;
-00489 hlist_del_init(&m-><a class="code" href="structmap__node__int64.html#o0">n</a>.<a class="code" href="structmap__node.html#o1">hnode</a>);
-00490 map_free_strings(map, (<span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *)m);
-00491 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"got %lx off head\n"</span>, (<span class="keywordtype">long</span>)m);
-00492 } <span class="keywordflow">else</span> {
-00493 m = (<span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *)map-><a class="code" href="structmap__root.html#o4">pool</a>.next;
-00494 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"got %lx off pool\n"</span>, (<span class="keywordtype">long</span>)m);
-00495 }
-00496 list_move_tail(&m-><a class="code" href="structmap__node__int64.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o3">head</a>);
-00497 } <span class="keywordflow">else</span> {
-00498 m = (<span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *)
-00499 <a class="code" href="alloc_8h.html#a3">_stp_calloc</a>(<span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structmap__node__int64.html">map_node_int64</a>));
-00500 <span class="comment">/* add node to list */</span>
-00501 list_add_tail(&m-><a class="code" href="structmap__node__int64.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o3">head</a>);
-00502 }
-00503
-00504 <span class="comment">/* copy the key(s) */</span>
-00505 map_copy_keys(map, &m-><a class="code" href="structmap__node__int64.html#o0">n</a>);
-00506
-00507 <span class="comment">/* set the value */</span>
-00508 m-><a class="code" href="structmap__node__int64.html#o1">val</a> = val;
-00509 } <span class="keywordflow">else</span> {
-00510 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o5">key</a> == NULL)
-00511 <span class="keywordflow">return</span>;
-00512
-00513 <span class="keywordflow">if</span> (val) {
-00514 m = (<span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *)map-><a class="code" href="structmap__root.html#o5">key</a>;
-00515 m-><a class="code" href="structmap__node__int64.html#o1">val</a> = val;
-00516 } <span class="keywordflow">else</span> {
-00517 <span class="comment">/* setting value to 0 is the same as deleting */</span>
-00518 <a class="code" href="map_8c.html#a5">_stp_map_key_del</a>(map);
-00519 }
-00520 }
-00521 }
-00522
-<a name="l00528"></a><a class="code" href="map_8c.html#a17">00528</a> int64_t <a class="code" href="map_8c.html#a17">_stp_map_get_int64</a>(<a class="code" href="structmap__root.html">MAP</a> map)
-00529 {
-00530 <span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *m;
-00531 <span class="keywordflow">if</span> (map == NULL || map-><a class="code" href="structmap__root.html#o6">create</a> || map-><a class="code" href="structmap__root.html#o5">key</a> == NULL)
-00532 <span class="keywordflow">return</span> 0;
-00533 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"%lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o5">key</a>);
-00534 m = (<span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *)map-><a class="code" href="structmap__root.html#o5">key</a>;
-00535 <span class="keywordflow">return</span> m-><a class="code" href="structmap__node__int64.html#o1">val</a>;
-00536 }
-00537
-<a name="l00548"></a><a class="code" href="map_8c.html#a18">00548</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a18">_stp_map_set_str</a>(<a class="code" href="structmap__root.html">MAP</a> map, <span class="keywordtype">char</span> *val)
-00549 {
-00550 <span class="keyword">struct </span>map_node_str *m;
-00551
-00552 <span class="keywordflow">if</span> (map == NULL)
-00553 <span class="keywordflow">return</span>;
-00554
-00555 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o6">create</a>) {
-00556 <span class="keywordflow">if</span> (val == NULL)
-00557 <span class="keywordflow">return</span>;
-00558
-00559 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o0">maxnum</a>) {
-00560 <span class="keywordflow">if</span> (list_empty(&map-><a class="code" href="structmap__root.html#o4">pool</a>)) {
-00561 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o2">no_wrap</a>) {
-00562 <span class="comment">/* ERROR. FIXME */</span>
-00563 <span class="keywordflow">return</span>;
-00564 }
-00565 m = (<span class="keyword">struct </span>map_node_str *)map-><a class="code" href="structmap__root.html#o3">head</a>.next;
-00566 hlist_del_init(&m-><a class="code" href="structmap__node__str.html#o0">n</a>.<a class="code" href="structmap__node.html#o1">hnode</a>);
-00567 map_free_strings(map, (<span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *)m);
-00568 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"got %lx off head\n"</span>, (<span class="keywordtype">long</span>)m);
-00569 } <span class="keywordflow">else</span> {
-00570 m = (<span class="keyword">struct </span>map_node_str *)map-><a class="code" href="structmap__root.html#o4">pool</a>.next;
-00571 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"got %lx off pool\n"</span>, (<span class="keywordtype">long</span>)m);
-00572 }
-00573 list_move_tail(&m-><a class="code" href="structmap__node__str.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o3">head</a>);
-00574 } <span class="keywordflow">else</span> {
-00575 m = (<span class="keyword">struct </span>map_node_str *)
-00576 <a class="code" href="alloc_8h.html#a3">_stp_calloc</a>(<span class="keyword">sizeof</span>(<span class="keyword">struct</span> map_node_str));
-00577 <span class="comment">/* add node to list */</span>
-00578 list_add_tail(&m-><a class="code" href="structmap__node__str.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o3">head</a>);
-00579 }
-00580
-00581 <span class="comment">/* copy the key(s) */</span>
-00582 map_copy_keys(map, &m-><a class="code" href="structmap__node__str.html#o0">n</a>);
-00583
-00584 <span class="comment">/* set the value */</span>
-00585 m-><a class="code" href="structmap__node__str.html#o1">str</a> = <a class="code" href="alloc_8h.html#a2">_stp_alloc</a>(strlen(val) + 1);
-00586 strcpy(m-><a class="code" href="structmap__node__str.html#o1">str</a>, val);
-00587 } <span class="keywordflow">else</span> {
-00588 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o5">key</a> == NULL)
-00589 <span class="keywordflow">return</span>;
-00590
-00591 <span class="keywordflow">if</span> (val) {
-00592 m = (<span class="keyword">struct </span>map_node_str *)map-><a class="code" href="structmap__root.html#o5">key</a>;
-00593 <span class="keywordflow">if</span> (m-><a class="code" href="structmap__node__str.html#o1">str</a>)
-00594 <a class="code" href="alloc_8h.html#a5">_stp_free</a>(m-><a class="code" href="structmap__node__str.html#o1">str</a>);
-00595 m-><a class="code" href="structmap__node__str.html#o1">str</a> = <a class="code" href="alloc_8h.html#a2">_stp_alloc</a>(strlen(val) + 1);
-00596 strcpy(m-><a class="code" href="structmap__node__str.html#o1">str</a>, val);
+00461 <span class="keyword">static</span> <span class="keywordtype">void</span> __stp_map_set_int64(<a class="code" href="structmap__root.html">MAP</a> map, int64_t val, <span class="keywordtype">int</span> add)
+00462 {
+00463 <span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *m;
+00464
+00465 <span class="keywordflow">if</span> (map == NULL)
+00466 return;
+00467
+00468 if (map->create) {
+00469 <span class="keywordflow">if</span> (val == 0)
+00470 return;
+00471
+00472 if (map->maxnum) {
+00473 <span class="keywordflow">if</span> (list_empty(&map-><a class="code" href="structmap__root.html#o5">pool</a>)) {
+00474 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o3">no_wrap</a>) {
+00475 <span class="comment">/* ERROR. FIXME */</span>
+00476 <span class="keywordflow">return</span>;
+00477 }
+00478 m = (<span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *)map-><a class="code" href="structmap__root.html#o4">head</a>.next;
+00479 hlist_del_init(&m-><a class="code" href="structmap__node__int64.html#o0">n</a>.<a class="code" href="structmap__node.html#o1">hnode</a>);
+00480 map_free_strings(map, (<span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *)m);
+00481 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"got %lx off head\n"</span>, (<span class="keywordtype">long</span>)m);
+00482 } <span class="keywordflow">else</span> {
+00483 m = (<span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *)map-><a class="code" href="structmap__root.html#o5">pool</a>.next;
+00484 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"got %lx off pool\n"</span>, (<span class="keywordtype">long</span>)m);
+00485 }
+00486 list_move_tail(&m-><a class="code" href="structmap__node__int64.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o4">head</a>);
+00487 } <span class="keywordflow">else</span> {
+00488 m = (<span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *)
+00489 <a class="code" href="alloc_8h.html#a4">_stp_calloc</a>(<span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structmap__node__int64.html">map_node_int64</a>));
+00490 <span class="comment">/* add node to list */</span>
+00491 list_add_tail(&m-><a class="code" href="structmap__node__int64.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o4">head</a>);
+00492 }
+00493
+00494 <span class="comment">/* copy the key(s) */</span>
+00495 map_copy_keys(map, &m-><a class="code" href="structmap__node__int64.html#o0">n</a>);
+00496
+00497 <span class="comment">/* set the value */</span>
+00498 m-><a class="code" href="structmap__node__int64.html#o1">val</a> = val;
+00499 } <span class="keywordflow">else</span> {
+00500 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o6">key</a> == NULL)
+00501 return;
+00502
+00503 if (val) {
+00504 m = (<span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *)map-><a class="code" href="structmap__root.html#o6">key</a>;
+00505 <span class="keywordflow">if</span> (add)
+00506 m->val += val;
+00507 else
+00508 m->val = val;
+00509 } else if (!add) {
+00510 <span class="comment">/* setting value to 0 is the same as deleting */</span>
+00511 <a class="code" href="map_8c.html#a5">_stp_map_key_del</a>(map);
+00512 }
+00513 }
+00514 }
+00515
+<a name="l00525"></a><a class="code" href="map_8c.html#a17">00525</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a17">_stp_map_set_int64</a>(<a class="code" href="structmap__root.html">MAP</a> map, int64_t val)
+00526 {
+00527 __stp_map_set_int64 (map, val, 0);
+00528 }
+00529
+00530
+<a name="l00541"></a><a class="code" href="map_8c.html#a18">00541</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a18">_stp_map_add_int64</a>(<a class="code" href="structmap__root.html">MAP</a> map, int64_t val)
+00542 {
+00543 __stp_map_set_int64 (map, val, 1);
+00544 }
+00545
+<a name="l00551"></a><a class="code" href="map_8c.html#a19">00551</a> int64_t <a class="code" href="map_8c.html#a19">_stp_map_get_int64</a>(<a class="code" href="structmap__root.html">MAP</a> map)
+00552 {
+00553 <span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *m;
+00554 <span class="keywordflow">if</span> (map == NULL || map-><a class="code" href="structmap__root.html#o7">create</a> || map-><a class="code" href="structmap__root.html#o6">key</a> == NULL)
+00555 <span class="keywordflow">return</span> 0;
+00556 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"%lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o6">key</a>);
+00557 m = (<span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *)map-><a class="code" href="structmap__root.html#o6">key</a>;
+00558 <span class="keywordflow">return</span> m-><a class="code" href="structmap__node__int64.html#o1">val</a>;
+00559 }
+00560
+<a name="l00571"></a><a class="code" href="map_8c.html#a20">00571</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a20">_stp_map_set_str</a>(<a class="code" href="structmap__root.html">MAP</a> map, <span class="keywordtype">char</span> *val)
+00572 {
+00573 <span class="keyword">struct </span>map_node_str *m;
+00574
+00575 <span class="keywordflow">if</span> (map == NULL)
+00576 <span class="keywordflow">return</span>;
+00577
+00578 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o7">create</a>) {
+00579 <span class="keywordflow">if</span> (val == NULL)
+00580 <span class="keywordflow">return</span>;
+00581
+00582 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o1">maxnum</a>) {
+00583 <span class="keywordflow">if</span> (list_empty(&map-><a class="code" href="structmap__root.html#o5">pool</a>)) {
+00584 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o3">no_wrap</a>) {
+00585 <span class="comment">/* ERROR. FIXME */</span>
+00586 <span class="keywordflow">return</span>;
+00587 }
+00588 m = (<span class="keyword">struct </span>map_node_str *)map-><a class="code" href="structmap__root.html#o4">head</a>.next;
+00589 hlist_del_init(&m-><a class="code" href="structmap__node__str.html#o0">n</a>.<a class="code" href="structmap__node.html#o1">hnode</a>);
+00590 map_free_strings(map, (<span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *)m);
+00591 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"got %lx off head\n"</span>, (<span class="keywordtype">long</span>)m);
+00592 } <span class="keywordflow">else</span> {
+00593 m = (<span class="keyword">struct </span>map_node_str *)map-><a class="code" href="structmap__root.html#o5">pool</a>.next;
+00594 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"got %lx off pool\n"</span>, (<span class="keywordtype">long</span>)m);
+00595 }
+00596 list_move_tail(&m-><a class="code" href="structmap__node__str.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o4">head</a>);
00597 } <span class="keywordflow">else</span> {
-00598 <span class="comment">/* setting value to 0 is the same as deleting */</span>
-00599 <a class="code" href="map_8c.html#a5">_stp_map_key_del</a>(map);
-00600 }
-00601 }
-00602 }
+00598 m = (<span class="keyword">struct </span>map_node_str *)
+00599 <a class="code" href="alloc_8h.html#a4">_stp_calloc</a>(<span class="keyword">sizeof</span>(<span class="keyword">struct</span> map_node_str));
+00600 <span class="comment">/* add node to list */</span>
+00601 list_add_tail(&m-><a class="code" href="structmap__node__str.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o4">head</a>);
+00602 }
00603
-<a name="l00609"></a><a class="code" href="map_8c.html#a19">00609</a> <span class="keywordtype">char</span> *<a class="code" href="map_8c.html#a19">_stp_map_get_str</a>(<a class="code" href="structmap__root.html">MAP</a> map)
-00610 {
-00611 <span class="keyword">struct </span>map_node_str *m;
-00612 <span class="keywordflow">if</span> (map == NULL || map-><a class="code" href="structmap__root.html#o6">create</a> || map-><a class="code" href="structmap__root.html#o5">key</a> == NULL)
-00613 <span class="keywordflow">return</span> NULL;
-00614 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"%lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o5">key</a>);
-00615 m = (<span class="keyword">struct </span>map_node_str *)map-><a class="code" href="structmap__root.html#o5">key</a>;
-00616 <span class="keywordflow">return</span> m-><a class="code" href="structmap__node__str.html#o1">str</a>;
-00617 }
-00618
-<a name="l00633"></a><a class="code" href="map_8c.html#a20">00633</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a20">_stp_map_set_stat</a>(<a class="code" href="structmap__root.html">MAP</a> map, <a class="code" href="structstat.html">stat</a> * stats)
-00634 {
-00635 <span class="keyword">struct </span>map_node_stat *m;
-00636
-00637 <span class="keywordflow">if</span> (map == NULL)
-00638 <span class="keywordflow">return</span>;
-00639 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"set_stat %lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o5">key</a>);
-00640
-00641 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o6">create</a>) {
-00642 <span class="keywordflow">if</span> (stats == NULL)
-00643 <span class="keywordflow">return</span>;
-00644
-00645 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o0">maxnum</a>) {
-00646 <span class="keywordflow">if</span> (list_empty(&map-><a class="code" href="structmap__root.html#o4">pool</a>)) {
-00647 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o2">no_wrap</a>) {
-00648 <span class="comment">/* ERROR. FIXME */</span>
-00649 <span class="keywordflow">return</span>;
-00650 }
-00651 m = (<span class="keyword">struct </span>map_node_stat *)map-><a class="code" href="structmap__root.html#o3">head</a>.next;
-00652 hlist_del_init(&m-><a class="code" href="structmap__node__stat.html#o0">n</a>.<a class="code" href="structmap__node.html#o1">hnode</a>);
-00653 map_free_strings(map, (<span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *)m);
-00654 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"got %lx off head\n"</span>, (<span class="keywordtype">long</span>)m);
-00655 } <span class="keywordflow">else</span> {
-00656 m = (<span class="keyword">struct </span>map_node_stat *)map-><a class="code" href="structmap__root.html#o4">pool</a>.next;
-00657 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"got %lx off pool\n"</span>, (<span class="keywordtype">long</span>)m);
-00658 }
-00659 list_move_tail(&m-><a class="code" href="structmap__node__stat.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o3">head</a>);
-00660 } <span class="keywordflow">else</span> {
-00661 m = (<span class="keyword">struct </span>map_node_stat *)
-00662 <a class="code" href="alloc_8h.html#a3">_stp_calloc</a>(<span class="keyword">sizeof</span>(<span class="keyword">struct</span> map_node_stat));
-00663 <span class="comment">/* add node to list */</span>
-00664 list_add_tail(&m-><a class="code" href="structmap__node__stat.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o3">head</a>);
-00665 }
-00666
-00667 <span class="comment">/* copy the key(s) */</span>
-00668 map_copy_keys(map, &m-><a class="code" href="structmap__node__stat.html#o0">n</a>);
-00669
-00670 <span class="comment">/* set the value */</span>
-00671 memcpy(&m-><a class="code" href="structmap__node__stat.html#o1">stats</a>, stats, <span class="keyword">sizeof</span>(<a class="code" href="structstat.html">stat</a>));
-00672 } <span class="keywordflow">else</span> {
-00673 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o5">key</a> == NULL)
-00674 <span class="keywordflow">return</span>;
-00675
-00676 <span class="keywordflow">if</span> (stats) {
-00677 m = (<span class="keyword">struct </span>map_node_stat *)map-><a class="code" href="structmap__root.html#o5">key</a>;
-00678 memcpy(&m-><a class="code" href="structmap__node__stat.html#o1">stats</a>, stats, <span class="keyword">sizeof</span>(<a class="code" href="structstat.html">stat</a>));
-00679 } <span class="keywordflow">else</span> {
-00680 <span class="comment">/* setting value to NULL is the same as deleting */</span>
-00681 <a class="code" href="map_8c.html#a5">_stp_map_key_del</a>(map);
-00682 }
-00683 }
-00684 }
-00685
-<a name="l00692"></a><a class="code" href="map_8c.html#a21">00692</a> <a class="code" href="structstat.html">stat</a> *<a class="code" href="map_8c.html#a21">_stp_map_get_stat</a>(<a class="code" href="structmap__root.html">MAP</a> map)
-00693 {
-00694 <span class="keyword">struct </span>map_node_stat *m;
-00695 <span class="keywordflow">if</span> (map == NULL || map-><a class="code" href="structmap__root.html#o6">create</a> || map-><a class="code" href="structmap__root.html#o5">key</a> == NULL)
-00696 <span class="keywordflow">return</span> NULL;
-00697 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"%lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o5">key</a>);
-00698 m = (<span class="keyword">struct </span>map_node_stat *)map-><a class="code" href="structmap__root.html#o5">key</a>;
-00699 <span class="keywordflow">return</span> &m-><a class="code" href="structmap__node__stat.html#o1">stats</a>;
-00700 }
-00701
-<a name="l00713"></a><a class="code" href="map_8c.html#a22">00713</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a22">_stp_map_stat_add</a>(<a class="code" href="structmap__root.html">MAP</a> map, int64_t val)
-00714 {
-00715 <span class="keyword">struct </span>map_node_stat *m;
-00716 <span class="keywordflow">if</span> (map == NULL)
-00717 <span class="keywordflow">return</span>;
-00718
-00719 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o6">create</a>) {
-00720 <a class="code" href="structstat.html">stat</a> st = { 1, val, val, val };
-00721 <span class="comment">/* histogram */</span>
-00722 <a class="code" href="map_8c.html#a20">_stp_map_set_stat</a>(map, &st);
-00723 <span class="keywordflow">return</span>;
-00724 }
-00725
-00726 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o5">key</a> == NULL)
-00727 <span class="keywordflow">return</span>;
-00728
-00729 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"add_stat %lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o5">key</a>);
-00730 m = (<span class="keyword">struct </span>map_node_stat *)map-><a class="code" href="structmap__root.html#o5">key</a>;
-00731 m-><a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o0">count</a>++;
-00732 m-><a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o1">sum</a> += val;
-00733 <span class="keywordflow">if</span> (val > m-><a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o3">max</a>)
-00734 m-><a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o3">max</a> = val;
-00735 <span class="keywordflow">if</span> (val < m-><a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o2">min</a>)
-00736 m-><a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o2">min</a> = val;
-00737 <span class="comment">/* histogram */</span>
-00738 }
-00739
-00740 <span class="comment">/********************** List Functions *********************/</span>
+00604 <span class="comment">/* copy the key(s) */</span>
+00605 map_copy_keys(map, &m-><a class="code" href="structmap__node__str.html#o0">n</a>);
+00606
+00607 <span class="comment">/* set the value */</span>
+00608 m-><a class="code" href="structmap__node__str.html#o1">str</a> = <a class="code" href="alloc_8h.html#a3">_stp_alloc</a>(strlen(val) + 1);
+00609 strcpy(m-><a class="code" href="structmap__node__str.html#o1">str</a>, val);
+00610 } <span class="keywordflow">else</span> {
+00611 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o6">key</a> == NULL)
+00612 <span class="keywordflow">return</span>;
+00613
+00614 <span class="keywordflow">if</span> (val) {
+00615 m = (<span class="keyword">struct </span>map_node_str *)map-><a class="code" href="structmap__root.html#o6">key</a>;
+00616 <span class="keywordflow">if</span> (m-><a class="code" href="structmap__node__str.html#o1">str</a>)
+00617 <a class="code" href="alloc_8h.html#a6">_stp_free</a>(m-><a class="code" href="structmap__node__str.html#o1">str</a>);
+00618 m-><a class="code" href="structmap__node__str.html#o1">str</a> = <a class="code" href="alloc_8h.html#a3">_stp_alloc</a>(strlen(val) + 1);
+00619 strcpy(m-><a class="code" href="structmap__node__str.html#o1">str</a>, val);
+00620 } <span class="keywordflow">else</span> {
+00621 <span class="comment">/* setting value to 0 is the same as deleting */</span>
+00622 <a class="code" href="map_8c.html#a5">_stp_map_key_del</a>(map);
+00623 }
+00624 }
+00625 }
+00626
+<a name="l00632"></a><a class="code" href="map_8c.html#a21">00632</a> <span class="keywordtype">char</span> *<a class="code" href="map_8c.html#a21">_stp_map_get_str</a>(<a class="code" href="structmap__root.html">MAP</a> map)
+00633 {
+00634 <span class="keyword">struct </span>map_node_str *m;
+00635 <span class="keywordflow">if</span> (map == NULL || map-><a class="code" href="structmap__root.html#o7">create</a> || map-><a class="code" href="structmap__root.html#o6">key</a> == NULL)
+00636 <span class="keywordflow">return</span> NULL;
+00637 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"%lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o6">key</a>);
+00638 m = (<span class="keyword">struct </span>map_node_str *)map-><a class="code" href="structmap__root.html#o6">key</a>;
+00639 <span class="keywordflow">return</span> m-><a class="code" href="structmap__node__str.html#o1">str</a>;
+00640 }
+00641
+<a name="l00656"></a><a class="code" href="map_8c.html#a22">00656</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a22">_stp_map_set_stat</a>(<a class="code" href="structmap__root.html">MAP</a> map, <a class="code" href="structstat.html">stat</a> * stats)
+00657 {
+00658 <span class="keyword">struct </span>map_node_stat *m;
+00659
+00660 <span class="keywordflow">if</span> (map == NULL)
+00661 <span class="keywordflow">return</span>;
+00662 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"set_stat %lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o6">key</a>);
+00663
+00664 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o7">create</a>) {
+00665 <span class="keywordflow">if</span> (stats == NULL)
+00666 <span class="keywordflow">return</span>;
+00667
+00668 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o1">maxnum</a>) {
+00669 <span class="keywordflow">if</span> (list_empty(&map-><a class="code" href="structmap__root.html#o5">pool</a>)) {
+00670 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o3">no_wrap</a>) {
+00671 <span class="comment">/* ERROR. FIXME */</span>
+00672 <span class="keywordflow">return</span>;
+00673 }
+00674 m = (<span class="keyword">struct </span>map_node_stat *)map-><a class="code" href="structmap__root.html#o4">head</a>.next;
+00675 hlist_del_init(&m-><a class="code" href="structmap__node__stat.html#o0">n</a>.<a class="code" href="structmap__node.html#o1">hnode</a>);
+00676 map_free_strings(map, (<span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *)m);
+00677 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"got %lx off head\n"</span>, (<span class="keywordtype">long</span>)m);
+00678 } <span class="keywordflow">else</span> {
+00679 m = (<span class="keyword">struct </span>map_node_stat *)map-><a class="code" href="structmap__root.html#o5">pool</a>.next;
+00680 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"got %lx off pool\n"</span>, (<span class="keywordtype">long</span>)m);
+00681 }
+00682 list_move_tail(&m-><a class="code" href="structmap__node__stat.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o4">head</a>);
+00683 } <span class="keywordflow">else</span> {
+00684 m = (<span class="keyword">struct </span>map_node_stat *)
+00685 <a class="code" href="alloc_8h.html#a4">_stp_calloc</a>(<span class="keyword">sizeof</span>(<span class="keyword">struct</span> map_node_stat));
+00686 <span class="comment">/* add node to list */</span>
+00687 list_add_tail(&m-><a class="code" href="structmap__node__stat.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o4">head</a>);
+00688 }
+00689
+00690 <span class="comment">/* copy the key(s) */</span>
+00691 map_copy_keys(map, &m-><a class="code" href="structmap__node__stat.html#o0">n</a>);
+00692
+00693 <span class="comment">/* set the value */</span>
+00694 memcpy(&m-><a class="code" href="structmap__node__stat.html#o1">stats</a>, stats, <span class="keyword">sizeof</span>(<a class="code" href="structstat.html">stat</a>));
+00695 } <span class="keywordflow">else</span> {
+00696 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o6">key</a> == NULL)
+00697 <span class="keywordflow">return</span>;
+00698
+00699 <span class="keywordflow">if</span> (stats) {
+00700 m = (<span class="keyword">struct </span>map_node_stat *)map-><a class="code" href="structmap__root.html#o6">key</a>;
+00701 memcpy(&m-><a class="code" href="structmap__node__stat.html#o1">stats</a>, stats, <span class="keyword">sizeof</span>(<a class="code" href="structstat.html">stat</a>));
+00702 } <span class="keywordflow">else</span> {
+00703 <span class="comment">/* setting value to NULL is the same as deleting */</span>
+00704 <a class="code" href="map_8c.html#a5">_stp_map_key_del</a>(map);
+00705 }
+00706 }
+00707 }
+00708
+<a name="l00715"></a><a class="code" href="map_8c.html#a23">00715</a> <a class="code" href="structstat.html">stat</a> *<a class="code" href="map_8c.html#a23">_stp_map_get_stat</a>(<a class="code" href="structmap__root.html">MAP</a> map)
+00716 {
+00717 <span class="keyword">struct </span>map_node_stat *m;
+00718 <span class="keywordflow">if</span> (map == NULL || map-><a class="code" href="structmap__root.html#o7">create</a> || map-><a class="code" href="structmap__root.html#o6">key</a> == NULL)
+00719 <span class="keywordflow">return</span> NULL;
+00720 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"%lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o6">key</a>);
+00721 m = (<span class="keyword">struct </span>map_node_stat *)map-><a class="code" href="structmap__root.html#o6">key</a>;
+00722 <span class="keywordflow">return</span> &m-><a class="code" href="structmap__node__stat.html#o1">stats</a>;
+00723 }
+00724
+<a name="l00736"></a><a class="code" href="map_8c.html#a24">00736</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a24">_stp_map_stat_add</a>(<a class="code" href="structmap__root.html">MAP</a> map, int64_t val)
+00737 {
+00738 <span class="keyword">struct </span>map_node_stat *m;
+00739 <span class="keywordflow">if</span> (map == NULL)
+00740 <span class="keywordflow">return</span>;
00741
-<a name="l00753"></a><a class="code" href="map_8c.html#a23">00753</a> <a class="code" href="structmap__root.html">MAP</a> <a class="code" href="map_8c.html#a23">_stp_list_new</a>(<span class="keywordtype">unsigned</span> max_entries, <span class="keyword">enum</span> valtype type)
-00754 {
-00755 <a class="code" href="structmap__root.html">MAP</a> map = <a class="code" href="map_8c.html#a3">_stp_map_new</a> (max_entries, type);
-00756 map-><a class="code" href="structmap__root.html#o2">no_wrap</a> = 1;
-00757 <span class="keywordflow">return</span> map;
-00758 }
-00759
-<a name="l00765"></a><a class="code" href="map_8c.html#a24">00765</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a24">_stp_list_clear</a>(<a class="code" href="structmap__root.html">MAP</a> map)
-00766 {
-00767 <span class="keywordflow">if</span> (map == NULL)
-00768 <span class="keywordflow">return</span>;
-00769
-00770 <span class="keywordflow">if</span> (!list_empty(&map-><a class="code" href="structmap__root.html#o3">head</a>)) {
-00771 <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *ptr = (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)map-><a class="code" href="structmap__root.html#o3">head</a>.next;
-00772
-00773 <span class="keywordflow">while</span> (ptr && ptr != (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)&map-><a class="code" href="structmap__root.html#o3">head</a>) {
-00774 <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *next = (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)ptr-><a class="code" href="structmap__node.html#o0">lnode</a>.next;
-00775
-00776 <span class="comment">/* remove node from old hash list */</span>
-00777 hlist_del_init(&ptr-><a class="code" href="structmap__node.html#o1">hnode</a>);
-00778
-00779 <span class="comment">/* remove from entry list */</span>
-00780 list_del(&ptr-><a class="code" href="structmap__node.html#o0">lnode</a>);
-00781
-00782 <span class="comment">/* remove any allocated string storage */</span>
-00783 map_free_strings(map, ptr);
-00784
-00785 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o0">maxnum</a>)
-00786 list_add(&ptr-><a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o4">pool</a>);
-00787 <span class="keywordflow">else</span>
-00788 <a class="code" href="alloc_8h.html#a5">_stp_free</a>(ptr);
-00789
-00790 map-><a class="code" href="structmap__root.html#o1">num</a>--;
-00791 ptr = next;
-00792 }
-00793 }
-00794
-00795 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o1">num</a> != 0) {
-00796 <a class="code" href="io_8c.html#a0">dlog</a> (<span class="stringliteral">"ERROR: list is supposed to be empty (has %d)\n"</span>, map-><a class="code" href="structmap__root.html#o1">num</a>);
-00797 }
-00798 }
-00799
-<a name="l00805"></a><a class="code" href="map_8c.html#a25">00805</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a25">_stp_list_add_str</a>(<a class="code" href="structmap__root.html">MAP</a> map, <span class="keywordtype">char</span> *str)
-00806 {
-00807 <a class="code" href="map_8c.html#a14">_stp_map_key_long</a>(map, map-><a class="code" href="structmap__root.html#o1">num</a>);
-00808 <a class="code" href="map_8c.html#a18">_stp_map_set_str</a>(map, str);
-00809 }
-00810
-<a name="l00816"></a><a class="code" href="map_8c.html#a26">00816</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a26">_stp_list_add_int64</a>(<a class="code" href="structmap__root.html">MAP</a> map, int64_t val)
-00817 {
-00818 <a class="code" href="map_8c.html#a14">_stp_map_key_long</a>(map, map-><a class="code" href="structmap__root.html#o1">num</a>);
-00819 <a class="code" href="map_8c.html#a16">_stp_map_set_int64</a>(map, val);
-00820 }
-00821
-<a name="l00827"></a><a class="code" href="map_8c.html#a27">00827</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="map_8c.html#a27">_stp_list_size</a>(<a class="code" href="structmap__root.html">MAP</a> map)
-00828 {
-00829 <span class="keywordflow">return</span> map-><a class="code" href="structmap__root.html#o1">num</a>;
-00830 }
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+00742 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o7">create</a>) {
+00743 <a class="code" href="structstat.html">stat</a> st = { 1, val, val, val };
+00744 <span class="comment">/* histogram */</span>
+00745 <a class="code" href="map_8c.html#a22">_stp_map_set_stat</a>(map, &st);
+00746 <span class="keywordflow">return</span>;
+00747 }
+00748
+00749 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o6">key</a> == NULL)
+00750 <span class="keywordflow">return</span>;
+00751
+00752 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"add_stat %lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o6">key</a>);
+00753 m = (<span class="keyword">struct </span>map_node_stat *)map-><a class="code" href="structmap__root.html#o6">key</a>;
+00754 m-><a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o0">count</a>++;
+00755 m-><a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o1">sum</a> += val;
+00756 <span class="keywordflow">if</span> (val > m-><a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o3">max</a>)
+00757 m-><a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o3">max</a> = val;
+00758 <span class="keywordflow">if</span> (val < m->stats.min)
+00759 m-><a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o2">min</a> = val;
+00760 <span class="comment">/* histogram */</span>
+00761 }
+00762
+00763 <span class="comment">/********************** List Functions *********************/</span>
+00764
+<a name="l00776"></a><a class="code" href="map_8c.html#a25">00776</a> <a class="code" href="structmap__root.html">MAP</a> <a class="code" href="map_8c.html#a25">_stp_list_new</a>(<span class="keywordtype">unsigned</span> max_entries, <span class="keyword">enum</span> valtype type)
+00777 {
+00778 <a class="code" href="structmap__root.html">MAP</a> map = <a class="code" href="map_8c.html#a3">_stp_map_new</a> (max_entries, type);
+00779 map-><a class="code" href="structmap__root.html#o3">no_wrap</a> = 1;
+00780 <span class="keywordflow">return</span> map;
+00781 }
+00782
+<a name="l00788"></a><a class="code" href="map_8c.html#a26">00788</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a26">_stp_list_clear</a>(<a class="code" href="structmap__root.html">MAP</a> map)
+00789 {
+00790 <span class="keywordflow">if</span> (map == NULL)
+00791 <span class="keywordflow">return</span>;
+00792
+00793 <span class="keywordflow">if</span> (!list_empty(&map-><a class="code" href="structmap__root.html#o4">head</a>)) {
+00794 <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *ptr = (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)map-><a class="code" href="structmap__root.html#o4">head</a>.next;
+00795
+00796 <span class="keywordflow">while</span> (ptr && ptr != (<span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *)&map-><a class="code" href="structmap__root.html#o4">head</a>) {
+00797 <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *next = (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)ptr-><a class="code" href="structmap__node.html#o0">lnode</a>.next;
+00798
+00799 <span class="comment">/* remove node from old hash list */</span>
+00800 hlist_del_init(&ptr-><a class="code" href="structmap__node.html#o1">hnode</a>);
+00801
+00802 <span class="comment">/* remove from entry list */</span>
+00803 list_del(&ptr-><a class="code" href="structmap__node.html#o0">lnode</a>);
+00804
+00805 <span class="comment">/* remove any allocated string storage */</span>
+00806 map_free_strings(map, ptr);
+00807
+00808 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o1">maxnum</a>)
+00809 list_add(&ptr-><a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o5">pool</a>);
+00810 <span class="keywordflow">else</span>
+00811 <a class="code" href="alloc_8h.html#a6">_stp_free</a>(ptr);
+00812
+00813 map-><a class="code" href="structmap__root.html#o2">num</a>--;
+00814 ptr = next;
+00815 }
+00816 }
+00817
+00818 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o2">num</a> != 0) {
+00819 <a class="code" href="io_8c.html#a4">dlog</a> (<span class="stringliteral">"ERROR: list is supposed to be empty (has %d)\n"</span>, map-><a class="code" href="structmap__root.html#o2">num</a>);
+00820 }
+00821 }
+00822
+<a name="l00828"></a><a class="code" href="map_8c.html#a27">00828</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a27">_stp_list_add_str</a>(<a class="code" href="structmap__root.html">MAP</a> map, <span class="keywordtype">char</span> *str)
+00829 {
+00830 <a class="code" href="map_8c.html#a14">_stp_map_key_long</a>(map, map-><a class="code" href="structmap__root.html#o2">num</a>);
+00831 <a class="code" href="map_8c.html#a20">_stp_map_set_str</a>(map, str);
+00832 }
+00833
+<a name="l00839"></a><a class="code" href="map_8c.html#a28">00839</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a28">_stp_list_add_int64</a>(<a class="code" href="structmap__root.html">MAP</a> map, int64_t val)
+00840 {
+00841 <a class="code" href="map_8c.html#a14">_stp_map_key_long</a>(map, map-><a class="code" href="structmap__root.html#o2">num</a>);
+00842 <a class="code" href="map_8c.html#a17">_stp_map_set_int64</a>(map, val);
+00843 }
+00844
+<a name="l00850"></a><a class="code" href="map_8c.html#a29">00850</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="map_8c.html#a29">_stp_list_size</a>(<a class="code" href="structmap__root.html">MAP</a> map)
+00851 {
+00852 <span class="keywordflow">return</span> map-><a class="code" href="structmap__root.html#o2">num</a>;
+00853 }
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>map.c File Reference</h1>
<p>
<a href="map_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a14">_stp_map_key_long</a> (<a class="el" href="structmap__root.html">MAP</a> map, long key)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the map's key to a long. <a href="#a14"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a16">_stp_map_set_int64</a> (<a class="el" href="structmap__root.html">MAP</a> map, int64_t val)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a17">_stp_map_set_int64</a> (<a class="el" href="structmap__root.html">MAP</a> map, int64_t val)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the current element's value to an int64. <a href="#a16"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a17">_stp_map_get_int64</a> (<a class="el" href="structmap__root.html">MAP</a> map)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the current element's value to an int64. <a href="#a17"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a18">_stp_map_add_int64</a> (<a class="el" href="structmap__root.html">MAP</a> map, int64_t val)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the current element's value. <a href="#a17"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a18">_stp_map_set_str</a> (<a class="el" href="structmap__root.html">MAP</a> map, char *val)</td></tr>
-
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the current element's value to a string. <a href="#a18"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a19">_stp_map_get_str</a> (<a class="el" href="structmap__root.html">MAP</a> map)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Adds an int64 to the current element's value. <a href="#a18"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a19">_stp_map_get_int64</a> (<a class="el" href="structmap__root.html">MAP</a> map)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the current element's value. <a href="#a19"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a20">_stp_map_set_stat</a> (<a class="el" href="structmap__root.html">MAP</a> map, <a class="el" href="structstat.html">stat</a> *stats)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a20">_stp_map_set_str</a> (<a class="el" href="structmap__root.html">MAP</a> map, char *val)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the current element's value to a stat. <a href="#a20"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structstat.html">stat</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a21">_stp_map_get_stat</a> (<a class="el" href="structmap__root.html">MAP</a> map)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the current element's value to a string. <a href="#a20"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a21">_stp_map_get_str</a> (<a class="el" href="structmap__root.html">MAP</a> map)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the current element's value. <a href="#a21"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a22">_stp_map_stat_add</a> (<a class="el" href="structmap__root.html">MAP</a> map, int64_t val)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a22">_stp_map_set_stat</a> (<a class="el" href="structmap__root.html">MAP</a> map, <a class="el" href="structstat.html">stat</a> *stats)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the current element's value to a stat. <a href="#a22"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structstat.html">stat</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a23">_stp_map_get_stat</a> (<a class="el" href="structmap__root.html">MAP</a> map)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the current element's value. <a href="#a23"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a24">_stp_map_stat_add</a> (<a class="el" href="structmap__root.html">MAP</a> map, int64_t val)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Add to the current element's statistics. <a href="#a22"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structmap__root.html">MAP</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a23">_stp_list_new</a> (unsigned max_entries, enum <a class="el" href="map_8h.html#a19">valtype</a> type)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Add to the current element's statistics. <a href="#a24"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structmap__root.html">MAP</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a25">_stp_list_new</a> (unsigned max_entries, enum <a class="el" href="map_8h.html#a19">valtype</a> type)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new list. <a href="#a23"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a24">_stp_list_clear</a> (<a class="el" href="structmap__root.html">MAP</a> map)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new list. <a href="#a25"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a26">_stp_list_clear</a> (<a class="el" href="structmap__root.html">MAP</a> map)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Clears a list. <a href="#a24"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a25">_stp_list_add_str</a> (<a class="el" href="structmap__root.html">MAP</a> map, char *str)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Clears a list. <a href="#a26"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a27">_stp_list_add_str</a> (<a class="el" href="structmap__root.html">MAP</a> map, char *str)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Adds a string to a list. <a href="#a25"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a26">_stp_list_add_int64</a> (<a class="el" href="structmap__root.html">MAP</a> map, int64_t val)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Adds a string to a list. <a href="#a27"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a28">_stp_list_add_int64</a> (<a class="el" href="structmap__root.html">MAP</a> map, int64_t val)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Adds an int64 to a list. <a href="#a26"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a27">_stp_list_size</a> (<a class="el" href="structmap__root.html">MAP</a> map)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Adds an int64 to a list. <a href="#a28"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a29">_stp_list_size</a> (<a class="el" href="structmap__root.html">MAP</a> map)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the number of elements in a list. <a href="#a27"></a><br></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the number of elements in a list. <a href="#a29"></a><br></td></tr>
</table>
<hr><h2>Function Documentation</h2>
-<a class="anchor" name="a26" doxytag="map.c::_stp_list_add_int64"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="a28" doxytag="map.c::_stp_list_add_int64"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
</dl>
<p>
-Definition at line <a class="el" href="map_8c-source.html#l00816">816</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
+Definition at line <a class="el" href="map_8c-source.html#l00839">839</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="map_8c-source.html#l00415">_stp_map_key_long()</a>, <a class="el" href="map_8c-source.html#l00471">_stp_map_set_int64()</a>, <a class="el" href="map_8h-source.html#l00084">MAP</a>, and <a class="el" href="map_8h-source.html#l00053">map_root::num</a>. </td>
+References <a class="el" href="map_8c-source.html#l00415">_stp_map_key_long()</a>, <a class="el" href="map_8c-source.html#l00525">_stp_map_set_int64()</a>, and <a class="el" href="map_8h-source.html#l00053">map_root::num</a>. </td>
</tr>
</table>
-<a class="anchor" name="a25" doxytag="map.c::_stp_list_add_str"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="a27" doxytag="map.c::_stp_list_add_str"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
</dl>
<p>
-Definition at line <a class="el" href="map_8c-source.html#l00805">805</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
+Definition at line <a class="el" href="map_8c-source.html#l00828">828</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="map_8c-source.html#l00415">_stp_map_key_long()</a>, <a class="el" href="map_8c-source.html#l00548">_stp_map_set_str()</a>, <a class="el" href="map_8h-source.html#l00084">MAP</a>, and <a class="el" href="map_8h-source.html#l00053">map_root::num</a>.
+References <a class="el" href="map_8c-source.html#l00415">_stp_map_key_long()</a>, <a class="el" href="map_8c-source.html#l00571">_stp_map_set_str()</a>, and <a class="el" href="map_8h-source.html#l00053">map_root::num</a>.
<p>
Referenced by <a class="el" href="copy_8c-source.html#l00115">_stp_copy_argv_from_user()</a>. </td>
</tr>
</table>
-<a class="anchor" name="a24" doxytag="map.c::_stp_list_clear"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="a26" doxytag="map.c::_stp_list_clear"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
</dl>
<p>
-Definition at line <a class="el" href="map_8c-source.html#l00765">765</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
+Definition at line <a class="el" href="map_8c-source.html#l00788">788</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="alloc_8h-source.html#l00057">_stp_free()</a>, <a class="el" href="io_8c-source.html#l00011">dlog()</a>, <a class="el" href="map_8h-source.html#l00059">map_root::head</a>, <a class="el" href="map_8h-source.html#l00022">map_node::hnode</a>, <a class="el" href="map_8h-source.html#l00021">map_node::lnode</a>, <a class="el" href="map_8h-source.html#l00084">MAP</a>, <a class="el" href="map_8h-source.html#l00050">map_root::maxnum</a>, <a class="el" href="map_8h-source.html#l00053">map_root::num</a>, and <a class="el" href="map_8h-source.html#l00063">map_root::pool</a>. </td>
+References <a class="el" href="alloc_8h-source.html#l00057">_stp_free()</a>, <a class="el" href="io_8c-source.html#l00011">dlog()</a>, <a class="el" href="map_8h-source.html#l00059">map_root::head</a>, <a class="el" href="map_8h-source.html#l00022">map_node::hnode</a>, <a class="el" href="map_8h-source.html#l00021">map_node::lnode</a>, <a class="el" href="map_8h-source.html#l00050">map_root::maxnum</a>, <a class="el" href="map_8h-source.html#l00053">map_root::num</a>, and <a class="el" href="map_8h-source.html#l00063">map_root::pool</a>. </td>
</tr>
</table>
-<a class="anchor" name="a23" doxytag="map.c::_stp_list_new"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="a25" doxytag="map.c::_stp_list_new"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="map_8h.html#a8">foreach</a> </dd></dl>
<p>
-Definition at line <a class="el" href="map_8c-source.html#l00753">753</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
+Definition at line <a class="el" href="map_8c-source.html#l00776">776</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="map_8c-source.html#l00043">_stp_map_new()</a>, <a class="el" href="map_8h-source.html#l00084">MAP</a>, and <a class="el" href="map_8h-source.html#l00056">map_root::no_wrap</a>. </td>
+References <a class="el" href="map_8c-source.html#l00043">_stp_map_new()</a>, and <a class="el" href="map_8h-source.html#l00056">map_root::no_wrap</a>. </td>
</tr>
</table>
-<a class="anchor" name="a27" doxytag="map.c::_stp_list_size"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="a29" doxytag="map.c::_stp_list_size"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<dl compact><dt><b>Returns:</b></dt><dd>The number of elements in a list. </dd></dl>
<p>
-Definition at line <a class="el" href="map_8c-source.html#l00827">827</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
+Definition at line <a class="el" href="map_8c-source.html#l00850">850</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="map_8h-source.html#l00084">MAP</a>, and <a class="el" href="map_8h-source.html#l00053">map_root::num</a>. </td>
+References <a class="el" href="map_8h-source.html#l00053">map_root::num</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a18" doxytag="map.c::_stp_map_add_int64"></a><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 _stp_map_add_int64 </td>
+ <td class="md" valign="top">( </td>
+ <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td>
+ <td class="mdname" nowrap> <em>map</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>int64_t </td>
+ <td class="mdname" nowrap> <em>val</em></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">) </td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+
+ </td>
+ <td>
+
+<p>
+Adds an int64 to the current element's value.
+<p>
+This adds an int64 to the current element's value. The map must have been created to hold int64s using <a class="el" href="map_8c.html#a3">_stp_map_new()</a><p>
+If the element doesn't exist, it is created. If no current element (key) is set for the map, this function does nothing. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>value </td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="map_8c-source.html#l00541">541</a> of file <a class="el" href="map_8c-source.html">map.c</a>. </td>
</tr>
</table>
<a class="anchor" name="a8" doxytag="map.c::_stp_map_del"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8c-source.html#l00190">190</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="alloc_8h-source.html#l00067">_stp_vfree()</a>, <a class="el" href="map_8h-source.html#l00059">map_root::head</a>, <a class="el" href="map_8h-source.html#l00021">map_node::lnode</a>, <a class="el" href="map_8h-source.html#l00084">MAP</a>, and <a class="el" href="map_8h-source.html#l00081">map_root::membuf</a>. </td>
+References <a class="el" href="alloc_8h-source.html#l00067">_stp_vfree()</a>, <a class="el" href="map_8h-source.html#l00059">map_root::head</a>, <a class="el" href="map_8h-source.html#l00021">map_node::lnode</a>, and <a class="el" href="map_8h-source.html#l00081">map_root::membuf</a>. </td>
</tr>
</table>
-<a class="anchor" name="a17" doxytag="map.c::_stp_map_get_int64"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="a19" doxytag="map.c::_stp_map_get_int64"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<dl compact><dt><b>Returns:</b></dt><dd>The value. If the current element is not set or doesn't exist, returns 0. </dd></dl>
<p>
-Definition at line <a class="el" href="map_8c-source.html#l00528">528</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
+Definition at line <a class="el" href="map_8c-source.html#l00551">551</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00017">dbug</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, <a class="el" href="map_8h-source.html#l00084">MAP</a>, and <a class="el" href="map_8h-source.html#l00032">map_node_int64::val</a>. </td>
+References <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00020">dbug</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, and <a class="el" href="map_8h-source.html#l00032">map_node_int64::val</a>. </td>
</tr>
</table>
-<a class="anchor" name="a21" doxytag="map.c::_stp_map_get_stat"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="a23" doxytag="map.c::_stp_map_get_stat"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<dl compact><dt><b>Returns:</b></dt><dd>A pointer to the stats struct. If the current element is not set or doesn't exist, returns NULL. </dd></dl>
<p>
-Definition at line <a class="el" href="map_8c-source.html#l00692">692</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
+Definition at line <a class="el" href="map_8c-source.html#l00715">715</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00017">dbug</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, <a class="el" href="map_8h-source.html#l00084">MAP</a>, and <a class="el" href="map_8h-source.html#l00042">map_node_stat::stats</a>. </td>
+References <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00020">dbug</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, and <a class="el" href="map_8h-source.html#l00042">map_node_stat::stats</a>. </td>
</tr>
</table>
-<a class="anchor" name="a19" doxytag="map.c::_stp_map_get_str"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="a21" doxytag="map.c::_stp_map_get_str"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<dl compact><dt><b>Returns:</b></dt><dd>A string pointer. If the current element is not set or doesn't exist, returns NULL. </dd></dl>
<p>
-Definition at line <a class="el" href="map_8c-source.html#l00609">609</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
+Definition at line <a class="el" href="map_8c-source.html#l00632">632</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00017">dbug</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, <a class="el" href="map_8h-source.html#l00084">MAP</a>, and <a class="el" href="map_8h-source.html#l00037">map_node_str::str</a>. </td>
+References <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00020">dbug</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, and <a class="el" href="map_8h-source.html#l00037">map_node_str::str</a>. </td>
</tr>
</table>
<a class="anchor" name="a7" doxytag="map.c::_stp_map_iter"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8c-source.html#l00172">172</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="runtime_8h-source.html#l00017">dbug</a>, <a class="el" href="map_8h-source.html#l00059">map_root::head</a>, <a class="el" href="map_8h-source.html#l00021">map_node::lnode</a>, and <a class="el" href="map_8h-source.html#l00084">MAP</a>. </td>
+References <a class="el" href="runtime_8h-source.html#l00020">dbug</a>, <a class="el" href="map_8h-source.html#l00059">map_root::head</a>, and <a class="el" href="map_8h-source.html#l00021">map_node::lnode</a>. </td>
</tr>
</table>
<a class="anchor" name="a5" doxytag="map.c::_stp_map_key_del"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8c-source.html#l00104">104</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="alloc_8h-source.html#l00057">_stp_free()</a>, <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00017">dbug</a>, <a class="el" href="map_8h-source.html#l00022">map_node::hnode</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, <a class="el" href="map_8h-source.html#l00021">map_node::lnode</a>, <a class="el" href="map_8h-source.html#l00084">MAP</a>, <a class="el" href="map_8h-source.html#l00050">map_root::maxnum</a>, <a class="el" href="map_8h-source.html#l00053">map_root::num</a>, and <a class="el" href="map_8h-source.html#l00063">map_root::pool</a>.
+References <a class="el" href="alloc_8h-source.html#l00057">_stp_free()</a>, <a class="el" href="runtime_8h-source.html#l00020">dbug</a>, <a class="el" href="map_8h-source.html#l00022">map_node::hnode</a>, and <a class="el" href="map_8h-source.html#l00021">map_node::lnode</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00471">_stp_map_set_int64()</a>, <a class="el" href="map_8c-source.html#l00633">_stp_map_set_stat()</a>, and <a class="el" href="map_8c-source.html#l00548">_stp_map_set_str()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00656">_stp_map_set_stat()</a>, and <a class="el" href="map_8c-source.html#l00571">_stp_map_set_str()</a>. </td>
</tr>
</table>
<a class="anchor" name="a14" doxytag="map.c::_stp_map_key_long"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8c-source.html#l00415">415</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="map_8c-source.html#l00218">_stp_map_key_long_long()</a>, and <a class="el" href="map_8h-source.html#l00084">MAP</a>.
+References <a class="el" href="map_8c-source.html#l00218">_stp_map_key_long_long()</a>, <a class="el" href="map_8h-source.html#l00072">map_root::c_key2type</a>, and <a class="el" href="map_8h.html#a18a11">NONE</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00816">_stp_list_add_int64()</a>, and <a class="el" href="map_8c-source.html#l00805">_stp_list_add_str()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00839">_stp_list_add_int64()</a>, and <a class="el" href="map_8c-source.html#l00828">_stp_list_add_str()</a>. </td>
</tr>
</table>
<a class="anchor" name="a9" doxytag="map.c::_stp_map_key_long_long"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8c-source.html#l00218">218</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="map_8h-source.html#l00074">map_root::c_key1</a>, <a class="el" href="map_8h-source.html#l00075">map_root::c_key2</a>, <a class="el" href="map_8h-source.html#l00073">map_root::c_keyhead</a>, <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00017">dbug</a>, <a class="el" href="map_8h-source.html#l00078">map_root::hashes</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, <a class="el" href="map_8h-source.html#l00023">map_node::key1</a>, <a class="el" href="map_8h-source.html#l00084">MAP</a>, and <a class="el" href="map_8h-source.html#l00012">key_data::val</a>.
+References <a class="el" href="map_8h-source.html#l00074">map_root::c_key1</a>, <a class="el" href="map_8h-source.html#l00071">map_root::c_key1type</a>, <a class="el" href="map_8h-source.html#l00075">map_root::c_key2</a>, <a class="el" href="map_8h-source.html#l00072">map_root::c_key2type</a>, <a class="el" href="map_8h-source.html#l00073">map_root::c_keyhead</a>, <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00020">dbug</a>, <a class="el" href="map_8h-source.html#l00078">map_root::hashes</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, <a class="el" href="map_8h-source.html#l00023">map_node::key1</a>, <a class="el" href="map_8h.html#a18a12">LONG</a>, and <a class="el" href="map_8h-source.html#l00012">key_data::val</a>.
<p>
Referenced by <a class="el" href="map_8c-source.html#l00415">_stp_map_key_long()</a>. </td>
</tr>
</table>
<a class="anchor" name="a12" doxytag="map.c::_stp_map_key_long_str"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8c-source.html#l00358">358</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="map_8h-source.html#l00074">map_root::c_key1</a>, <a class="el" href="map_8h-source.html#l00075">map_root::c_key2</a>, <a class="el" href="map_8h-source.html#l00073">map_root::c_keyhead</a>, <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00017">dbug</a>, <a class="el" href="map_8h-source.html#l00078">map_root::hashes</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, <a class="el" href="map_8h-source.html#l00023">map_node::key1</a>, <a class="el" href="map_8h-source.html#l00024">map_node::key2</a>, <a class="el" href="map_8h-source.html#l00084">MAP</a>, <a class="el" href="map_8h-source.html#l00013">key_data::str</a>, and <a class="el" href="map_8h-source.html#l00012">key_data::val</a>. </td>
+References <a class="el" href="map_8h-source.html#l00074">map_root::c_key1</a>, <a class="el" href="map_8h-source.html#l00071">map_root::c_key1type</a>, <a class="el" href="map_8h-source.html#l00075">map_root::c_key2</a>, <a class="el" href="map_8h-source.html#l00072">map_root::c_key2type</a>, <a class="el" href="map_8h-source.html#l00073">map_root::c_keyhead</a>, <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00020">dbug</a>, <a class="el" href="map_8h-source.html#l00078">map_root::hashes</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, <a class="el" href="map_8h-source.html#l00023">map_node::key1</a>, <a class="el" href="map_8h-source.html#l00024">map_node::key2</a>, <a class="el" href="map_8h.html#a18a12">LONG</a>, <a class="el" href="map_8h.html#a18a13">STR</a>, <a class="el" href="map_8h-source.html#l00013">key_data::str</a>, and <a class="el" href="map_8h-source.html#l00012">key_data::val</a>. </td>
</tr>
</table>
<a class="anchor" name="a13" doxytag="map.c::_stp_map_key_str"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8c-source.html#l00399">399</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="map_8c-source.html#l00261">_stp_map_key_str_str()</a>, and <a class="el" href="map_8h-source.html#l00084">MAP</a>. </td>
+References <a class="el" href="map_8c-source.html#l00261">_stp_map_key_str_str()</a>, <a class="el" href="map_8h-source.html#l00072">map_root::c_key2type</a>, and <a class="el" href="map_8h.html#a18a11">NONE</a>. </td>
</tr>
</table>
<a class="anchor" name="a11" doxytag="map.c::_stp_map_key_str_long"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8c-source.html#l00310">310</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="map_8h-source.html#l00074">map_root::c_key1</a>, <a class="el" href="map_8h-source.html#l00075">map_root::c_key2</a>, <a class="el" href="map_8h-source.html#l00073">map_root::c_keyhead</a>, <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00017">dbug</a>, <a class="el" href="map_8h-source.html#l00078">map_root::hashes</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, <a class="el" href="map_8h-source.html#l00023">map_node::key1</a>, <a class="el" href="map_8h-source.html#l00024">map_node::key2</a>, <a class="el" href="map_8h-source.html#l00084">MAP</a>, <a class="el" href="map_8h-source.html#l00013">key_data::str</a>, and <a class="el" href="map_8h-source.html#l00012">key_data::val</a>. </td>
+References <a class="el" href="map_8h-source.html#l00074">map_root::c_key1</a>, <a class="el" href="map_8h-source.html#l00071">map_root::c_key1type</a>, <a class="el" href="map_8h-source.html#l00075">map_root::c_key2</a>, <a class="el" href="map_8h-source.html#l00072">map_root::c_key2type</a>, <a class="el" href="map_8h-source.html#l00073">map_root::c_keyhead</a>, <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00020">dbug</a>, <a class="el" href="map_8h-source.html#l00078">map_root::hashes</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, <a class="el" href="map_8h-source.html#l00023">map_node::key1</a>, <a class="el" href="map_8h-source.html#l00024">map_node::key2</a>, <a class="el" href="map_8h.html#a18a12">LONG</a>, <a class="el" href="map_8h.html#a18a13">STR</a>, <a class="el" href="map_8h-source.html#l00013">key_data::str</a>, and <a class="el" href="map_8h-source.html#l00012">key_data::val</a>. </td>
</tr>
</table>
<a class="anchor" name="a10" doxytag="map.c::_stp_map_key_str_str"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8c-source.html#l00261">261</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="map_8h-source.html#l00074">map_root::c_key1</a>, <a class="el" href="map_8h-source.html#l00075">map_root::c_key2</a>, <a class="el" href="map_8h-source.html#l00073">map_root::c_keyhead</a>, <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00017">dbug</a>, <a class="el" href="map_8h-source.html#l00078">map_root::hashes</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, <a class="el" href="map_8h-source.html#l00023">map_node::key1</a>, <a class="el" href="map_8h-source.html#l00024">map_node::key2</a>, <a class="el" href="map_8h-source.html#l00084">MAP</a>, and <a class="el" href="map_8h-source.html#l00013">key_data::str</a>.
+References <a class="el" href="map_8h-source.html#l00074">map_root::c_key1</a>, <a class="el" href="map_8h-source.html#l00071">map_root::c_key1type</a>, <a class="el" href="map_8h-source.html#l00075">map_root::c_key2</a>, <a class="el" href="map_8h-source.html#l00072">map_root::c_key2type</a>, <a class="el" href="map_8h-source.html#l00073">map_root::c_keyhead</a>, <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00020">dbug</a>, <a class="el" href="map_8h-source.html#l00078">map_root::hashes</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, <a class="el" href="map_8h-source.html#l00023">map_node::key1</a>, <a class="el" href="map_8h-source.html#l00024">map_node::key2</a>, <a class="el" href="map_8h.html#a18a13">STR</a>, and <a class="el" href="map_8h-source.html#l00013">key_data::str</a>.
<p>
Referenced by <a class="el" href="map_8c-source.html#l00399">_stp_map_key_str()</a>. </td>
</tr>
</table>
<a class="anchor" name="a3" doxytag="map.c::_stp_map_new"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8c-source.html#l00043">43</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="alloc_8h-source.html#l00043">_stp_valloc()</a>, <a class="el" href="runtime_8h-source.html#l00017">dbug</a>, <a class="el" href="map_8h-source.html#l00059">map_root::head</a>, <a class="el" href="map_8h-source.html#l00084">MAP</a>, <a class="el" href="map_8h-source.html#l00050">map_root::maxnum</a>, <a class="el" href="map_8h-source.html#l00081">map_root::membuf</a>, and <a class="el" href="map_8h-source.html#l00063">map_root::pool</a>.
+References <a class="el" href="alloc_8h-source.html#l00043">_stp_valloc()</a>, <a class="el" href="runtime_8h-source.html#l00020">dbug</a>, <a class="el" href="map_8h.html#a19a17">END</a>, <a class="el" href="map_8h-source.html#l00059">map_root::head</a>, <a class="el" href="map_8h-source.html#l00050">map_root::maxnum</a>, <a class="el" href="map_8h-source.html#l00081">map_root::membuf</a>, <a class="el" href="map_8h-source.html#l00063">map_root::pool</a>, and <a class="el" href="map_8h-source.html#l00047">map_root::type</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00753">_stp_list_new()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00776">_stp_list_new()</a>. </td>
</tr>
</table>
-<a class="anchor" name="a16" doxytag="map.c::_stp_map_set_int64"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="a17" doxytag="map.c::_stp_map_set_int64"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
</dl>
<p>
-Definition at line <a class="el" href="map_8c-source.html#l00471">471</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
-<p>
-References <a class="el" href="alloc_8h-source.html#l00028">_stp_calloc()</a>, <a class="el" href="map_8c-source.html#l00104">_stp_map_key_del()</a>, <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00017">dbug</a>, <a class="el" href="map_8h-source.html#l00059">map_root::head</a>, <a class="el" href="map_8h-source.html#l00022">map_node::hnode</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, <a class="el" href="map_8h-source.html#l00021">map_node::lnode</a>, <a class="el" href="map_8h-source.html#l00084">MAP</a>, <a class="el" href="map_8h-source.html#l00050">map_root::maxnum</a>, <a class="el" href="map_8h-source.html#l00031">map_node_int64::n</a>, <a class="el" href="map_8h-source.html#l00056">map_root::no_wrap</a>, <a class="el" href="map_8h-source.html#l00063">map_root::pool</a>, and <a class="el" href="map_8h-source.html#l00032">map_node_int64::val</a>.
+Definition at line <a class="el" href="map_8c-source.html#l00525">525</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00816">_stp_list_add_int64()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00839">_stp_list_add_int64()</a>. </td>
</tr>
</table>
-<a class="anchor" name="a20" doxytag="map.c::_stp_map_set_stat"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="a22" doxytag="map.c::_stp_map_set_stat"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Set the current element's value to a stat.
<p>
-This sets the current element's value to an stat struct. The map must have been created to hold stats using <em>_stp_map_new(xxx, STAT)</em>. This function would only be used if we wanted to set stats to something other than the normal initial values (count = 0, sum = 0, etc). It may be deleted if it doesn't turn out to be useful. <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="map_8c.html#a22">_stp_map_stat_add</a></dd></dl>
+This sets the current element's value to an stat struct. The map must have been created to hold stats using <em>_stp_map_new(xxx, STAT)</em>. This function would only be used if we wanted to set stats to something other than the normal initial values (count = 0, sum = 0, etc). It may be deleted if it doesn't turn out to be useful. <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="map_8c.html#a24">_stp_map_stat_add</a></dd></dl>
If the element doesn't exist, it is created. If no current element (key) is set for the map, this function does nothing. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr>
<dl compact><dt><b><a class="el" href="todo.html#_todo000002">Todo:</a></b></dt><dd>Histograms don't work yet. </dd></dl>
<p>
-Definition at line <a class="el" href="map_8c-source.html#l00633">633</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
+Definition at line <a class="el" href="map_8c-source.html#l00656">656</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="alloc_8h-source.html#l00028">_stp_calloc()</a>, <a class="el" href="map_8c-source.html#l00104">_stp_map_key_del()</a>, <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00017">dbug</a>, <a class="el" href="map_8h-source.html#l00059">map_root::head</a>, <a class="el" href="map_8h-source.html#l00022">map_node::hnode</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, <a class="el" href="map_8h-source.html#l00021">map_node::lnode</a>, <a class="el" href="map_8h-source.html#l00084">MAP</a>, <a class="el" href="map_8h-source.html#l00050">map_root::maxnum</a>, <a class="el" href="map_8h-source.html#l00041">map_node_stat::n</a>, <a class="el" href="map_8h-source.html#l00056">map_root::no_wrap</a>, <a class="el" href="map_8h-source.html#l00063">map_root::pool</a>, and <a class="el" href="map_8h-source.html#l00042">map_node_stat::stats</a>.
+References <a class="el" href="alloc_8h-source.html#l00028">_stp_calloc()</a>, <a class="el" href="map_8c-source.html#l00104">_stp_map_key_del()</a>, <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00020">dbug</a>, <a class="el" href="map_8h-source.html#l00059">map_root::head</a>, <a class="el" href="map_8h-source.html#l00022">map_node::hnode</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, <a class="el" href="map_8h-source.html#l00021">map_node::lnode</a>, <a class="el" href="map_8h-source.html#l00050">map_root::maxnum</a>, <a class="el" href="map_8h-source.html#l00041">map_node_stat::n</a>, <a class="el" href="map_8h-source.html#l00056">map_root::no_wrap</a>, <a class="el" href="map_8h-source.html#l00063">map_root::pool</a>, and <a class="el" href="map_8h-source.html#l00042">map_node_stat::stats</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00713">_stp_map_stat_add()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00736">_stp_map_stat_add()</a>. </td>
</tr>
</table>
-<a class="anchor" name="a18" doxytag="map.c::_stp_map_set_str"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="a20" doxytag="map.c::_stp_map_set_str"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
</dl>
<p>
-Definition at line <a class="el" href="map_8c-source.html#l00548">548</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
+Definition at line <a class="el" href="map_8c-source.html#l00571">571</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="alloc_8h-source.html#l00012">_stp_alloc()</a>, <a class="el" href="alloc_8h-source.html#l00028">_stp_calloc()</a>, <a class="el" href="alloc_8h-source.html#l00057">_stp_free()</a>, <a class="el" href="map_8c-source.html#l00104">_stp_map_key_del()</a>, <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00017">dbug</a>, <a class="el" href="map_8h-source.html#l00059">map_root::head</a>, <a class="el" href="map_8h-source.html#l00022">map_node::hnode</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, <a class="el" href="map_8h-source.html#l00021">map_node::lnode</a>, <a class="el" href="map_8h-source.html#l00084">MAP</a>, <a class="el" href="map_8h-source.html#l00050">map_root::maxnum</a>, <a class="el" href="map_8h-source.html#l00036">map_node_str::n</a>, <a class="el" href="map_8h-source.html#l00056">map_root::no_wrap</a>, <a class="el" href="map_8h-source.html#l00063">map_root::pool</a>, and <a class="el" href="map_8h-source.html#l00037">map_node_str::str</a>.
+References <a class="el" href="alloc_8h-source.html#l00012">_stp_alloc()</a>, <a class="el" href="alloc_8h-source.html#l00028">_stp_calloc()</a>, <a class="el" href="alloc_8h-source.html#l00057">_stp_free()</a>, <a class="el" href="map_8c-source.html#l00104">_stp_map_key_del()</a>, <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00020">dbug</a>, <a class="el" href="map_8h-source.html#l00059">map_root::head</a>, <a class="el" href="map_8h-source.html#l00022">map_node::hnode</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, <a class="el" href="map_8h-source.html#l00021">map_node::lnode</a>, <a class="el" href="map_8h-source.html#l00050">map_root::maxnum</a>, <a class="el" href="map_8h-source.html#l00036">map_node_str::n</a>, <a class="el" href="map_8h-source.html#l00056">map_root::no_wrap</a>, <a class="el" href="map_8h-source.html#l00063">map_root::pool</a>, and <a class="el" href="map_8h-source.html#l00037">map_node_str::str</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00805">_stp_list_add_str()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00828">_stp_list_add_str()</a>. </td>
</tr>
</table>
<a class="anchor" name="a6" doxytag="map.c::_stp_map_start"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8c-source.html#l00149">149</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="runtime_8h-source.html#l00017">dbug</a>, <a class="el" href="map_8h-source.html#l00059">map_root::head</a>, and <a class="el" href="map_8h-source.html#l00084">MAP</a>. </td>
+References <a class="el" href="runtime_8h-source.html#l00020">dbug</a>, and <a class="el" href="map_8h-source.html#l00059">map_root::head</a>. </td>
</tr>
</table>
-<a class="anchor" name="a22" doxytag="map.c::_stp_map_stat_add"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="a24" doxytag="map.c::_stp_map_stat_add"></a><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<dl compact><dt><b><a class="el" href="todo.html#_todo000003">Todo:</a></b></dt><dd>Histograms don't work yet. </dd></dl>
<p>
-Definition at line <a class="el" href="map_8c-source.html#l00713">713</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
+Definition at line <a class="el" href="map_8c-source.html#l00736">736</a> of file <a class="el" href="map_8c-source.html">map.c</a>.
<p>
-References <a class="el" href="map_8c-source.html#l00633">_stp_map_set_stat()</a>, <a class="el" href="map_8h-source.html#l00005">stat::count</a>, <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00017">dbug</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, <a class="el" href="map_8h-source.html#l00084">MAP</a>, <a class="el" href="map_8h-source.html#l00007">stat::max</a>, <a class="el" href="map_8h-source.html#l00007">stat::min</a>, <a class="el" href="map_8h-source.html#l00042">map_node_stat::stats</a>, and <a class="el" href="map_8h-source.html#l00006">stat::sum</a>. </td>
+References <a class="el" href="map_8c-source.html#l00656">_stp_map_set_stat()</a>, <a class="el" href="map_8h-source.html#l00005">stat::count</a>, <a class="el" href="map_8h-source.html#l00070">map_root::create</a>, <a class="el" href="runtime_8h-source.html#l00020">dbug</a>, <a class="el" href="map_8h-source.html#l00066">map_root::key</a>, <a class="el" href="map_8h-source.html#l00007">stat::max</a>, <a class="el" href="map_8h-source.html#l00007">stat::min</a>, <a class="el" href="map_8h-source.html#l00042">map_node_stat::stats</a>, and <a class="el" href="map_8h-source.html#l00006">stat::sum</a>. </td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>map.h</h1><a href="map_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 <span class="comment">/* -*- linux-c -*- */</span>
00002 <span class="preprocessor">#include <linux/types.h></span>
00003
00009 } <a class="code" href="structstat.html">stat</a>;
00010
<a name="l00011"></a><a class="code" href="unionkey__data.html">00011</a> <span class="keyword">union </span><a class="code" href="unionkey__data.html">key_data</a> {
-<a name="l00012"></a><a class="code" href="unionkey__data.html#o0">00012</a> <span class="keywordtype">long</span> val;
-<a name="l00013"></a><a class="code" href="unionkey__data.html#o1">00013</a> <span class="keywordtype">char</span> *str;
+<a name="l00012"></a><a class="code" href="unionkey__data.html#o0">00012</a> <span class="keywordtype">long</span> <a class="code" href="unionkey__data.html#o0">val</a>;
+<a name="l00013"></a><a class="code" href="unionkey__data.html#o1">00013</a> <span class="keywordtype">char</span> *<a class="code" href="unionkey__data.html#o1">str</a>;
00014 };
00015
-<a name="l00016"></a><a class="code" href="map_8h.html#a18">00016</a> <span class="keyword">enum</span> <a class="code" href="map_8h.html#a18">keytype</a> { NONE, LONG, <a class="code" href="map_8h.html#a18a13">STR</a> } __attribute__ ((packed));
-<a name="l00017"></a><a class="code" href="map_8h.html#a19">00017</a> <span class="keyword">enum</span> <a class="code" href="map_8h.html#a19">valtype</a> { INT64, STAT, STRING, <a class="code" href="map_8h.html#a19a17">END</a> };
+<a name="l00016"></a><a class="code" href="map_8h.html#a18">00016</a> <span class="keyword">enum</span> <a class="code" href="map_8h.html#a18">keytype</a> { <a class="code" href="map_8h.html#a18a11">NONE</a>, <a class="code" href="map_8h.html#a18a12">LONG</a>, <a class="code" href="map_8h.html#a18a13">STR</a> } __attribute__ ((packed));
+<a name="l00017"></a><a class="code" href="map_8h.html#a19">00017</a> <span class="keyword">enum</span> <a class="code" href="map_8h.html#a19">valtype</a> { <a class="code" href="map_8h.html#a19a14">INT64</a>, <a class="code" href="map_8h.html#a19a15">STAT</a>, <a class="code" href="map_8h.html#a19a16">STRING</a>, <a class="code" href="map_8h.html#a19a17">END</a> };
00018
00019 <span class="comment">/* all map nodes have the following structure */</span>
<a name="l00020"></a><a class="code" href="structmap__node.html">00020</a> <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> {
<a name="l00022"></a><a class="code" href="structmap__node.html#o1">00022</a> <span class="keyword">struct </span>hlist_node hnode;
<a name="l00023"></a><a class="code" href="structmap__node.html#o2">00023</a> <span class="keyword">union </span><a class="code" href="unionkey__data.html">key_data</a> key1;
<a name="l00024"></a><a class="code" href="structmap__node.html#o3">00024</a> <span class="keyword">union </span><a class="code" href="unionkey__data.html">key_data</a> key2;
-00025 <span class="keyword">enum</span> <a class="code" href="map_8h.html#a18">keytype</a> key1type;
-00026 <span class="keyword">enum</span> <a class="code" href="map_8h.html#a18">keytype</a> key2type;
+<a name="l00025"></a><a class="code" href="structmap__node.html#o4">00025</a> <span class="keyword">enum</span> <a class="code" href="map_8h.html#a18">keytype</a> <a class="code" href="structmap__node.html#o4">key1type</a>;
+<a name="l00026"></a><a class="code" href="structmap__node.html#o5">00026</a> <span class="keyword">enum</span> <a class="code" href="map_8h.html#a18">keytype</a> <a class="code" href="structmap__node.html#o5">key2type</a>;
00027 };
00028
00029 <span class="comment">/* specific map nodes with data attached */</span>
<a name="l00030"></a><a class="code" href="structmap__node__int64.html">00030</a> <span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> {
<a name="l00031"></a><a class="code" href="structmap__node__int64.html#o0">00031</a> <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> n;
-<a name="l00032"></a><a class="code" href="structmap__node__int64.html#o1">00032</a> int64_t val;
+<a name="l00032"></a><a class="code" href="structmap__node__int64.html#o1">00032</a> int64_t <a class="code" href="structmap__node__int64.html#o1">val</a>;
00033 };
00034
<a name="l00035"></a><a class="code" href="structmap__node__str.html">00035</a> <span class="keyword">struct </span><a class="code" href="structmap__node__str.html">map_node_str</a> {
<a name="l00036"></a><a class="code" href="structmap__node__str.html#o0">00036</a> <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> n;
-<a name="l00037"></a><a class="code" href="structmap__node__str.html#o1">00037</a> <span class="keywordtype">char</span> *str;
+<a name="l00037"></a><a class="code" href="structmap__node__str.html#o1">00037</a> <span class="keywordtype">char</span> *<a class="code" href="structmap__node__str.html#o1">str</a>;
00038 };
00039
<a name="l00040"></a><a class="code" href="structmap__node__stat.html">00040</a> <span class="keyword">struct </span><a class="code" href="structmap__node__stat.html">map_node_stat</a> {
<a name="l00041"></a><a class="code" href="structmap__node__stat.html#o0">00041</a> <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> n;
-<a name="l00042"></a><a class="code" href="structmap__node__stat.html#o1">00042</a> <a class="code" href="structstat.html">stat</a> stats;
+<a name="l00042"></a><a class="code" href="structmap__node__stat.html#o1">00042</a> <a class="code" href="structstat.html">stat</a> <a class="code" href="structmap__node__stat.html#o1">stats</a>;
00043 };
00044
<a name="l00045"></a><a class="code" href="structmap__root.html">00045</a> <span class="keyword">struct </span><a class="code" href="structmap__root.html">map_root</a> {
00046 <span class="comment">/* type of the values stored in the array */</span>
-00047 <span class="keyword">enum</span> <a class="code" href="map_8h.html#a19">valtype</a> type;
+<a name="l00047"></a><a class="code" href="structmap__root.html#o0">00047</a> <span class="keyword">enum</span> <a class="code" href="map_8h.html#a19">valtype</a> <a class="code" href="structmap__root.html#o0">type</a>;
00048
00049 <span class="comment">/* maximum number of elements allowed in the array. */</span>
-<a name="l00050"></a><a class="code" href="structmap__root.html#o0">00050</a> <span class="keywordtype">int</span> maxnum;
+<a name="l00050"></a><a class="code" href="structmap__root.html#o1">00050</a> <span class="keywordtype">int</span> <a class="code" href="structmap__root.html#o1">maxnum</a>;
00051
00052 <span class="comment">/* current number of elements */</span>
-<a name="l00053"></a><a class="code" href="structmap__root.html#o1">00053</a> <span class="keywordtype">int</span> num;
+<a name="l00053"></a><a class="code" href="structmap__root.html#o2">00053</a> <span class="keywordtype">int</span> <a class="code" href="structmap__root.html#o2">num</a>;
00054
00055 <span class="comment">/* when more than maxnum elements, wrap or discard */</span>
-<a name="l00056"></a><a class="code" href="structmap__root.html#o2">00056</a> <span class="keywordtype">int</span> no_wrap;
+<a name="l00056"></a><a class="code" href="structmap__root.html#o3">00056</a> <span class="keywordtype">int</span> <a class="code" href="structmap__root.html#o3">no_wrap</a>;
00057
00058 <span class="comment">/* linked list of current entries */</span>
-<a name="l00059"></a><a class="code" href="structmap__root.html#o3">00059</a> <span class="keyword">struct </span>list_head head;
+<a name="l00059"></a><a class="code" href="structmap__root.html#o4">00059</a> <span class="keyword">struct </span>list_head head;
00060
00061 <span class="comment">/* pool of unused entries. Used only when entries are statically allocated */</span>
00062 <span class="comment">/* at startup. */</span>
-<a name="l00063"></a><a class="code" href="structmap__root.html#o4">00063</a> <span class="keyword">struct </span>list_head pool;
+<a name="l00063"></a><a class="code" href="structmap__root.html#o5">00063</a> <span class="keyword">struct </span>list_head pool;
00064
00065 <span class="comment">/* saved key entry for lookups */</span>
-<a name="l00066"></a><a class="code" href="structmap__root.html#o5">00066</a> <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *key;
+<a name="l00066"></a><a class="code" href="structmap__root.html#o6">00066</a> <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *<a class="code" href="structmap__root.html#o6">key</a>;
00067
00068 <span class="comment">/* this is the creation data saved between the key functions and the */</span>
00069 <span class="comment">/* set/get functions */</span>
-<a name="l00070"></a><a class="code" href="structmap__root.html#o6">00070</a> u_int8_t create;
-00071 <span class="keyword">enum</span> <a class="code" href="map_8h.html#a18">keytype</a> c_key1type;
-00072 <span class="keyword">enum</span> <a class="code" href="map_8h.html#a18">keytype</a> c_key2type;
-<a name="l00073"></a><a class="code" href="structmap__root.html#o7">00073</a> <span class="keyword">struct </span>hlist_head *c_keyhead;
-<a name="l00074"></a><a class="code" href="structmap__root.html#o8">00074</a> <span class="keyword">union </span><a class="code" href="unionkey__data.html">key_data</a> c_key1;
-<a name="l00075"></a><a class="code" href="structmap__root.html#o9">00075</a> <span class="keyword">union </span><a class="code" href="unionkey__data.html">key_data</a> c_key2;
+<a name="l00070"></a><a class="code" href="structmap__root.html#o7">00070</a> u_int8_t <a class="code" href="structmap__root.html#o7">create</a>;
+<a name="l00071"></a><a class="code" href="structmap__root.html#o8">00071</a> <span class="keyword">enum</span> <a class="code" href="map_8h.html#a18">keytype</a> <a class="code" href="structmap__root.html#o8">c_key1type</a>;
+<a name="l00072"></a><a class="code" href="structmap__root.html#o9">00072</a> <span class="keyword">enum</span> <a class="code" href="map_8h.html#a18">keytype</a> <a class="code" href="structmap__root.html#o9">c_key2type</a>;
+<a name="l00073"></a><a class="code" href="structmap__root.html#o10">00073</a> <span class="keyword">struct </span>hlist_head *<a class="code" href="structmap__root.html#o10">c_keyhead</a>;
+<a name="l00074"></a><a class="code" href="structmap__root.html#o11">00074</a> <span class="keyword">union </span><a class="code" href="unionkey__data.html">key_data</a> c_key1;
+<a name="l00075"></a><a class="code" href="structmap__root.html#o12">00075</a> <span class="keyword">union </span><a class="code" href="unionkey__data.html">key_data</a> c_key2;
00076
00077 <span class="comment">/* the hash table for this array */</span>
-<a name="l00078"></a><a class="code" href="structmap__root.html#o10">00078</a> <span class="keyword">struct </span>hlist_head hashes[HASH_TABLE_SIZE];
+<a name="l00078"></a><a class="code" href="structmap__root.html#o13">00078</a> <span class="keyword">struct </span>hlist_head hashes[HASH_TABLE_SIZE];
00079
00080 <span class="comment">/* pointer to allocated memory space */</span>
-<a name="l00081"></a><a class="code" href="structmap__root.html#o11">00081</a> <span class="keywordtype">void</span> *membuf;
+<a name="l00081"></a><a class="code" href="structmap__root.html#o14">00081</a> <span class="keywordtype">void</span> *<a class="code" href="structmap__root.html#o14">membuf</a>;
00082 };
00083
<a name="l00084"></a><a class="code" href="map_8h.html#a10">00084</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structmap__root.html">map_root</a> *<a class="code" href="structmap__root.html">MAP</a>;
00139 <span class="preprocessor"> for (ptr = (typeof(ptr))_stp_map_start(map); ptr; \</span>
00140 <span class="preprocessor"> ptr = (typeof(ptr))_stp_map_iter (map, (struct map_node *)ptr))</span>
00141 <span class="preprocessor"></span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>map.h File Reference</h1><code>#include <linux/types.h></code><br>
<p>
<a href="map_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structstat.html">stat</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">union </td><td class="memItemRight" valign="bottom"><a class="el" href="unionkey__data.html">key_data</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node.html">map_node</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node__int64.html">map_node_int64</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node__str.html">map_node_str</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node__stat.html">map_node_stat</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html">map_root</a></td></tr>
-
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a0">key1str</a>(ptr) (ptr->n.key1.str)</td></tr>
</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="a7" doxytag="map.h::_stp_list_add"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
<b>Value:</b><div class="fragment"><pre class="fragment">({ \
<span class="keywordflow">if</span> (__builtin_types_compatible_p (typeof (val), <span class="keywordtype">char</span>[])) \
- <a class="code" href="map_8c.html#a25">_stp_list_add_str</a> (map, (<span class="keywordtype">char</span> *)(val)); \
+ <a class="code" href="map_8c.html#a27">_stp_list_add_str</a> (map, (<span class="keywordtype">char</span> *)(val)); \
<span class="keywordflow">else</span> \
- <a class="code" href="map_8c.html#a26">_stp_list_add_int64</a> (map, (int64_t)(val)); \
+ <a class="code" href="map_8c.html#a28">_stp_list_add_int64</a> (map, (int64_t)(val)); \
})
</pre></div>
<p>
</tr>
</table>
<a class="anchor" name="a5" doxytag="map.h::_stp_map_key"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
</tr>
</table>
<a class="anchor" name="a4" doxytag="map.h::_stp_map_key2"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
</tr>
</table>
<a class="anchor" name="a6" doxytag="map.h::_stp_map_set"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
<b>Value:</b><div class="fragment"><pre class="fragment">({ \
<span class="keywordflow">if</span> (__builtin_types_compatible_p (typeof (val), <span class="keywordtype">char</span>[])) \
- <a class="code" href="map_8c.html#a18">_stp_map_set_str</a> (map, (<span class="keywordtype">char</span> *)(val)); \
+ <a class="code" href="map_8c.html#a20">_stp_map_set_str</a> (map, (<span class="keywordtype">char</span> *)(val)); \
<span class="keywordflow">else</span> \
- <a class="code" href="map_8c.html#a16">_stp_map_set_int64</a> (map, (int64_t)(val)); \
+ <a class="code" href="map_8c.html#a17">_stp_map_set_int64</a> (map, (int64_t)(val)); \
})
</pre></div>
<p>
</tr>
</table>
<a class="anchor" name="a8" doxytag="map.h::foreach"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">for</span> (ptr = (typeof(ptr))<a class="code" href="map_8c.html#a6">_stp_map_start</a>(map); ptr; \
- ptr = (typeof(ptr))<a class="code" href="map_8c.html#a7">_stp_map_iter</a> (map, (<span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *)ptr))
+ ptr = (typeof(ptr))_stp_map_iter (map, (<span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *)ptr))
</pre></div>Loop through all elements of a map.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
</tr>
</table>
<a class="anchor" name="a2" doxytag="map.h::key1int"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
</tr>
</table>
<a class="anchor" name="a0" doxytag="map.h::key1str"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
</tr>
</table>
<a class="anchor" name="a3" doxytag="map.h::key2int"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
</tr>
</table>
<a class="anchor" name="a1" doxytag="map.h::key2str"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="a10" doxytag="map.h::MAP"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
<p>
-Definition at line <a class="el" href="map_8h-source.html#l00084">84</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
-<p>
-Referenced by <a class="el" href="copy_8c-source.html#l00115">_stp_copy_argv_from_user()</a>, <a class="el" href="map_8c-source.html#l00816">_stp_list_add_int64()</a>, <a class="el" href="map_8c-source.html#l00805">_stp_list_add_str()</a>, <a class="el" href="map_8c-source.html#l00765">_stp_list_clear()</a>, <a class="el" href="map_8c-source.html#l00753">_stp_list_new()</a>, <a class="el" href="map_8c-source.html#l00827">_stp_list_size()</a>, <a class="el" href="map_8c-source.html#l00190">_stp_map_del()</a>, <a class="el" href="map_8c-source.html#l00528">_stp_map_get_int64()</a>, <a class="el" href="map_8c-source.html#l00692">_stp_map_get_stat()</a>, <a class="el" href="map_8c-source.html#l00609">_stp_map_get_str()</a>, <a class="el" href="map_8c-source.html#l00172">_stp_map_iter()</a>, <a class="el" href="map_8c-source.html#l00104">_stp_map_key_del()</a>, <a class="el" href="map_8c-source.html#l00415">_stp_map_key_long()</a>, <a class="el" href="map_8c-source.html#l00218">_stp_map_key_long_long()</a>, <a class="el" href="map_8c-source.html#l00358">_stp_map_key_long_str()</a>, <a class="el" href="map_8c-source.html#l00399">_stp_map_key_str()</a>, <a class="el" href="map_8c-source.html#l00310">_stp_map_key_str_long()</a>, <a class="el" href="map_8c-source.html#l00261">_stp_map_key_str_str()</a>, <a class="el" href="map_8c-source.html#l00043">_stp_map_new()</a>, <a class="el" href="map_8c-source.html#l00471">_stp_map_set_int64()</a>, <a class="el" href="map_8c-source.html#l00633">_stp_map_set_stat()</a>, <a class="el" href="map_8c-source.html#l00548">_stp_map_set_str()</a>, <a class="el" href="map_8c-source.html#l00149">_stp_map_start()</a>, and <a class="el" href="map_8c-source.html#l00713">_stp_map_stat_add()</a>. </td>
+Definition at line <a class="el" href="map_8h-source.html#l00084">84</a> of file <a class="el" href="map_8h-source.html">map.h</a>. </td>
</tr>
</table>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="a18" doxytag="map.h::keytype"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
</tr>
</table>
<a class="anchor" name="a19" doxytag="map.h::valtype"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
</table>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="a9" doxytag="map.h::packed"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
</td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>SystemTap Related Pages</h1>Here is a list of all related documentation pages:<ul>
-<li><a class="el" href="todo.html">Todo List</a>
-
<li><a class="el" href="bug.html">Bug List</a>
+<li><a class="el" href="todo.html">Todo List</a>
+
</ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
--- /dev/null
+<!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>SystemTap: SystemTap Runtime Library</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
+
+<!-- Generated by Doxygen 1.4.1 -->
+<h1>probes.c</h1><a href="probes_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 <span class="comment">/* -*- linux-c -*- */</span>
+00002
+00012 <span class="keyword">static</span> <span class="keywordtype">unsigned</span> long (*_stp_lookup_name)(<span class="keywordtype">char</span> *name)=(<span class="keywordtype">void</span> *)KALLSYMS_LOOKUP_NAME;
+00013
+<a name="l00014"></a><a class="code" href="probes_8c.html#a1">00014</a> <span class="keywordtype">void</span> <a class="code" href="probes_8c.html#a1">_stp_unregister_jprobes</a> (<span class="keyword">struct</span> jprobe *probes, <span class="keywordtype">int</span> num_probes)
+00015 {
+00016 <span class="keywordtype">int</span> i;
+00017 <span class="keywordflow">for</span> (i = 0; i < num_probes; i++)
+00018 unregister_jprobe(&probes[i]);
+00019 <a class="code" href="io_8c.html#a4">dlog</a> (<span class="stringliteral">"All jprobes removed\n"</span>);
+00020 }
+00021
+<a name="l00022"></a><a class="code" href="probes_8c.html#a2">00022</a> <span class="keywordtype">int</span> <a class="code" href="probes_8c.html#a2">_stp_register_jprobes</a> (<span class="keyword">struct</span> jprobe *probes, <span class="keywordtype">int</span> num_probes)
+00023 {
+00024 <span class="keywordtype">int</span> i, ret ;
+00025 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> addr;
+00026
+00027 <span class="keywordflow">for</span> (i = 0; i < num_probes; i++) {
+00028 addr =_stp_lookup_name((<span class="keywordtype">char</span> *)probes[i].kp.addr);
+00029 <span class="keywordflow">if</span> (addr == 0) {
+00030 <a class="code" href="io_8c.html#a4">dlog</a> (<span class="stringliteral">"ERROR: function %s not found!\n"</span>,
+00031 (<span class="keywordtype">char</span> *)probes[i].kp.addr);
+00032 ret = -1; <span class="comment">/* FIXME */</span>
+00033 <span class="keywordflow">goto</span> out;
+00034 }
+00035 <a class="code" href="io_8c.html#a4">dlog</a>(<span class="stringliteral">"inserting jprobe at %s (%p)\n"</span>, probes[i].kp.addr, addr);
+00036 probes[i].kp.addr = (kprobe_opcode_t *)addr;
+00037 ret = register_jprobe(&probes[i]);
+00038 <span class="keywordflow">if</span> (ret)
+00039 <span class="keywordflow">goto</span> out;
+00040 }
+00041 <span class="keywordflow">return</span> 0;
+00042 out:
+00043 <a class="code" href="io_8c.html#a4">dlog</a> (<span class="stringliteral">"probe module initialization failed. Exiting...\n"</span>);
+00044 <a class="code" href="probes_8c.html#a1">_stp_unregister_jprobes</a>(probes, i);
+00045 <span class="keywordflow">return</span> ret;
+00046 }
+00047
+<a name="l00048"></a><a class="code" href="probes_8c.html#a3">00048</a> <span class="keywordtype">void</span> <a class="code" href="probes_8c.html#a3">_stp_unregister_kprobes</a> (<span class="keyword">struct</span> kprobe *probes, <span class="keywordtype">int</span> num_probes)
+00049 {
+00050 <span class="keywordtype">int</span> i;
+00051 <span class="keywordflow">for</span> (i = 0; i < num_probes; i++)
+00052 unregister_kprobe(&probes[i]);
+00053 <a class="code" href="io_8c.html#a4">dlog</a> (<span class="stringliteral">"All kprobes removed\n"</span>);
+00054 }
+00055
+<a name="l00056"></a><a class="code" href="probes_8c.html#a4">00056</a> <span class="keywordtype">int</span> <a class="code" href="probes_8c.html#a4">_stp_register_kprobes</a> (<span class="keyword">struct</span> kprobe *probes, <span class="keywordtype">int</span> num_probes)
+00057 {
+00058 <span class="keywordtype">int</span> i, ret ;
+00059 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> addr;
+00060
+00061 <span class="keywordflow">for</span> (i = 0; i < num_probes; i++) {
+00062 addr =_stp_lookup_name((<span class="keywordtype">char</span> *)probes[i].addr);
+00063 <span class="keywordflow">if</span> (addr == 0) {
+00064 <a class="code" href="io_8c.html#a4">dlog</a> (<span class="stringliteral">"ERROR: function %s not found!\n"</span>,
+00065 (<span class="keywordtype">char</span> *)probes[i].addr);
+00066 ret = -1; <span class="comment">/* FIXME */</span>
+00067 <span class="keywordflow">goto</span> out;
+00068 }
+00069 <a class="code" href="io_8c.html#a4">dlog</a>(<span class="stringliteral">"inserting kprobe at %s (%p)\n"</span>, probes[i].addr, addr);
+00070 probes[i].addr = (kprobe_opcode_t *)addr;
+00071 ret = register_kprobe(&probes[i]);
+00072 <span class="keywordflow">if</span> (ret)
+00073 <span class="keywordflow">goto</span> out;
+00074 }
+00075 <span class="keywordflow">return</span> 0;
+00076 out:
+00077 <a class="code" href="io_8c.html#a4">dlog</a> (<span class="stringliteral">"probe module initialization failed. Exiting...\n"</span>);
+00078 <a class="code" href="probes_8c.html#a3">_stp_unregister_kprobes</a>(probes, i);
+00079 <span class="keywordflow">return</span> ret;
+00080 }
+00081
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
+</body>
+</html>
--- /dev/null
+<!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>SystemTap: SystemTap Runtime Library</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
+
+<!-- Generated by Doxygen 1.4.1 -->
+<h1>probes.c File Reference</h1>
+<p>
+<a href="probes_8c-source.html">Go to the source code of this file.</a><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">void </td><td class="memItemRight" valign="bottom"><a class="el" href="probes_8c.html#a1">_stp_unregister_jprobes</a> (struct jprobe *probes, int num_probes)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="probes_8c.html#a2">_stp_register_jprobes</a> (struct jprobe *probes, int num_probes)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="probes_8c.html#a3">_stp_unregister_kprobes</a> (struct kprobe *probes, int num_probes)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="probes_8c.html#a4">_stp_register_kprobes</a> (struct kprobe *probes, int num_probes)</td></tr>
+
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a2" doxytag="probes.c::_stp_register_jprobes"></a><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">int _stp_register_jprobes </td>
+ <td class="md" valign="top">( </td>
+ <td class="md" nowrap valign="top">struct jprobe * </td>
+ <td class="mdname" nowrap> <em>probes</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>int </td>
+ <td class="mdname" nowrap> <em>num_probes</em></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">) </td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="probes_8c-source.html#l00022">22</a> of file <a class="el" href="probes_8c-source.html">probes.c</a>.
+<p>
+References <a class="el" href="probes_8c-source.html#l00014">_stp_unregister_jprobes()</a>, and <a class="el" href="io_8c-source.html#l00011">dlog()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a4" doxytag="probes.c::_stp_register_kprobes"></a><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">int _stp_register_kprobes </td>
+ <td class="md" valign="top">( </td>
+ <td class="md" nowrap valign="top">struct kprobe * </td>
+ <td class="mdname" nowrap> <em>probes</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>int </td>
+ <td class="mdname" nowrap> <em>num_probes</em></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">) </td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="probes_8c-source.html#l00056">56</a> of file <a class="el" href="probes_8c-source.html">probes.c</a>.
+<p>
+References <a class="el" href="probes_8c-source.html#l00048">_stp_unregister_kprobes()</a>, and <a class="el" href="io_8c-source.html#l00011">dlog()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a1" doxytag="probes.c::_stp_unregister_jprobes"></a><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 _stp_unregister_jprobes </td>
+ <td class="md" valign="top">( </td>
+ <td class="md" nowrap valign="top">struct jprobe * </td>
+ <td class="mdname" nowrap> <em>probes</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>int </td>
+ <td class="mdname" nowrap> <em>num_probes</em></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">) </td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="probes_8c-source.html#l00014">14</a> of file <a class="el" href="probes_8c-source.html">probes.c</a>.
+<p>
+References <a class="el" href="io_8c-source.html#l00011">dlog()</a>.
+<p>
+Referenced by <a class="el" href="probes_8c-source.html#l00022">_stp_register_jprobes()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a3" doxytag="probes.c::_stp_unregister_kprobes"></a><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 _stp_unregister_kprobes </td>
+ <td class="md" valign="top">( </td>
+ <td class="md" nowrap valign="top">struct kprobe * </td>
+ <td class="mdname" nowrap> <em>probes</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>int </td>
+ <td class="mdname" nowrap> <em>num_probes</em></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">) </td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="probes_8c-source.html#l00048">48</a> of file <a class="el" href="probes_8c-source.html">probes.c</a>.
+<p>
+References <a class="el" href="io_8c-source.html#l00011">dlog()</a>.
+<p>
+Referenced by <a class="el" href="probes_8c-source.html#l00056">_stp_register_kprobes()</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
+</body>
+</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>runtime.h</h1><a href="runtime_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
00002 <span class="preprocessor">#include <linux/module.h></span>
-00003 <span class="preprocessor">#include <linux/miscdevice.h></span>
-00004 <span class="preprocessor">#include <linux/init.h></span>
-00005 <span class="preprocessor">#include <linux/hash.h></span>
-00006 <span class="preprocessor">#include <linux/string.h></span>
-00007 <span class="preprocessor">#include <linux/kprobes.h></span>
-00008 <span class="preprocessor">#include <linux/proc_fs.h></span>
-00009 <span class="preprocessor">#include <linux/vmalloc.h></span>
-00010 <span class="preprocessor">#include <linux/time.h></span>
-00011 <span class="preprocessor">#include <linux/spinlock.h></span>
-00012 <span class="preprocessor">#include <asm/uaccess.h></span>
-00013
-00014 <span class="preprocessor">#include "<a class="code" href="alloc_8h.html">alloc.h</a>"</span>
-00015 <span class="preprocessor">#include "<a class="code" href="map_8h.html">map.h</a>"</span>
+00003 <span class="preprocessor">#include <linux/kernel.h></span>
+00004 <span class="preprocessor">#include <linux/miscdevice.h></span>
+00005 <span class="preprocessor">#include <linux/init.h></span>
+00006 <span class="preprocessor">#include <linux/hash.h></span>
+00007 <span class="preprocessor">#include <linux/string.h></span>
+00008 <span class="preprocessor">#include <linux/kprobes.h></span>
+00009 <span class="preprocessor">#include <linux/proc_fs.h></span>
+00010 <span class="preprocessor">#include <linux/vmalloc.h></span>
+00011 <span class="preprocessor">#include <linux/time.h></span>
+00012 <span class="preprocessor">#include <linux/spinlock.h></span>
+00013 <span class="preprocessor">#include <linux/hardirq.h></span>
+00014 <span class="preprocessor">#include <asm/uaccess.h></span>
+00015 <span class="preprocessor">#include <linux/kallsyms.h></span>
00016
-<a name="l00017"></a><a class="code" href="runtime_8h.html#a0">00017</a> <span class="preprocessor">#define dbug(args...) ;</span>
-00018 <span class="preprocessor"></span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+00017 <span class="preprocessor">#include "<a class="code" href="alloc_8h.html">alloc.h</a>"</span>
+00018 <span class="preprocessor">#include "<a class="code" href="map_8h.html">map.h</a>"</span>
+00019
+<a name="l00020"></a><a class="code" href="runtime_8h.html#a0">00020</a> <span class="preprocessor">#define dbug(args...) ;</span>
+00021 <span class="preprocessor"></span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>runtime.h File Reference</h1><code>#include <linux/module.h></code><br>
+<code>#include <linux/kernel.h></code><br>
<code>#include <linux/miscdevice.h></code><br>
<code>#include <linux/init.h></code><br>
<code>#include <linux/hash.h></code><br>
<code>#include <linux/vmalloc.h></code><br>
<code>#include <linux/time.h></code><br>
<code>#include <linux/spinlock.h></code><br>
+<code>#include <linux/hardirq.h></code><br>
<code>#include <asm/uaccess.h></code><br>
+<code>#include <linux/kallsyms.h></code><br>
<code>#include "<a class="el" href="alloc_8h-source.html">alloc.h</a>"</code><br>
<code>#include "<a class="el" href="map_8h-source.html">map.h</a>"</code><br>
</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="a0" doxytag="runtime.h::dbug"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
<p>
-Definition at line <a class="el" href="runtime_8h-source.html#l00017">17</a> of file <a class="el" href="runtime_8h-source.html">runtime.h</a>.
+Definition at line <a class="el" href="runtime_8h-source.html#l00020">20</a> of file <a class="el" href="runtime_8h-source.html">runtime.h</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00528">_stp_map_get_int64()</a>, <a class="el" href="map_8c-source.html#l00692">_stp_map_get_stat()</a>, <a class="el" href="map_8c-source.html#l00609">_stp_map_get_str()</a>, <a class="el" href="map_8c-source.html#l00172">_stp_map_iter()</a>, <a class="el" href="map_8c-source.html#l00104">_stp_map_key_del()</a>, <a class="el" href="map_8c-source.html#l00218">_stp_map_key_long_long()</a>, <a class="el" href="map_8c-source.html#l00358">_stp_map_key_long_str()</a>, <a class="el" href="map_8c-source.html#l00310">_stp_map_key_str_long()</a>, <a class="el" href="map_8c-source.html#l00261">_stp_map_key_str_str()</a>, <a class="el" href="map_8c-source.html#l00043">_stp_map_new()</a>, <a class="el" href="map_8c-source.html#l00471">_stp_map_set_int64()</a>, <a class="el" href="map_8c-source.html#l00633">_stp_map_set_stat()</a>, <a class="el" href="map_8c-source.html#l00548">_stp_map_set_str()</a>, <a class="el" href="map_8c-source.html#l00149">_stp_map_start()</a>, and <a class="el" href="map_8c-source.html#l00713">_stp_map_stat_add()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00551">_stp_map_get_int64()</a>, <a class="el" href="map_8c-source.html#l00715">_stp_map_get_stat()</a>, <a class="el" href="map_8c-source.html#l00632">_stp_map_get_str()</a>, <a class="el" href="map_8c-source.html#l00172">_stp_map_iter()</a>, <a class="el" href="map_8c-source.html#l00104">_stp_map_key_del()</a>, <a class="el" href="map_8c-source.html#l00218">_stp_map_key_long_long()</a>, <a class="el" href="map_8c-source.html#l00358">_stp_map_key_long_str()</a>, <a class="el" href="map_8c-source.html#l00310">_stp_map_key_str_long()</a>, <a class="el" href="map_8c-source.html#l00261">_stp_map_key_str_str()</a>, <a class="el" href="map_8c-source.html#l00043">_stp_map_new()</a>, <a class="el" href="map_8c-source.html#l00656">_stp_map_set_stat()</a>, <a class="el" href="map_8c-source.html#l00571">_stp_map_set_str()</a>, <a class="el" href="map_8c-source.html#l00149">_stp_map_start()</a>, and <a class="el" href="map_8c-source.html#l00736">_stp_map_stat_add()</a>. </td>
</tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
--- /dev/null
+<!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>SystemTap: SystemTap Runtime Library</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
+
+<!-- Generated by Doxygen 1.4.1 -->
+<h1>stack.c</h1><a href="stack_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00002
+00003 <span class="preprocessor">#ifdef __x86_64__</span>
+00004 <span class="preprocessor"></span><span class="comment">/* ripped out of arch/x86_64/kernel/traps.c */</span>
+00005 <span class="preprocessor">#include <linux/kallsyms.h></span>
+00006
+00007 <span class="keyword">static</span> <span class="keywordtype">int</span> _stp_printk_address(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> address)
+00008 {
+00009 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> offset = 0, symsize;
+00010 <span class="keyword">const</span> <span class="keywordtype">char</span> *symname;
+00011 <span class="keywordtype">char</span> *modname;
+00012 <span class="keywordtype">char</span> *delim = <span class="stringliteral">":"</span>;
+00013 <span class="keywordtype">char</span> namebuf[128];
+00014
+00015 symname = _stp_kallsyms_lookup(address, &symsize, &offset, &modname, namebuf);
+00016 <span class="keywordflow">if</span> (!symname)
+00017 return printk("[<%016lx>]", address);
+00018 if (!modname)
+00019 modname = delim = "";
+00020 return printk("<%016lx>{%s%s%s%s%+ld}<span class="stringliteral">",</span>
+00021 <span class="stringliteral"> address,delim,modname,delim,symname,offset); </span>
+00022 <span class="stringliteral">}</span>
+00023 <span class="stringliteral"></span>
+00024 <span class="stringliteral">void _stp_show_trace(unsigned long *stack)</span>
+00025 <span class="stringliteral">{</span>
+00026 <span class="stringliteral"> unsigned long addr;</span>
+00027 <span class="stringliteral"> unsigned long *irqstack, *irqstack_end, *estack_end;</span>
+00028 <span class="stringliteral"> const int cpu = safe_smp_processor_id();</span>
+00029 <span class="stringliteral"> int i;</span>
+00030 <span class="stringliteral"></span>
+00031 <span class="stringliteral"> printk("</span>\nCall Trace:<span class="stringliteral">");</span>
+00032 <span class="stringliteral"> i = 0; </span>
+00033 <span class="stringliteral"> </span>
+00034 <span class="stringliteral"> estack_end = in_exception_stack(cpu, (unsigned long)stack); </span>
+00035 <span class="stringliteral"> if (estack_end) { </span>
+00036 <span class="stringliteral"> while (stack < estack_end) { </span>
+00037 <span class="stringliteral"> addr = *stack++; </span>
+00038 <span class="stringliteral"> if (__kernel_text_address(addr)) {</span>
+00039 <span class="stringliteral"> i += printk_address(addr);</span>
+00040 <span class="stringliteral"> i += printk("</span> <span class="stringliteral">"); </span>
+00041 <span class="stringliteral"> if (i > 50) {</span>
+00042 <span class="stringliteral"> printk("</span>\n<span class="stringliteral">"); </span>
+00043 <span class="stringliteral"> i = 0;</span>
+00044 <span class="stringliteral"> }</span>
+00045 <span class="stringliteral"> }</span>
+00046 <span class="stringliteral"> }</span>
+00047 <span class="stringliteral"> i += printk("</span> <EOE> <span class="stringliteral">"); </span>
+00048 <span class="stringliteral"> i += 7;</span>
+00049 <span class="stringliteral"> stack = (unsigned long *) estack_end[-2]; </span>
+00050 <span class="stringliteral"> } </span>
+00051 <span class="stringliteral"></span>
+00052 <span class="stringliteral"> irqstack_end = (unsigned long *) (cpu_pda[cpu].irqstackptr);</span>
+00053 <span class="stringliteral"> irqstack = (unsigned long *) (cpu_pda[cpu].irqstackptr - IRQSTACKSIZE + 64);</span>
+00054 <span class="stringliteral"></span>
+00055 <span class="stringliteral"> if (stack >= irqstack && stack < irqstack_end) {</span>
+00056 <span class="stringliteral"> printk("</span><IRQ> <span class="stringliteral">"); </span>
+00057 <span class="stringliteral"> while (stack < irqstack_end) {</span>
+00058 <span class="stringliteral"> addr = *stack++;</span>
+00059 <span class="stringliteral"> /*</span>
+00060 <span class="stringliteral"> * If the address is either in the text segment of the</span>
+00061 <span class="stringliteral"> * kernel, or in the region which contains vmalloc'ed</span>
+00062 <span class="stringliteral"> * memory, it *may* be the address of a calling</span>
+00063 <span class="stringliteral"> * routine; if so, print it so that someone tracing</span>
+00064 <span class="stringliteral"> * down the cause of the crash will be able to figure</span>
+00065 <span class="stringliteral"> * out the call path that was taken.</span>
+00066 <span class="stringliteral"> */</span>
+00067 <span class="stringliteral"> if (__kernel_text_address(addr)) {</span>
+00068 <span class="stringliteral"> i += printk_address(addr);</span>
+00069 <span class="stringliteral"> i += printk("</span> <span class="stringliteral">"); </span>
+00070 <span class="stringliteral"> if (i > 50) { </span>
+00071 <span class="stringliteral"> printk("</span>\n <span class="stringliteral">");</span>
+00072 <span class="stringliteral"> i = 0;</span>
+00073 <span class="stringliteral"> } </span>
+00074 <span class="stringliteral"> }</span>
+00075 <span class="stringliteral"> } </span>
+00076 <span class="stringliteral"> stack = (unsigned long *) (irqstack_end[-1]);</span>
+00077 <span class="stringliteral"> printk("</span> <EOI> <span class="stringliteral">");</span>
+00078 <span class="stringliteral"> i += 7;</span>
+00079 <span class="stringliteral"> } </span>
+00080 <span class="stringliteral"></span>
+00081 <span class="stringliteral"> while (((long) stack & (THREAD_SIZE-1)) != 0) {</span>
+00082 <span class="stringliteral"> addr = *stack++;</span>
+00083 <span class="stringliteral"> if (__kernel_text_address(addr)) {</span>
+00084 <span class="stringliteral"> i += printk_address(addr);</span>
+00085 <span class="stringliteral"> i += printk("</span> <span class="stringliteral">"); </span>
+00086 <span class="stringliteral"> if (i > 50) { </span>
+00087 <span class="stringliteral"> printk("</span>\n <span class="stringliteral">");</span>
+00088 <span class="stringliteral"> i = 0;</span>
+00089 <span class="stringliteral"> } </span>
+00090 <span class="stringliteral"> }</span>
+00091 <span class="stringliteral"> }</span>
+00092 <span class="stringliteral"> printk("</span>\n<span class="stringliteral">");</span>
+00093 <span class="stringliteral">}</span>
+00094 <span class="stringliteral"></span>
+00095 <span class="stringliteral">void _stp_dump_stack(void)</span>
+00096 <span class="stringliteral">{</span>
+00097 <span class="stringliteral"> unsigned long dummy;</span>
+00098 <span class="stringliteral"> show_trace(&dummy);</span>
+00099 <span class="stringliteral">}</span>
+00100 <span class="stringliteral"></span>
+00101 <span class="stringliteral">#else /* i386 */</span>
+00102 <span class="stringliteral"></span>
+00103 <span class="stringliteral">static inline int valid_stack_ptr(struct thread_info *tinfo, void *p)</span>
+00104 <span class="stringliteral">{</span>
+00105 <span class="stringliteral"> return p > (void *)tinfo &&</span>
+00106 <span class="stringliteral"> p < (void *)tinfo + THREAD_SIZE - 3;</span>
+00107 <span class="stringliteral">}</span>
+00108 <span class="stringliteral"></span>
+<a name="l00109"></a><a class="code" href="stack_8c.html#a1">00109</a> <span class="stringliteral">int __kernel_text_address(unsigned long addr)</span>
+00110 <span class="stringliteral">{</span>
+00111 <span class="stringliteral"> if (core_kernel_text(addr))</span>
+00112 <span class="stringliteral"> return 1;</span>
+00113 <span class="stringliteral"> return __module_text_address(addr) != NULL;</span>
+00114 <span class="stringliteral">}</span>
+00115 <span class="stringliteral"></span>
+00116 <span class="stringliteral">static inline unsigned long _stp_print_context_stack(struct thread_info *tinfo,</span>
+00117 <span class="stringliteral"> unsigned long *stack, unsigned long ebp)</span>
+00118 <span class="stringliteral">{</span>
+00119 <span class="stringliteral"> unsigned long addr;</span>
+00120 <span class="stringliteral"></span>
+00121 <span class="stringliteral">#ifdef CONFIG_FRAME_POINTER</span>
+00122 <span class="stringliteral"> while (valid_stack_ptr(tinfo, (void *)ebp)) {</span>
+00123 <span class="stringliteral"> addr = *(unsigned long *)(ebp + 4);</span>
+00124 <span class="stringliteral"> _stp_print_buf("</span> [<%08lx>] <span class="stringliteral">", addr);</span>
+00125 <span class="stringliteral"> _stp_print_symbol("</span>%s<span class="stringliteral">", addr);</span>
+00126 <span class="stringliteral"> _stp_print_buf("</span>\n<span class="stringliteral">");</span>
+00127 <span class="stringliteral"> ebp = *(unsigned long *)ebp;</span>
+00128 <span class="stringliteral"> }</span>
+00129 <span class="stringliteral">#else</span>
+00130 <span class="stringliteral"> while (valid_stack_ptr(tinfo, stack)) {</span>
+00131 <span class="stringliteral"> addr = *stack++;</span>
+00132 <span class="stringliteral"> if (__kernel_text_address(addr)) {</span>
+00133 <span class="stringliteral"> _stp_print_buf("</span> [<%08lx>]<span class="stringliteral">", addr);</span>
+00134 <span class="stringliteral"> _stp_print_symbol("</span> %s<span class="stringliteral">", addr);</span>
+00135 <span class="stringliteral"> _stp_print_buf("</span>\n<span class="stringliteral">");</span>
+00136 <span class="stringliteral"> }</span>
+00137 <span class="stringliteral"> }</span>
+00138 <span class="stringliteral">#endif</span>
+00139 <span class="stringliteral"> return ebp;</span>
+00140 <span class="stringliteral">}</span>
+00141 <span class="stringliteral"></span>
+<a name="l00142"></a><a class="code" href="stack_8c.html#a3">00142</a> <span class="stringliteral">void show_trace(struct task_struct *task, unsigned long * stack)</span>
+00143 <span class="stringliteral">{</span>
+00144 <span class="stringliteral"> unsigned long ebp;</span>
+00145 <span class="stringliteral"></span>
+00146 <span class="stringliteral"> if (!task)</span>
+00147 <span class="stringliteral"> task = current;</span>
+00148 <span class="stringliteral"></span>
+00149 <span class="stringliteral"> if (task == current) {</span>
+00150 <span class="stringliteral"> /* Grab ebp right from our regs */</span>
+00151 <span class="stringliteral"> asm ("</span>movl %%ebp, %0<span class="stringliteral">" : "</span>=r<span class="stringliteral">" (ebp) : );</span>
+00152 <span class="stringliteral"> } else {</span>
+00153 <span class="stringliteral"> /* ebp is the last reg pushed by switch_to */</span>
+00154 <span class="stringliteral"> ebp = *(unsigned long *) task->thread.esp;</span>
+00155 <span class="stringliteral"> }</span>
+00156 <span class="stringliteral"></span>
+00157 <span class="stringliteral"> while (1) {</span>
+00158 <span class="stringliteral"> struct thread_info *context;</span>
+00159 <span class="stringliteral"> context = (struct thread_info *)</span>
+00160 <span class="stringliteral"> ((unsigned long)stack & (~(THREAD_SIZE - 1)));</span>
+00161 <span class="stringliteral"> ebp = _stp_print_context_stack(context, stack, ebp);</span>
+00162 <span class="stringliteral"> stack = (unsigned long*)context->previous_esp;</span>
+00163 <span class="stringliteral"> if (!stack)</span>
+00164 <span class="stringliteral"> break;</span>
+00165 <span class="stringliteral"> _stp_print_buf("</span> =======================\n<span class="stringliteral">");</span>
+00166 <span class="stringliteral"> }</span>
+00167 <span class="stringliteral">}</span>
+00168 <span class="stringliteral"></span>
+<a name="l00169"></a><a class="code" href="stack_8c.html#a4">00169</a> <span class="stringliteral">void dump_stack(void)</span>
+00170 <span class="stringliteral">{</span>
+00171 <span class="stringliteral"> unsigned long stack;</span>
+00172 <span class="stringliteral"> show_trace(current, &stack);</span>
+00173 <span class="stringliteral">}</span>
+00174 <span class="stringliteral">#endif</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
+</body>
+</html>
--- /dev/null
+<!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>SystemTap: SystemTap Runtime Library</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
+
+<!-- Generated by Doxygen 1.4.1 -->
+<h1>stack.c File Reference</h1>
+<p>
+<a href="stack_8c-source.html">Go to the source code of this file.</a><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">int </td><td class="memItemRight" valign="bottom"><a class="el" href="stack_8c.html#a1">__kernel_text_address</a> (unsigned long addr)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="stack_8c.html#a3">show_trace</a> (struct task_struct *task, unsigned long *stack)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="stack_8c.html#a4">dump_stack</a> (void)</td></tr>
+
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a1" doxytag="stack.c::__kernel_text_address"></a><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">int __kernel_text_address </td>
+ <td class="md" valign="top">( </td>
+ <td class="md" nowrap valign="top">unsigned long </td>
+ <td class="mdname1" valign="top" nowrap> <em>addr</em> </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>
+
+<p>
+Definition at line <a class="el" href="stack_8c-source.html#l00109">109</a> of file <a class="el" href="stack_8c-source.html">stack.c</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a4" doxytag="stack.c::dump_stack"></a><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 dump_stack </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>
+
+<p>
+Definition at line <a class="el" href="stack_8c-source.html#l00169">169</a> of file <a class="el" href="stack_8c-source.html">stack.c</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a3" doxytag="stack.c::show_trace"></a><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 show_trace </td>
+ <td class="md" valign="top">( </td>
+ <td class="md" nowrap valign="top">struct task_struct * </td>
+ <td class="mdname" nowrap> <em>task</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>unsigned long * </td>
+ <td class="mdname" nowrap> <em>stack</em></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">) </td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="stack_8c-source.html#l00142">142</a> of file <a class="el" href="stack_8c-source.html">stack.c</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
+</body>
+</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>map_node Struct Reference</h1><code>#include <<a class="el" href="map_8h-source.html">map.h</a>></code>
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="unionkey__data.html">key_data</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node.html#o3">key2</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum <a class="el" href="map_8h.html#a18">keytype</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node.html#o4">key1type</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum <a class="el" href="map_8h.html#a18">keytype</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node.html#o5">key2type</a></td></tr>
+
</table>
<hr><h2>Field Documentation</h2>
<a class="anchor" name="o1" doxytag="map_node::hnode"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8h-source.html#l00022">22</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00765">_stp_list_clear()</a>, <a class="el" href="map_8c-source.html#l00104">_stp_map_key_del()</a>, <a class="el" href="map_8c-source.html#l00471">_stp_map_set_int64()</a>, <a class="el" href="map_8c-source.html#l00633">_stp_map_set_stat()</a>, and <a class="el" href="map_8c-source.html#l00548">_stp_map_set_str()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00788">_stp_list_clear()</a>, <a class="el" href="map_8c-source.html#l00104">_stp_map_key_del()</a>, <a class="el" href="map_8c-source.html#l00656">_stp_map_set_stat()</a>, and <a class="el" href="map_8c-source.html#l00571">_stp_map_set_str()</a>. </td>
</tr>
</table>
<a class="anchor" name="o2" doxytag="map_node::key1"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
Referenced by <a class="el" href="map_8c-source.html#l00218">_stp_map_key_long_long()</a>, <a class="el" href="map_8c-source.html#l00358">_stp_map_key_long_str()</a>, <a class="el" href="map_8c-source.html#l00310">_stp_map_key_str_long()</a>, and <a class="el" href="map_8c-source.html#l00261">_stp_map_key_str_str()</a>. </td>
</tr>
</table>
+<a class="anchor" name="o4" doxytag="map_node::key1type"></a><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">enum <a class="el" href="map_8h.html#a18">keytype</a> <a class="el" href="structmap__node.html#o4">map_node::key1type</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="map_8h-source.html#l00025">25</a> of file <a class="el" href="map_8h-source.html">map.h</a>. </td>
+ </tr>
+</table>
<a class="anchor" name="o3" doxytag="map_node::key2"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
Referenced by <a class="el" href="map_8c-source.html#l00358">_stp_map_key_long_str()</a>, <a class="el" href="map_8c-source.html#l00310">_stp_map_key_str_long()</a>, and <a class="el" href="map_8c-source.html#l00261">_stp_map_key_str_str()</a>. </td>
</tr>
</table>
+<a class="anchor" name="o5" doxytag="map_node::key2type"></a><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">enum <a class="el" href="map_8h.html#a18">keytype</a> <a class="el" href="structmap__node.html#o5">map_node::key2type</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="map_8h-source.html#l00026">26</a> of file <a class="el" href="map_8h-source.html">map.h</a>. </td>
+ </tr>
+</table>
<a class="anchor" name="o0" doxytag="map_node::lnode"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8h-source.html#l00021">21</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00765">_stp_list_clear()</a>, <a class="el" href="map_8c-source.html#l00190">_stp_map_del()</a>, <a class="el" href="map_8c-source.html#l00172">_stp_map_iter()</a>, <a class="el" href="map_8c-source.html#l00104">_stp_map_key_del()</a>, <a class="el" href="map_8c-source.html#l00471">_stp_map_set_int64()</a>, <a class="el" href="map_8c-source.html#l00633">_stp_map_set_stat()</a>, and <a class="el" href="map_8c-source.html#l00548">_stp_map_set_str()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00788">_stp_list_clear()</a>, <a class="el" href="map_8c-source.html#l00190">_stp_map_del()</a>, <a class="el" href="map_8c-source.html#l00172">_stp_map_iter()</a>, <a class="el" href="map_8c-source.html#l00104">_stp_map_key_del()</a>, <a class="el" href="map_8c-source.html#l00656">_stp_map_set_stat()</a>, and <a class="el" href="map_8c-source.html#l00571">_stp_map_set_str()</a>. </td>
</tr>
</table>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="map_8h-source.html">map.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>map_node_int64 Struct Reference</h1><code>#include <<a class="el" href="map_8h-source.html">map.h</a>></code>
<p>
<table border="0" cellpadding="0" cellspacing="0">
</table>
<hr><h2>Field Documentation</h2>
<a class="anchor" name="o0" doxytag="map_node_int64::n"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
<p>
-Definition at line <a class="el" href="map_8h-source.html#l00031">31</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
-<p>
-Referenced by <a class="el" href="map_8c-source.html#l00471">_stp_map_set_int64()</a>. </td>
+Definition at line <a class="el" href="map_8h-source.html#l00031">31</a> of file <a class="el" href="map_8h-source.html">map.h</a>. </td>
</tr>
</table>
<a class="anchor" name="o1" doxytag="map_node_int64::val"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8h-source.html#l00032">32</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00528">_stp_map_get_int64()</a>, and <a class="el" href="map_8c-source.html#l00471">_stp_map_set_int64()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00551">_stp_map_get_int64()</a>. </td>
</tr>
</table>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="map_8h-source.html">map.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>map_node_stat Struct Reference</h1><code>#include <<a class="el" href="map_8h-source.html">map.h</a>></code>
<p>
<table border="0" cellpadding="0" cellspacing="0">
</table>
<hr><h2>Field Documentation</h2>
<a class="anchor" name="o0" doxytag="map_node_stat::n"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8h-source.html#l00041">41</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00633">_stp_map_set_stat()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00656">_stp_map_set_stat()</a>. </td>
</tr>
</table>
<a class="anchor" name="o1" doxytag="map_node_stat::stats"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8h-source.html#l00042">42</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00692">_stp_map_get_stat()</a>, <a class="el" href="map_8c-source.html#l00633">_stp_map_set_stat()</a>, and <a class="el" href="map_8c-source.html#l00713">_stp_map_stat_add()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00715">_stp_map_get_stat()</a>, <a class="el" href="map_8c-source.html#l00656">_stp_map_set_stat()</a>, and <a class="el" href="map_8c-source.html#l00736">_stp_map_stat_add()</a>. </td>
</tr>
</table>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="map_8h-source.html">map.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>map_node_str Struct Reference</h1><code>#include <<a class="el" href="map_8h-source.html">map.h</a>></code>
<p>
<table border="0" cellpadding="0" cellspacing="0">
</table>
<hr><h2>Field Documentation</h2>
<a class="anchor" name="o0" doxytag="map_node_str::n"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8h-source.html#l00036">36</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00548">_stp_map_set_str()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00571">_stp_map_set_str()</a>. </td>
</tr>
</table>
<a class="anchor" name="o1" doxytag="map_node_str::str"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8h-source.html#l00037">37</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00609">_stp_map_get_str()</a>, and <a class="el" href="map_8c-source.html#l00548">_stp_map_set_str()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00632">_stp_map_get_str()</a>, and <a class="el" href="map_8c-source.html#l00571">_stp_map_set_str()</a>. </td>
</tr>
</table>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="map_8h-source.html">map.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>map_root Struct Reference</h1><code>#include <<a class="el" href="map_8h-source.html">map.h</a>></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">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o0">maxnum</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum <a class="el" href="map_8h.html#a19">valtype</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o0">type</a></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o1">num</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o1">maxnum</a></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o2">no_wrap</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o2">num</a></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">list_head </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o3">head</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o3">no_wrap</a></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">list_head </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o4">pool</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">list_head </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o4">head</a></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structmap__node.html">map_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o5">key</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">list_head </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o5">pool</a></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">u_int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o6">create</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structmap__node.html">map_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o6">key</a></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">hlist_head * </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o7">c_keyhead</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">u_int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o7">create</a></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="unionkey__data.html">key_data</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o8">c_key1</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum <a class="el" href="map_8h.html#a18">keytype</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o8">c_key1type</a></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="unionkey__data.html">key_data</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o9">c_key2</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum <a class="el" href="map_8h.html#a18">keytype</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o9">c_key2type</a></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">hlist_head </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o10">hashes</a> [HASH_TABLE_SIZE]</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">hlist_head * </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o10">c_keyhead</a></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o11">membuf</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="unionkey__data.html">key_data</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o11">c_key1</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="unionkey__data.html">key_data</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o12">c_key2</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">hlist_head </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o13">hashes</a> [HASH_TABLE_SIZE]</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o14">membuf</a></td></tr>
</table>
<hr><h2>Field Documentation</h2>
-<a class="anchor" name="o8" doxytag="map_root::c_key1"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="o11" doxytag="map_root::c_key1"></a><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">union <a class="el" href="unionkey__data.html">key_data</a> <a class="el" href="structmap__root.html#o8">map_root::c_key1</a> </td>
+ <td class="md" nowrap valign="top">union <a class="el" href="unionkey__data.html">key_data</a> <a class="el" href="structmap__root.html#o11">map_root::c_key1</a> </td>
</tr>
</table>
</td>
Referenced by <a class="el" href="map_8c-source.html#l00218">_stp_map_key_long_long()</a>, <a class="el" href="map_8c-source.html#l00358">_stp_map_key_long_str()</a>, <a class="el" href="map_8c-source.html#l00310">_stp_map_key_str_long()</a>, and <a class="el" href="map_8c-source.html#l00261">_stp_map_key_str_str()</a>. </td>
</tr>
</table>
-<a class="anchor" name="o9" doxytag="map_root::c_key2"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="o8" doxytag="map_root::c_key1type"></a><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">union <a class="el" href="unionkey__data.html">key_data</a> <a class="el" href="structmap__root.html#o9">map_root::c_key2</a> </td>
+ <td class="md" nowrap valign="top">enum <a class="el" href="map_8h.html#a18">keytype</a> <a class="el" href="structmap__root.html#o8">map_root::c_key1type</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="map_8h-source.html#l00071">71</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
+<p>
+Referenced by <a class="el" href="map_8c-source.html#l00218">_stp_map_key_long_long()</a>, <a class="el" href="map_8c-source.html#l00358">_stp_map_key_long_str()</a>, <a class="el" href="map_8c-source.html#l00310">_stp_map_key_str_long()</a>, and <a class="el" href="map_8c-source.html#l00261">_stp_map_key_str_str()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o12" doxytag="map_root::c_key2"></a><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">union <a class="el" href="unionkey__data.html">key_data</a> <a class="el" href="structmap__root.html#o12">map_root::c_key2</a> </td>
</tr>
</table>
</td>
Referenced by <a class="el" href="map_8c-source.html#l00218">_stp_map_key_long_long()</a>, <a class="el" href="map_8c-source.html#l00358">_stp_map_key_long_str()</a>, <a class="el" href="map_8c-source.html#l00310">_stp_map_key_str_long()</a>, and <a class="el" href="map_8c-source.html#l00261">_stp_map_key_str_str()</a>. </td>
</tr>
</table>
-<a class="anchor" name="o7" doxytag="map_root::c_keyhead"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="o9" doxytag="map_root::c_key2type"></a><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">enum <a class="el" href="map_8h.html#a18">keytype</a> <a class="el" href="structmap__root.html#o9">map_root::c_key2type</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="map_8h-source.html#l00072">72</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
+<p>
+Referenced by <a class="el" href="map_8c-source.html#l00415">_stp_map_key_long()</a>, <a class="el" href="map_8c-source.html#l00218">_stp_map_key_long_long()</a>, <a class="el" href="map_8c-source.html#l00358">_stp_map_key_long_str()</a>, <a class="el" href="map_8c-source.html#l00399">_stp_map_key_str()</a>, <a class="el" href="map_8c-source.html#l00310">_stp_map_key_str_long()</a>, and <a class="el" href="map_8c-source.html#l00261">_stp_map_key_str_str()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o10" doxytag="map_root::c_keyhead"></a><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">struct hlist_head* <a class="el" href="structmap__root.html#o7">map_root::c_keyhead</a> </td>
+ <td class="md" nowrap valign="top">struct hlist_head* <a class="el" href="structmap__root.html#o10">map_root::c_keyhead</a> </td>
</tr>
</table>
</td>
Referenced by <a class="el" href="map_8c-source.html#l00218">_stp_map_key_long_long()</a>, <a class="el" href="map_8c-source.html#l00358">_stp_map_key_long_str()</a>, <a class="el" href="map_8c-source.html#l00310">_stp_map_key_str_long()</a>, and <a class="el" href="map_8c-source.html#l00261">_stp_map_key_str_str()</a>. </td>
</tr>
</table>
-<a class="anchor" name="o6" doxytag="map_root::create"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="o7" doxytag="map_root::create"></a><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">u_int8_t <a class="el" href="structmap__root.html#o6">map_root::create</a> </td>
+ <td class="md" nowrap valign="top">u_int8_t <a class="el" href="structmap__root.html#o7">map_root::create</a> </td>
</tr>
</table>
</td>
<p>
Definition at line <a class="el" href="map_8h-source.html#l00070">70</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00528">_stp_map_get_int64()</a>, <a class="el" href="map_8c-source.html#l00692">_stp_map_get_stat()</a>, <a class="el" href="map_8c-source.html#l00609">_stp_map_get_str()</a>, <a class="el" href="map_8c-source.html#l00104">_stp_map_key_del()</a>, <a class="el" href="map_8c-source.html#l00218">_stp_map_key_long_long()</a>, <a class="el" href="map_8c-source.html#l00358">_stp_map_key_long_str()</a>, <a class="el" href="map_8c-source.html#l00310">_stp_map_key_str_long()</a>, <a class="el" href="map_8c-source.html#l00261">_stp_map_key_str_str()</a>, <a class="el" href="map_8c-source.html#l00471">_stp_map_set_int64()</a>, <a class="el" href="map_8c-source.html#l00633">_stp_map_set_stat()</a>, <a class="el" href="map_8c-source.html#l00548">_stp_map_set_str()</a>, and <a class="el" href="map_8c-source.html#l00713">_stp_map_stat_add()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00551">_stp_map_get_int64()</a>, <a class="el" href="map_8c-source.html#l00715">_stp_map_get_stat()</a>, <a class="el" href="map_8c-source.html#l00632">_stp_map_get_str()</a>, <a class="el" href="map_8c-source.html#l00218">_stp_map_key_long_long()</a>, <a class="el" href="map_8c-source.html#l00358">_stp_map_key_long_str()</a>, <a class="el" href="map_8c-source.html#l00310">_stp_map_key_str_long()</a>, <a class="el" href="map_8c-source.html#l00261">_stp_map_key_str_str()</a>, <a class="el" href="map_8c-source.html#l00656">_stp_map_set_stat()</a>, <a class="el" href="map_8c-source.html#l00571">_stp_map_set_str()</a>, and <a class="el" href="map_8c-source.html#l00736">_stp_map_stat_add()</a>. </td>
</tr>
</table>
-<a class="anchor" name="o10" doxytag="map_root::hashes"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="o13" doxytag="map_root::hashes"></a><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">struct hlist_head <a class="el" href="structmap__root.html#o10">map_root::hashes</a>[HASH_TABLE_SIZE] </td>
+ <td class="md" nowrap valign="top">struct hlist_head <a class="el" href="structmap__root.html#o13">map_root::hashes</a>[HASH_TABLE_SIZE] </td>
</tr>
</table>
</td>
Referenced by <a class="el" href="map_8c-source.html#l00218">_stp_map_key_long_long()</a>, <a class="el" href="map_8c-source.html#l00358">_stp_map_key_long_str()</a>, <a class="el" href="map_8c-source.html#l00310">_stp_map_key_str_long()</a>, and <a class="el" href="map_8c-source.html#l00261">_stp_map_key_str_str()</a>. </td>
</tr>
</table>
-<a class="anchor" name="o3" doxytag="map_root::head"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="o4" doxytag="map_root::head"></a><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">struct list_head <a class="el" href="structmap__root.html#o3">map_root::head</a> </td>
+ <td class="md" nowrap valign="top">struct list_head <a class="el" href="structmap__root.html#o4">map_root::head</a> </td>
</tr>
</table>
</td>
<p>
Definition at line <a class="el" href="map_8h-source.html#l00059">59</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00765">_stp_list_clear()</a>, <a class="el" href="map_8c-source.html#l00190">_stp_map_del()</a>, <a class="el" href="map_8c-source.html#l00172">_stp_map_iter()</a>, <a class="el" href="map_8c-source.html#l00043">_stp_map_new()</a>, <a class="el" href="map_8c-source.html#l00471">_stp_map_set_int64()</a>, <a class="el" href="map_8c-source.html#l00633">_stp_map_set_stat()</a>, <a class="el" href="map_8c-source.html#l00548">_stp_map_set_str()</a>, and <a class="el" href="map_8c-source.html#l00149">_stp_map_start()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00788">_stp_list_clear()</a>, <a class="el" href="map_8c-source.html#l00190">_stp_map_del()</a>, <a class="el" href="map_8c-source.html#l00172">_stp_map_iter()</a>, <a class="el" href="map_8c-source.html#l00043">_stp_map_new()</a>, <a class="el" href="map_8c-source.html#l00656">_stp_map_set_stat()</a>, <a class="el" href="map_8c-source.html#l00571">_stp_map_set_str()</a>, and <a class="el" href="map_8c-source.html#l00149">_stp_map_start()</a>. </td>
</tr>
</table>
-<a class="anchor" name="o5" doxytag="map_root::key"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="o6" doxytag="map_root::key"></a><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">struct <a class="el" href="structmap__node.html">map_node</a>* <a class="el" href="structmap__root.html#o5">map_root::key</a> </td>
+ <td class="md" nowrap valign="top">struct <a class="el" href="structmap__node.html">map_node</a>* <a class="el" href="structmap__root.html#o6">map_root::key</a> </td>
</tr>
</table>
</td>
<p>
Definition at line <a class="el" href="map_8h-source.html#l00066">66</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00528">_stp_map_get_int64()</a>, <a class="el" href="map_8c-source.html#l00692">_stp_map_get_stat()</a>, <a class="el" href="map_8c-source.html#l00609">_stp_map_get_str()</a>, <a class="el" href="map_8c-source.html#l00104">_stp_map_key_del()</a>, <a class="el" href="map_8c-source.html#l00218">_stp_map_key_long_long()</a>, <a class="el" href="map_8c-source.html#l00358">_stp_map_key_long_str()</a>, <a class="el" href="map_8c-source.html#l00310">_stp_map_key_str_long()</a>, <a class="el" href="map_8c-source.html#l00261">_stp_map_key_str_str()</a>, <a class="el" href="map_8c-source.html#l00471">_stp_map_set_int64()</a>, <a class="el" href="map_8c-source.html#l00633">_stp_map_set_stat()</a>, <a class="el" href="map_8c-source.html#l00548">_stp_map_set_str()</a>, and <a class="el" href="map_8c-source.html#l00713">_stp_map_stat_add()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00551">_stp_map_get_int64()</a>, <a class="el" href="map_8c-source.html#l00715">_stp_map_get_stat()</a>, <a class="el" href="map_8c-source.html#l00632">_stp_map_get_str()</a>, <a class="el" href="map_8c-source.html#l00218">_stp_map_key_long_long()</a>, <a class="el" href="map_8c-source.html#l00358">_stp_map_key_long_str()</a>, <a class="el" href="map_8c-source.html#l00310">_stp_map_key_str_long()</a>, <a class="el" href="map_8c-source.html#l00261">_stp_map_key_str_str()</a>, <a class="el" href="map_8c-source.html#l00656">_stp_map_set_stat()</a>, <a class="el" href="map_8c-source.html#l00571">_stp_map_set_str()</a>, and <a class="el" href="map_8c-source.html#l00736">_stp_map_stat_add()</a>. </td>
</tr>
</table>
-<a class="anchor" name="o0" doxytag="map_root::maxnum"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="o1" doxytag="map_root::maxnum"></a><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">int <a class="el" href="structmap__root.html#o0">map_root::maxnum</a> </td>
+ <td class="md" nowrap valign="top">int <a class="el" href="structmap__root.html#o1">map_root::maxnum</a> </td>
</tr>
</table>
</td>
<p>
Definition at line <a class="el" href="map_8h-source.html#l00050">50</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00765">_stp_list_clear()</a>, <a class="el" href="map_8c-source.html#l00104">_stp_map_key_del()</a>, <a class="el" href="map_8c-source.html#l00043">_stp_map_new()</a>, <a class="el" href="map_8c-source.html#l00471">_stp_map_set_int64()</a>, <a class="el" href="map_8c-source.html#l00633">_stp_map_set_stat()</a>, and <a class="el" href="map_8c-source.html#l00548">_stp_map_set_str()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00788">_stp_list_clear()</a>, <a class="el" href="map_8c-source.html#l00043">_stp_map_new()</a>, <a class="el" href="map_8c-source.html#l00656">_stp_map_set_stat()</a>, and <a class="el" href="map_8c-source.html#l00571">_stp_map_set_str()</a>. </td>
</tr>
</table>
-<a class="anchor" name="o11" doxytag="map_root::membuf"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="o14" doxytag="map_root::membuf"></a><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* <a class="el" href="structmap__root.html#o11">map_root::membuf</a> </td>
+ <td class="md" nowrap valign="top">void* <a class="el" href="structmap__root.html#o14">map_root::membuf</a> </td>
</tr>
</table>
</td>
Referenced by <a class="el" href="map_8c-source.html#l00190">_stp_map_del()</a>, and <a class="el" href="map_8c-source.html#l00043">_stp_map_new()</a>. </td>
</tr>
</table>
-<a class="anchor" name="o2" doxytag="map_root::no_wrap"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="o3" doxytag="map_root::no_wrap"></a><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">int <a class="el" href="structmap__root.html#o2">map_root::no_wrap</a> </td>
+ <td class="md" nowrap valign="top">int <a class="el" href="structmap__root.html#o3">map_root::no_wrap</a> </td>
</tr>
</table>
</td>
<p>
Definition at line <a class="el" href="map_8h-source.html#l00056">56</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00753">_stp_list_new()</a>, <a class="el" href="map_8c-source.html#l00471">_stp_map_set_int64()</a>, <a class="el" href="map_8c-source.html#l00633">_stp_map_set_stat()</a>, and <a class="el" href="map_8c-source.html#l00548">_stp_map_set_str()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00776">_stp_list_new()</a>, <a class="el" href="map_8c-source.html#l00656">_stp_map_set_stat()</a>, and <a class="el" href="map_8c-source.html#l00571">_stp_map_set_str()</a>. </td>
</tr>
</table>
-<a class="anchor" name="o1" doxytag="map_root::num"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="o2" doxytag="map_root::num"></a><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">int <a class="el" href="structmap__root.html#o1">map_root::num</a> </td>
+ <td class="md" nowrap valign="top">int <a class="el" href="structmap__root.html#o2">map_root::num</a> </td>
</tr>
</table>
</td>
<p>
Definition at line <a class="el" href="map_8h-source.html#l00053">53</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
<p>
-Referenced by <a class="el" href="copy_8c-source.html#l00115">_stp_copy_argv_from_user()</a>, <a class="el" href="map_8c-source.html#l00816">_stp_list_add_int64()</a>, <a class="el" href="map_8c-source.html#l00805">_stp_list_add_str()</a>, <a class="el" href="map_8c-source.html#l00765">_stp_list_clear()</a>, <a class="el" href="map_8c-source.html#l00827">_stp_list_size()</a>, and <a class="el" href="map_8c-source.html#l00104">_stp_map_key_del()</a>. </td>
+Referenced by <a class="el" href="copy_8c-source.html#l00115">_stp_copy_argv_from_user()</a>, <a class="el" href="map_8c-source.html#l00839">_stp_list_add_int64()</a>, <a class="el" href="map_8c-source.html#l00828">_stp_list_add_str()</a>, <a class="el" href="map_8c-source.html#l00788">_stp_list_clear()</a>, and <a class="el" href="map_8c-source.html#l00850">_stp_list_size()</a>. </td>
</tr>
</table>
-<a class="anchor" name="o4" doxytag="map_root::pool"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<a class="anchor" name="o5" doxytag="map_root::pool"></a><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">struct list_head <a class="el" href="structmap__root.html#o4">map_root::pool</a> </td>
+ <td class="md" nowrap valign="top">struct list_head <a class="el" href="structmap__root.html#o5">map_root::pool</a> </td>
</tr>
</table>
</td>
<p>
Definition at line <a class="el" href="map_8h-source.html#l00063">63</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00765">_stp_list_clear()</a>, <a class="el" href="map_8c-source.html#l00104">_stp_map_key_del()</a>, <a class="el" href="map_8c-source.html#l00043">_stp_map_new()</a>, <a class="el" href="map_8c-source.html#l00471">_stp_map_set_int64()</a>, <a class="el" href="map_8c-source.html#l00633">_stp_map_set_stat()</a>, and <a class="el" href="map_8c-source.html#l00548">_stp_map_set_str()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00788">_stp_list_clear()</a>, <a class="el" href="map_8c-source.html#l00043">_stp_map_new()</a>, <a class="el" href="map_8c-source.html#l00656">_stp_map_set_stat()</a>, and <a class="el" href="map_8c-source.html#l00571">_stp_map_set_str()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o0" doxytag="map_root::type"></a><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">enum <a class="el" href="map_8h.html#a19">valtype</a> <a class="el" href="structmap__root.html#o0">map_root::type</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="map_8h-source.html#l00047">47</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
+<p>
+Referenced by <a class="el" href="map_8c-source.html#l00043">_stp_map_new()</a>. </td>
</tr>
</table>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="map_8h-source.html">map.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>stat Struct Reference</h1><code>#include <<a class="el" href="map_8h-source.html">map.h</a>></code>
<p>
<table border="0" cellpadding="0" cellspacing="0">
</table>
<hr><h2>Field Documentation</h2>
<a class="anchor" name="o0" doxytag="stat::count"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8h-source.html#l00005">5</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00713">_stp_map_stat_add()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00736">_stp_map_stat_add()</a>. </td>
</tr>
</table>
<a class="anchor" name="o4" doxytag="stat::histogram"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
</tr>
</table>
<a class="anchor" name="o3" doxytag="stat::max"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8h-source.html#l00007">7</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00713">_stp_map_stat_add()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00736">_stp_map_stat_add()</a>. </td>
</tr>
</table>
<a class="anchor" name="o2" doxytag="stat::min"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8h-source.html#l00007">7</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00713">_stp_map_stat_add()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00736">_stp_map_stat_add()</a>. </td>
</tr>
</table>
<a class="anchor" name="o1" doxytag="stat::sum"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<p>
Definition at line <a class="el" href="map_8h-source.html#l00006">6</a> of file <a class="el" href="map_8h-source.html">map.h</a>.
<p>
-Referenced by <a class="el" href="map_8c-source.html#l00713">_stp_map_stat_add()</a>. </td>
+Referenced by <a class="el" href="map_8c-source.html#l00736">_stp_map_stat_add()</a>. </td>
</tr>
</table>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="map_8h-source.html">map.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
-<h1><a class="anchor" name="todo">Todo List</a></h1><a class="anchor" name="_todo000004"></a> <dl>
-<dt>page <a class="el" href="index.html">SystemTap Runtime Library</a> </dt>
-<dd>The Runtime Library is not actually a library yet. It is just a collection of functions included in the probe boilerplate. </dd>
-</dl>
-<p>
-<a class="anchor" name="_todo000001"></a> <dl>
-<dt>Global <a class="el" href="io_8c.html#a0">dlog</a> (const char *fmt,...) </dt>
+<!-- Generated by Doxygen 1.4.1 -->
+<h1><a class="anchor" name="todo">Todo List</a></h1><a class="anchor" name="_todo000001"></a> <dl>
+<dt>Global <a class="el" href="io_8c.html#a4">dlog</a> (const char *fmt,...) </dt>
<dd>Needs replaced with something much faster that does not use the system log. </dd>
</dl>
<p>
<a class="anchor" name="_todo000002"></a> <dl>
-<dt>Global <a class="el" href="map_8c.html#a20">_stp_map_set_stat</a> (MAP map, stat *stats) </dt>
+<dt>Global <a class="el" href="map_8c.html#a22">_stp_map_set_stat</a> (MAP map, stat *stats) </dt>
<dd>Histograms don't work yet. </dd>
</dl>
<p>
<a class="anchor" name="_todo000003"></a> <dl>
-<dt>Global <a class="el" href="map_8c.html#a22">_stp_map_stat_add</a> (MAP map, int64_t val) </dt>
+<dt>Global <a class="el" href="map_8c.html#a24">_stp_map_stat_add</a> (MAP map, int64_t val) </dt>
<dd>Histograms don't work yet. </dd>
</dl>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
</head><body>
<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
-<!-- Generated by Doxygen 1.3.9.1 -->
+<!-- Generated by Doxygen 1.4.1 -->
<h1>key_data Union Reference</h1><code>#include <<a class="el" href="map_8h-source.html">map.h</a>></code>
<p>
<table border="0" cellpadding="0" cellspacing="0">
</table>
<hr><h2>Field Documentation</h2>
<a class="anchor" name="o1" doxytag="key_data::str"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
</tr>
</table>
<a class="anchor" name="o0" doxytag="key_data::val"></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
</table>
<hr>The documentation for this union was generated from the following file:<ul>
<li><a class="el" href="map_8h-source.html">map.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by
<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>
va_end(args);
}
+
+static const char * (*_stp_kallsyms_lookup)(unsigned long addr,
+ unsigned long *symbolsize,
+ unsigned long *offset,
+ char **modname, char *namebuf)=(void *)KALLSYMS_LOOKUP;
+
+
+#define STP_BUF_LEN 8191
+
+/* FIXME. These need to be per-cpu */
+static char _stp_pbuf[STP_BUF_LEN+1];
+static int _stp_pbuf_len = STP_BUF_LEN;
+
+void _stp_print_buf (const char *fmt, ...)
+{
+ int num;
+ va_list args;
+ char *buf = _stp_pbuf + STP_BUF_LEN - _stp_pbuf_len;
+ va_start(args, fmt);
+ num = vscnprintf(buf, _stp_pbuf_len, fmt, args);
+ va_end(args);
+ if (num > 0)
+ _stp_pbuf_len -= num;
+}
+
+void _stp_print_buf_init (void)
+{
+ _stp_pbuf_len = STP_BUF_LEN;
+ _stp_pbuf[0] = 0;
+}
+
+void _stp_print_symbol(const char *fmt, unsigned long address)
+{
+ char *modname;
+ const char *name;
+ unsigned long offset, size;
+ char namebuf[KSYM_NAME_LEN+1];
+
+ name = _stp_kallsyms_lookup(address, &size, &offset, &modname, namebuf);
+
+ if (!name)
+ _stp_print_buf("0x%lx", address);
+ else {
+ if (modname)
+ _stp_print_buf("%s+%#lx/%#lx [%s]", name, offset,
+ size, modname);
+ else
+ _stp_print_buf("%s+%#lx/%#lx", name, offset, size);
+ }
+}
+
+
+unsigned long cur_ret_addr (struct pt_regs *regs)
+{
+#ifdef __x86_64__
+ unsigned long *ra = (unsigned long *)regs->rsp;
+#else
+ unsigned long *ra = (unsigned long *)regs->esp;
+#endif
+ if (ra)
+ return *ra;
+ else
+ return 0;
+}
map->num++;
}
-/** Set the current element's value to an int64.
- * This sets the current element's value to an int64. The map must have been created
- * to hold int64s using _stp_map_new()
- *
- * If the element doesn't exist, it is created. If no current element (key)
- * is set for the map, this function does nothing.
- * @param map
- * @param val new value
- */
-
-void _stp_map_set_int64(MAP map, int64_t val)
+static void __stp_map_set_int64(MAP map, int64_t val, int add)
{
struct map_node_int64 *m;
if (val) {
m = (struct map_node_int64 *)map->key;
- m->val = val;
- } else {
+ if (add)
+ m->val += val;
+ else
+ m->val = val;
+ } else if (!add) {
/* setting value to 0 is the same as deleting */
_stp_map_key_del(map);
}
}
}
+/** Set the current element's value to an int64.
+ * This sets the current element's value to an int64. The map must have been created
+ * to hold int64s using _stp_map_new()
+ *
+ * If the element doesn't exist, it is created. If no current element (key)
+ * is set for the map, this function does nothing.
+ * @param map
+ * @param val new value
+ */
+void _stp_map_set_int64(MAP map, int64_t val)
+{
+ __stp_map_set_int64 (map, val, 0);
+}
+
+
+/** Adds an int64 to the current element's value.
+ * This adds an int64 to the current element's value. The map must have been created
+ * to hold int64s using _stp_map_new()
+ *
+ * If the element doesn't exist, it is created. If no current element (key)
+ * is set for the map, this function does nothing.
+ * @param map
+ * @param val value
+ */
+
+void _stp_map_add_int64(MAP map, int64_t val)
+{
+ __stp_map_set_int64 (map, val, 1);
+}
+
/** Gets the current element's value.
* @param map
* @returns The value. If the current element is not set or doesn't exist, returns 0.
#include <linux/module.h>
+#include <linux/kernel.h>
#include <linux/miscdevice.h>
#include <linux/init.h>
#include <linux/hash.h>
#include <linux/vmalloc.h>
#include <linux/time.h>
#include <linux/spinlock.h>
+#include <linux/hardirq.h>
#include <asm/uaccess.h>
+#include <linux/kallsyms.h>
#include "alloc.h"
#include "map.h"