]> sourceware.org Git - systemtap.git/commitdiff
*** empty log message ***
authorhunt <hunt>
Mon, 21 Mar 2005 21:47:54 +0000 (21:47 +0000)
committerhunt <hunt>
Mon, 21 Mar 2005 21:47:54 +0000 (21:47 +0000)
47 files changed:
runtime/ChangeLog [new file with mode: 0644]
runtime/Doxyfile
runtime/README
runtime/docs/html/README-source.html
runtime/docs/html/README.html
runtime/docs/html/alloc_8h-source.html
runtime/docs/html/alloc_8h.html
runtime/docs/html/annotated.html
runtime/docs/html/bug.html
runtime/docs/html/copy_8c-source.html
runtime/docs/html/copy_8c.html
runtime/docs/html/doxygen.css
runtime/docs/html/files.html
runtime/docs/html/functions.html
runtime/docs/html/functions_vars.html
runtime/docs/html/globals.html
runtime/docs/html/globals_defs.html
runtime/docs/html/globals_enum.html
runtime/docs/html/globals_eval.html
runtime/docs/html/globals_func.html
runtime/docs/html/globals_type.html
runtime/docs/html/globals_vars.html
runtime/docs/html/index.html
runtime/docs/html/io_8c-source.html
runtime/docs/html/io_8c.html
runtime/docs/html/map_8c-source.html
runtime/docs/html/map_8c.html
runtime/docs/html/map_8h-source.html
runtime/docs/html/map_8h.html
runtime/docs/html/pages.html
runtime/docs/html/probes_8c-source.html [new file with mode: 0644]
runtime/docs/html/probes_8c.html [new file with mode: 0644]
runtime/docs/html/runtime_8h-source.html
runtime/docs/html/runtime_8h.html
runtime/docs/html/stack_8c-source.html [new file with mode: 0644]
runtime/docs/html/stack_8c.html [new file with mode: 0644]
runtime/docs/html/structmap__node.html
runtime/docs/html/structmap__node__int64.html
runtime/docs/html/structmap__node__stat.html
runtime/docs/html/structmap__node__str.html
runtime/docs/html/structmap__root.html
runtime/docs/html/structstat.html
runtime/docs/html/todo.html
runtime/docs/html/unionkey__data.html
runtime/io.c
runtime/map.c
runtime/runtime.h

diff --git a/runtime/ChangeLog b/runtime/ChangeLog
new file mode 100644 (file)
index 0000000..9798158
--- /dev/null
@@ -0,0 +1,9 @@
+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.
+       
index 050d444993663c2be31ba160bfe53bc76023971b..da7b57fb8ee0d742fa61f4dcd66575368e36bf0e 100644 (file)
@@ -461,7 +461,7 @@ EXCLUDE_PATTERNS       =
 # 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 
index d7146655693205033c0111aa70047bd95b699d28..824d35c341968a4cace7cbe3c72b267feb59d5c3 100644 (file)
  * 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.
  *
  */
index 2b8a1dfd851bf1745ff5bc70065303e9cd630152..32a5d7a84cb8ee7293e43a3656864d28f3afa893 100644 (file)
@@ -5,10 +5,10 @@
 </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&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index 0da9fbaf6867d0a6774d2e350a5293423df4de7f..d4ddc434758237772d401e1f19b71d56ab7896ec 100644 (file)
@@ -5,14 +5,14 @@
 </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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index ba908655e26d7a74c69c0acef504811accb68090..42be2b627494886ca855fce324deb04dd0307bb9 100644 (file)
@@ -5,49 +5,49 @@
 </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&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index 6a5db5ab2dbf1e26be67fcec8bad0f768d2d4bb6..0bab6a97c0d97df6d49a3c819c055cabb1cfc1b2 100644 (file)
@@ -5,41 +5,44 @@
 </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 &nbsp;</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 &nbsp;</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 *&nbsp;</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 *&nbsp;</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">&nbsp;</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 *&nbsp;</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">&nbsp;</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 *&nbsp;</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">&nbsp;</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 *&nbsp;</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">&nbsp;</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 *&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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>&nbsp;</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">&nbsp;</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>
@@ -55,9 +58,9 @@
 <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>&nbsp;</td><td>
+<tr><td valign="top"><em><a class="anchor" name="a8a1" doxytag="ERR_NONE"></a>ERR_NONE</em>&nbsp;</td><td>
 </td></tr>
-<tr><td valign="top"><em><a class="anchor" name="a7a1" doxytag="ERR_NO_MEM"></a>ERR_NO_MEM</em>&nbsp;</td><td>
+<tr><td valign="top"><em><a class="anchor" name="a8a2" doxytag="ERR_NO_MEM"></a>ERR_NO_MEM</em>&nbsp;</td><td>
 </td></tr>
 </table>
 </dl>
@@ -67,8 +70,8 @@ Definition at line <a class="el" href="alloc_8h-source.html#l00001">1</a> of fil
   </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">
@@ -105,11 +108,13 @@ This is used for small allocations from within a running probe where the process
 <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">
@@ -148,11 +153,11 @@ Definition at line <a class="el" href="alloc_8h-source.html#l00028">28</a> of fi
 <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">
@@ -187,11 +192,11 @@ Frees memory allocated by _stp_alloc or _stp_calloc.
 <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">
@@ -227,11 +232,13 @@ This is typically used in the module initialization to allocate new maps, lists,
 <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">
@@ -269,8 +276,36 @@ Definition at line <a class="el" href="alloc_8h-source.html#l00067">67</a> of fi
 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&nbsp;
+<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>
+      &nbsp;
+    </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&nbsp;
 <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>
index 77bc2e381dba6e89521334d4ca4276374d3fa0f3..cec81d584c8ca4fadb6cca87d35ed512d56a0097 100644 (file)
@@ -5,7 +5,7 @@
 </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>
@@ -15,8 +15,8 @@
   <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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index a2be5f086c38b7b73eab91222ba9306a19611600..30f41ef4a1181d152e5fb4523a62aff0d3724246 100644 (file)
@@ -5,23 +5,23 @@
 </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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index 2e21314cdc1b291199c0c395b63ee996c11335c2..3d70030b7f8485e03a276b51216d891ca88ea478 100644 (file)
@@ -5,7 +5,7 @@
 </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-&gt;<a class="code" href="structmap__root.html#o1">num</a>;
+00136         <span class="keywordflow">return</span> list-&gt;<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&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index 0febb9ab4f3a07a0f64515f3c60d323cd017e941..75a632373f65dff18c12c8d7b20f0d5c058a1531 100644 (file)
@@ -5,7 +5,7 @@
 </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">
@@ -23,7 +23,7 @@
 </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">
@@ -81,11 +81,11 @@ Copy an argv from user space to a List.
 <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">
@@ -141,7 +141,7 @@ Definition at line <a class="el" href="copy_8c-source.html#l00100">100</a> of fi
   </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">
@@ -197,8 +197,8 @@ Definition at line <a class="el" href="copy_8c-source.html#l00079">79</a> of fil
 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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index 1d4d63117fe1f5c2fde2df1c98c83c22d3f9ff29..e5272cd124c9eb574558df3d008d06fa840535d8 100644 (file)
@@ -1,8 +1,18 @@
 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 {
@@ -75,6 +85,11 @@ PRE.fragment {
 }
 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 {
@@ -83,7 +98,7 @@ 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;
@@ -138,7 +153,7 @@ SPAN.charliteral   { color: #008080 }
 }
 .mdescLeft {
        padding: 0px 8px 4px 8px;
-       font-size: 12px;
+       font-size: 80%;
        font-style: italic;
        background-color: #FAFAFA;
        border-top: 1px none #E0E0E0;
@@ -149,7 +164,7 @@ SPAN.charliteral   { color: #008080 }
 }
 .mdescRight {
        padding: 0px 8px 4px 8px;
-       font-size: 12px;
+       font-size: 80%;
        font-style: italic;
        background-color: #FAFAFA;
        border-top: 1px none #E0E0E0;
@@ -174,7 +189,7 @@ SPAN.charliteral   { color: #008080 }
        border-bottom-style: none;
        border-left-style: none;
        background-color: #FAFAFA;
-       font-size: 12px;
+       font-size: 80%;
 }
 .memItemRight {
        padding: 1px 8px 0px 8px;
@@ -192,7 +207,7 @@ SPAN.charliteral   { color: #008080 }
        border-bottom-style: none;
        border-left-style: none;
        background-color: #FAFAFA;
-       font-size: 13px;
+       font-size: 80%;
 }
 .memTemplItemLeft {
        padding: 1px 0px 0px 8px;
@@ -210,7 +225,7 @@ SPAN.charliteral   { color: #008080 }
        border-bottom-style: none;
        border-left-style: none;
        background-color: #FAFAFA;
-       font-size: 12px;
+       font-size: 80%;
 }
 .memTemplItemRight {
        padding: 1px 8px 0px 8px;
@@ -228,7 +243,7 @@ SPAN.charliteral   { color: #008080 }
        border-bottom-style: none;
        border-left-style: none;
        background-color: #FAFAFA;
-       font-size: 13px;
+       font-size: 80%;
 }
 .memTemplParams {
        padding: 1px 0px 0px 8px;
@@ -247,7 +262,7 @@ SPAN.charliteral   { color: #008080 }
        border-left-style: none;
        color: #606060;
        background-color: #FAFAFA;
-       font-size: 12px;
+       font-size: 80%;
 }
 .search     { color: #003399;
               font-weight: bold;
@@ -269,3 +284,14 @@ a {
 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;
+}
index 599ee02da6bb2f5a1da89a4774e821d80a77f3c4..61d4d78fb17ea5d76c09b5d1deaf614307f8af57 100644 (file)
@@ -5,18 +5,20 @@
 </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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index 60b6cf16419abe224ffa546d84c97c9f32d4fb9f..57e3e3fa1643f9047e8f23fae280e6a6046a4964 100644 (file)
@@ -5,39 +5,44 @@
 </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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index aa0ebe5a6bbc9ec11c4cf42c798e522a59be4bb3..9b26f0537e45389a43a25b61cb997dc883ea3c82 100644 (file)
@@ -5,39 +5,44 @@
 </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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index 9c4c693fd4cd0f48f48d95a99151975393403204..8e03810f3866a2361f265a486eed4c67281d138d 100644 (file)
@@ -5,30 +5,33 @@
 </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&nbsp;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()
@@ -41,24 +44,35 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 : <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>
@@ -85,15 +99,17 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 <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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index ed1d24244f0ec16e917cec016f85dbe26076e925..5f1ecf34538bb9ffe3fcf8f8994fcd4efc0d493a 100644 (file)
@@ -5,7 +5,7 @@
 </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&nbsp;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&nbsp;
+: <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&nbsp;
 <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>
index f12861a2a3f337f2d90c33bc5116a7ea5783a2a1..4bc2a02e20a1af56c792b2777b4b4c2c3a3c5097 100644 (file)
@@ -5,17 +5,17 @@
 </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&nbsp;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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index f697e2e02ba7f004a5c5665fde30b8e87f53103f..4771c4a5de1e8b7ddbc12afe58ab3b448ba368bf 100644 (file)
@@ -5,23 +5,23 @@
 </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&nbsp;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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index 3ef3fd400c9af65591dc9f0afbe666c3d903e7a1..c1cde956d4c6b25dadf0830bb8b0eeb907621e83 100644 (file)
@@ -5,29 +5,31 @@
 </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&nbsp;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&nbsp;
+: <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&nbsp;
 <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>
index 194983d0a2d5ccba1e2c56b395f057be076ee2bf..69817e46f86b4ed143c6a7c61cbb6d3fc692a8ca 100644 (file)
@@ -5,15 +5,15 @@
 </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&nbsp;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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index f0282f637d5183065180109f90f2e1367c082ccb..883ff4eec07e431c8762d9df521301be3f828511 100644 (file)
@@ -5,15 +5,16 @@
 </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&nbsp;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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index 3796e861f0fbf7554324b1d39412ba55fa8629aa..dd4edd274e12a79a0749226ad917b503439df50e 100644 (file)
@@ -5,7 +5,7 @@
 </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">
@@ -26,15 +26,16 @@ map_key_str (mymap, <span class="stringliteral">"birth year"</span>);
 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&nbsp;
+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&nbsp;
 <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>
index 5a5c1fe3907a16a368dd0fe5196ef37f57152c8c..a152c946b88f2a8de03c60b1a49d02d0a630c13f 100644 (file)
@@ -5,9 +5,9 @@
 </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&nbsp;
+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 &gt; 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, &amp;size, &amp;offset, &amp;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-&gt;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-&gt;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&nbsp;
 <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>
index 1419497c2ecf88154442dc9eae2070eb727d7487..85784820fa9939b1b30105472729cb1d9db301ab 100644 (file)
 </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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8c.html#a0">STP_BUF_LEN</a>&nbsp;&nbsp;&nbsp;8191</td></tr>
+
 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</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&nbsp;</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">&nbsp;</td><td class="mdescRight">Logs data.  <a href="#a4"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;&nbsp;&nbsp;8191          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
 
-<tr><td class="mdescLeft">&nbsp;</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">(&nbsp;</td>
+          <td class="md" nowrap valign="top">const char *&nbsp;</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>&nbsp;</td>
+          <td class="mdname" nowrap> <em>...</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+
+<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">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+
+<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">(&nbsp;</td>
+          <td class="md" nowrap valign="top">const char *&nbsp;</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&nbsp;</td>
+          <td class="mdname" nowrap> <em>address</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+
+<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">(&nbsp;</td>
+          <td class="md" nowrap valign="top">struct pt_regs *&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>regs</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+
+<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">
@@ -65,11 +250,11 @@ This function is compatible with printk. In fact it currently sends all output t
 <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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index 301087fbbb59762aa148fe7433055f9e45c8ca39..03aa6f476b97f66bb83bf4df4442e72b0ddcfd54 100644 (file)
@@ -5,7 +5,7 @@
 </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 &amp;&amp; *v &amp;&amp; count++ &lt; 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(&amp;m-&gt;<a class="code" href="structmap__root.html#o3">head</a>);
+00050         INIT_LIST_HEAD(&amp;m-&gt;<a class="code" href="structmap__root.html#o4">head</a>);
 00051 
-00052         m-&gt;<a class="code" href="structmap__root.html#o0">maxnum</a> = max_entries;
-00053         m-&gt;type = type;
-00054         <span class="keywordflow">if</span> (type &gt;= END) {
+00052         m-&gt;<a class="code" href="structmap__root.html#o1">maxnum</a> = max_entries;
+00053         m-&gt;<a class="code" href="structmap__root.html#o0">type</a> = type;
+00054         <span class="keywordflow">if</span> (type &gt;= <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(&amp;m-&gt;<a class="code" href="structmap__root.html#o4">pool</a>);
+00064                 INIT_LIST_HEAD(&amp;m-&gt;<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 &gt;= 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, &amp;m-&gt;<a class="code" href="structmap__root.html#o4">pool</a>);
+00071                         list_add(e, &amp;m-&gt;<a class="code" href="structmap__root.html#o5">pool</a>);
 00072                 }
-00073                 m-&gt;<a class="code" href="structmap__root.html#o11">membuf</a> = tmp;
+00073                 m-&gt;<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-&gt;type == STRING) {
+00082         <span class="keywordflow">if</span> (map-&gt;<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-&gt;<a class="code" href="structmap__node__str.html#o1">str</a>);
 00084                 <span class="keywordflow">if</span> (m-&gt;<a class="code" href="structmap__node__str.html#o1">str</a>)
-00085                         <a class="code" href="alloc_8h.html#a5">_stp_free</a>(m-&gt;<a class="code" href="structmap__node__str.html#o1">str</a>);
+00085                         _stp_free(m-&gt;str);
 00086         }
-00087         <span class="keywordflow">if</span> (m-&gt;<a class="code" href="structmap__node__str.html#o0">n</a>.key1type == STR) {
+00087         if (m-&gt;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-&gt;<a class="code" href="structmap__node__str.html#o0">n</a>.key2type == STR) {
+00092         if (m-&gt;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-&gt;<a class="code" href="structmap__root.html#o6">create</a>, (<span class="keywordtype">long</span>)map-&gt;<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-&gt;create, (<span class="keywordtype">long</span>)map-&gt;key);
 00109         <span class="keywordflow">if</span> (map == NULL)
 00110                 <span class="keywordflow">return</span>;
 00111 
-00112         <span class="keywordflow">if</span> (map-&gt;<a class="code" href="structmap__root.html#o6">create</a>) {
-00113                 map-&gt;<a class="code" href="structmap__root.html#o6">create</a> = 0;
-00114                 map-&gt;<a class="code" href="structmap__root.html#o5">key</a> = NULL;
+00112         <span class="keywordflow">if</span> (map-&gt;create) {
+00113                 map-&gt;create = 0;
+00114                 map-&gt;key = NULL;
 00115                 <span class="keywordflow">return</span>;
 00116         }
 00117 
-00118         <span class="keywordflow">if</span> (map-&gt;<a class="code" href="structmap__root.html#o5">key</a> == NULL)
+00118         <span class="keywordflow">if</span> (map-&gt;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-&gt;<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-&gt;key;
 00122 
 00123         <span class="comment">/* remove node from old hash list */</span>
 00124         hlist_del_init(&amp;m-&gt;<a class="code" href="structmap__node.html#o1">hnode</a>);
 00127         list_del(&amp;m-&gt;<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-&gt;<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-&gt;key);
 00131 
-00132         <span class="keywordflow">if</span> (map-&gt;<a class="code" href="structmap__root.html#o0">maxnum</a>)
-00133                 list_add(&amp;m-&gt;<a class="code" href="structmap__node.html#o0">lnode</a>, &amp;map-&gt;<a class="code" href="structmap__root.html#o4">pool</a>);
+00132         <span class="keywordflow">if</span> (map-&gt;maxnum)
+00133                 list_add(&amp;m-&gt;<a class="code" href="structmap__node.html#o0">lnode</a>, &amp;map-&gt;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-&gt;<a class="code" href="structmap__root.html#o5">key</a> = NULL;
-00138         map-&gt;<a class="code" href="structmap__root.html#o1">num</a>--;
+00137         map-&gt;key = NULL;
+00138         map-&gt;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-&gt;<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-&gt;<a class="code" href="structmap__root.html#o4">head</a>.next);
 00155 
-00156         <span class="keywordflow">if</span> (list_empty(&amp;map-&gt;<a class="code" href="structmap__root.html#o3">head</a>))
+00156         <span class="keywordflow">if</span> (list_empty(&amp;map-&gt;<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-&gt;<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-&gt;<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-&gt;head.next=%lx\n"</span>, (<span class="keywordtype">long</span>)m, (<span class="keywordtype">long</span>)m-&gt;<a class="code" href="structmap__node.html#o0">lnode</a>.next, (<span class="keywordtype">long</span>)m-&gt;<a class="code" href="structmap__node.html#o0">lnode</a>.prev, (<span class="keywordtype">long</span>)map-&gt;<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-&gt;head.next=%lx\n"</span>, (<span class="keywordtype">long</span>)m, (<span class="keywordtype">long</span>)m-&gt;lnode.next, (<span class="keywordtype">long</span>)m-&gt;lnode.prev, (<span class="keywordtype">long</span>)map-&gt;<a class="code" href="structmap__root.html#o4">head</a>.next);
 00178 
-00179         <span class="keywordflow">if</span> (m-&gt;lnode.next == &amp;map-&gt;<a class="code" href="structmap__root.html#o3">head</a>)
+00179         <span class="keywordflow">if</span> (m-&gt;lnode.next == &amp;map-&gt;<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-&gt;<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-&gt;<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(&amp;map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o3">head</a>.next;
-00197                 <span class="keywordflow">while</span> (ptr &amp;&amp; ptr != (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)&amp;map-&gt;<a class="code" href="structmap__root.html#o3">head</a>) {
+00195         <span class="keywordflow">if</span> (!list_empty(&amp;map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o4">head</a>.next;
+00197                 <span class="keywordflow">while</span> (ptr &amp;&amp; ptr != (<span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *)&amp;map-&gt;<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-&gt;<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-&gt;<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-&gt;<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 = &amp;map-&gt;<a class="code" href="structmap__root.html#o10">hashes</a>[hv];
+00228         head = &amp;map-&gt;<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-&gt;<a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o0">val</a>, n-&gt;key2.<a class="code" href="unionkey__data.html#o0">val</a>);
 00236                 <span class="keywordflow">if</span> (key1 == n-&gt;key1.val &amp;&amp; key2 == n-&gt;key2.val) {
-00237                         map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o5">key</a>);
-00239                         map-&gt;<a class="code" href="structmap__root.html#o6">create</a> = 0;
+00237                         map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o6">key</a>);
+00239                         map-&gt;<a class="code" href="structmap__root.html#o7">create</a> = 0;
 00240                         <span class="keywordflow">return</span>;
 00241                 }
 00242         }
 00243 
-00244         map-&gt;<a class="code" href="structmap__root.html#o8">c_key1</a>.<a class="code" href="unionkey__data.html#o0">val</a> = key1;
-00245         map-&gt;<a class="code" href="structmap__root.html#o9">c_key2</a>.<a class="code" href="unionkey__data.html#o0">val</a> = key2;
-00246         map-&gt;c_key1type = LONG;
-00247         map-&gt;c_key2type = LONG;
-00248         map-&gt;<a class="code" href="structmap__root.html#o7">c_keyhead</a> = head;
-00249         map-&gt;<a class="code" href="structmap__root.html#o6">create</a> = 1;
+00244         map-&gt;<a class="code" href="structmap__root.html#o11">c_key1</a>.<a class="code" href="unionkey__data.html#o0">val</a> = key1;
+00245         map-&gt;<a class="code" href="structmap__root.html#o12">c_key2</a>.<a class="code" href="unionkey__data.html#o0">val</a> = key2;
+00246         map-&gt;<a class="code" href="structmap__root.html#o8">c_key1type</a> = <a class="code" href="map_8h.html#a18a12">LONG</a>;
+00247         map-&gt;<a class="code" href="structmap__root.html#o9">c_key2type</a> = <a class="code" href="map_8h.html#a18a12">LONG</a>;
+00248         map-&gt;<a class="code" href="structmap__root.html#o10">c_keyhead</a> = head;
+00249         map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o5">key</a> = NULL;
+00271                 map-&gt;<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 = &amp;map-&gt;<a class="code" href="structmap__root.html#o10">hashes</a>[hv];
+00276         head = &amp;map-&gt;<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-&gt;<a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>,n-&gt;<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-&gt;<a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>) == 0
 00285                     &amp;&amp; (key2 == NULL || strcmp(key2, n-&gt;<a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o1">str</a>) == 0)) {
-00286                         map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o5">key</a>);
-00288                         map-&gt;<a class="code" href="structmap__root.html#o6">create</a> = 0;
+00286                         map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o6">key</a>);
+00288                         map-&gt;<a class="code" href="structmap__root.html#o7">create</a> = 0;
 00289                         <span class="keywordflow">return</span>;
 00290                 }
 00291         }
 00292 
-00293         map-&gt;<a class="code" href="structmap__root.html#o8">c_key1</a>.<a class="code" href="unionkey__data.html#o1">str</a> = key1;
-00294         map-&gt;<a class="code" href="structmap__root.html#o9">c_key2</a>.<a class="code" href="unionkey__data.html#o1">str</a> = key2;
-00295         map-&gt;c_key1type = STR;
-00296         map-&gt;c_key2type = STR;
-00297         map-&gt;<a class="code" href="structmap__root.html#o7">c_keyhead</a> = head;
-00298         map-&gt;<a class="code" href="structmap__root.html#o6">create</a> = 1;
+00293         map-&gt;<a class="code" href="structmap__root.html#o11">c_key1</a>.<a class="code" href="unionkey__data.html#o1">str</a> = key1;
+00294         map-&gt;<a class="code" href="structmap__root.html#o12">c_key2</a>.<a class="code" href="unionkey__data.html#o1">str</a> = key2;
+00295         map-&gt;<a class="code" href="structmap__root.html#o8">c_key1type</a> = <a class="code" href="map_8h.html#a18a13">STR</a>;
+00296         map-&gt;<a class="code" href="structmap__root.html#o9">c_key2type</a> = <a class="code" href="map_8h.html#a18a13">STR</a>;
+00297         map-&gt;<a class="code" href="structmap__root.html#o10">c_keyhead</a> = head;
+00298         map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o5">key</a> = NULL;
+00320                 map-&gt;<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 = &amp;map-&gt;<a class="code" href="structmap__root.html#o10">hashes</a>[hv];
+00325         head = &amp;map-&gt;<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-&gt;<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-&gt;<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-&gt;<a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>) == 0 &amp;&amp; key2 == n-&gt;<a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o0">val</a>) {
-00334                         map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o5">key</a>);
-00336                         map-&gt;<a class="code" href="structmap__root.html#o6">create</a> = 0;
+00334                         map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o6">key</a>);
+00336                         map-&gt;<a class="code" href="structmap__root.html#o7">create</a> = 0;
 00337                         <span class="keywordflow">return</span>;
 00338                 }
 00339         }
 00340 
-00341         map-&gt;<a class="code" href="structmap__root.html#o8">c_key1</a>.<a class="code" href="unionkey__data.html#o1">str</a> = key1;
-00342         map-&gt;<a class="code" href="structmap__root.html#o9">c_key2</a>.<a class="code" href="unionkey__data.html#o0">val</a> = key2;
-00343         map-&gt;c_key1type = STR;
-00344         map-&gt;c_key2type = LONG;
-00345         map-&gt;<a class="code" href="structmap__root.html#o7">c_keyhead</a> = head;
-00346         map-&gt;<a class="code" href="structmap__root.html#o6">create</a> = 1;
+00341         map-&gt;<a class="code" href="structmap__root.html#o11">c_key1</a>.<a class="code" href="unionkey__data.html#o1">str</a> = key1;
+00342         map-&gt;<a class="code" href="structmap__root.html#o12">c_key2</a>.<a class="code" href="unionkey__data.html#o0">val</a> = key2;
+00343         map-&gt;<a class="code" href="structmap__root.html#o8">c_key1type</a> = <a class="code" href="map_8h.html#a18a13">STR</a>;
+00344         map-&gt;<a class="code" href="structmap__root.html#o9">c_key2type</a> = <a class="code" href="map_8h.html#a18a12">LONG</a>;
+00345         map-&gt;<a class="code" href="structmap__root.html#o10">c_keyhead</a> = head;
+00346         map-&gt;<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 = &amp;map-&gt;<a class="code" href="structmap__root.html#o10">hashes</a>[hv];
+00368         head = &amp;map-&gt;<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-&gt;<a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o0">val</a>,n-&gt;<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-&gt;<a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o0">val</a> &amp;&amp; strcmp(key2, n-&gt;<a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o1">str</a>) == 0) {
-00376                         map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o5">key</a>);
-00378                         map-&gt;<a class="code" href="structmap__root.html#o6">create</a> = 0;
+00376                         map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o6">key</a>);
+00378                         map-&gt;<a class="code" href="structmap__root.html#o7">create</a> = 0;
 00379                         <span class="keywordflow">return</span>;
 00380                 }
 00381         }
 00382 
-00383         map-&gt;<a class="code" href="structmap__root.html#o8">c_key1</a>.<a class="code" href="unionkey__data.html#o0">val</a> = key1;
-00384         map-&gt;<a class="code" href="structmap__root.html#o9">c_key2</a>.<a class="code" href="unionkey__data.html#o1">str</a> = key2;
-00385         map-&gt;c_key1type = LONG;
-00386         map-&gt;c_key2type = STR;
-00387         map-&gt;<a class="code" href="structmap__root.html#o7">c_keyhead</a> = head;
-00388         map-&gt;<a class="code" href="structmap__root.html#o6">create</a> = 1;
+00383         map-&gt;<a class="code" href="structmap__root.html#o11">c_key1</a>.<a class="code" href="unionkey__data.html#o0">val</a> = key1;
+00384         map-&gt;<a class="code" href="structmap__root.html#o12">c_key2</a>.<a class="code" href="unionkey__data.html#o1">str</a> = key2;
+00385         map-&gt;<a class="code" href="structmap__root.html#o8">c_key1type</a> = <a class="code" href="map_8h.html#a18a12">LONG</a>;
+00386         map-&gt;<a class="code" href="structmap__root.html#o9">c_key2type</a> = <a class="code" href="map_8h.html#a18a13">STR</a>;
+00387         map-&gt;<a class="code" href="structmap__root.html#o10">c_keyhead</a> = head;
+00388         map-&gt;<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-&gt;c_key2type = NONE;
+00404         map-&gt;<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-&gt;c_key2type = NONE;
+00420         map-&gt;<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-&gt;key1type = map-&gt;c_key1type;
-00428         m-&gt;key2type = map-&gt;c_key2type;
-00429         <span class="keywordflow">switch</span> (map-&gt;c_key1type) {
+00427         m-&gt;key1type = map-&gt;<a class="code" href="structmap__root.html#o8">c_key1type</a>;
+00428         m-&gt;key2type = map-&gt;<a class="code" href="structmap__root.html#o9">c_key2type</a>;
+00429         <span class="keywordflow">switch</span> (map-&gt;<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-&gt;<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-&gt;<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-&gt;<a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>, map-&gt;<a class="code" href="structmap__root.html#o8">c_key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>);
+00431                 m-&gt;key1.str = <a class="code" href="alloc_8h.html#a3">_stp_alloc</a>(strlen(map-&gt;<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-&gt;key1.str, map-&gt;<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-&gt;<a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o0">val</a> = map-&gt;<a class="code" href="structmap__root.html#o8">c_key1</a>.<a class="code" href="unionkey__data.html#o0">val</a>;
+00435                 m-&gt;key1.val = map-&gt;<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-&gt;c_key2type) {
+00441         <span class="keywordflow">switch</span> (map-&gt;<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-&gt;<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-&gt;<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-&gt;<a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o1">str</a>, map-&gt;<a class="code" href="structmap__root.html#o9">c_key2</a>.<a class="code" href="unionkey__data.html#o1">str</a>);
+00443                 m-&gt;key2.<a class="code" href="unionkey__data.html#o1">str</a> = <a class="code" href="alloc_8h.html#a3">_stp_alloc</a>(strlen(map-&gt;<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-&gt;key2.str, map-&gt;<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-&gt;<a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o0">val</a> = map-&gt;<a class="code" href="structmap__root.html#o9">c_key2</a>.<a class="code" href="unionkey__data.html#o0">val</a>;
+00447                 m-&gt;key2.<a class="code" href="unionkey__data.html#o0">val</a> = map-&gt;<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(&amp;m-&gt;<a class="code" href="structmap__node.html#o1">hnode</a>, map-&gt;<a class="code" href="structmap__root.html#o7">c_keyhead</a>);
+00454         hlist_add_head(&amp;m-&gt;hnode, map-&gt;<a class="code" href="structmap__root.html#o10">c_keyhead</a>);
 00455         
-00456         map-&gt;<a class="code" href="structmap__root.html#o5">key</a> = m;
-00457         map-&gt;<a class="code" href="structmap__root.html#o6">create</a> = 0;
-00458         map-&gt;<a class="code" href="structmap__root.html#o1">num</a>++;
+00456         map-&gt;<a class="code" href="structmap__root.html#o6">key</a> = m;
+00457         map-&gt;<a class="code" href="structmap__root.html#o7">create</a> = 0;
+00458         map-&gt;<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-&gt;<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-&gt;<a class="code" href="structmap__root.html#o0">maxnum</a>) {
-00483                         <span class="keywordflow">if</span> (list_empty(&amp;map-&gt;<a class="code" href="structmap__root.html#o4">pool</a>)) {
-00484                                 <span class="keywordflow">if</span> (map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o3">head</a>.next;
-00489                                 hlist_del_init(&amp;m-&gt;<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-&gt;<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(&amp;m-&gt;<a class="code" href="structmap__node__int64.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &amp;map-&gt;<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(&amp;m-&gt;<a class="code" href="structmap__node__int64.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &amp;map-&gt;<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, &amp;m-&gt;<a class="code" href="structmap__node__int64.html#o0">n</a>);
-00506 
-00507                 <span class="comment">/* set the value */</span>
-00508                 m-&gt;<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-&gt;<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-&gt;<a class="code" href="structmap__root.html#o5">key</a>;
-00515                         m-&gt;<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-&gt;<a class="code" href="structmap__root.html#o6">create</a> || map-&gt;<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-&gt;<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-&gt;<a class="code" href="structmap__root.html#o5">key</a>;
-00535         <span class="keywordflow">return</span> m-&gt;<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-&gt;<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-&gt;<a class="code" href="structmap__root.html#o0">maxnum</a>) {
-00560                         <span class="keywordflow">if</span> (list_empty(&amp;map-&gt;<a class="code" href="structmap__root.html#o4">pool</a>)) {
-00561                                 <span class="keywordflow">if</span> (map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o3">head</a>.next;
-00566                                 hlist_del_init(&amp;m-&gt;<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-&gt;<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(&amp;m-&gt;<a class="code" href="structmap__node__str.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &amp;map-&gt;<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(&amp;m-&gt;<a class="code" href="structmap__node__str.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &amp;map-&gt;<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, &amp;m-&gt;<a class="code" href="structmap__node__str.html#o0">n</a>);
-00583 
-00584                 <span class="comment">/* set the value */</span>
-00585                 m-&gt;<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-&gt;<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-&gt;<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-&gt;<a class="code" href="structmap__root.html#o5">key</a>;
-00593                         <span class="keywordflow">if</span> (m-&gt;<a class="code" href="structmap__node__str.html#o1">str</a>)
-00594                                 <a class="code" href="alloc_8h.html#a5">_stp_free</a>(m-&gt;<a class="code" href="structmap__node__str.html#o1">str</a>);
-00595                         m-&gt;<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-&gt;<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-&gt;create) {
+00469                 <span class="keywordflow">if</span> (val == 0)
+00470                         return;
+00471 
+00472                 if (map-&gt;maxnum) {
+00473                         <span class="keywordflow">if</span> (list_empty(&amp;map-&gt;<a class="code" href="structmap__root.html#o5">pool</a>)) {
+00474                                 <span class="keywordflow">if</span> (map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o4">head</a>.next;
+00479                                 hlist_del_init(&amp;m-&gt;<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-&gt;<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(&amp;m-&gt;<a class="code" href="structmap__node__int64.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &amp;map-&gt;<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(&amp;m-&gt;<a class="code" href="structmap__node__int64.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &amp;map-&gt;<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, &amp;m-&gt;<a class="code" href="structmap__node__int64.html#o0">n</a>);
+00496 
+00497                 <span class="comment">/* set the value */</span>
+00498                 m-&gt;<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-&gt;<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-&gt;<a class="code" href="structmap__root.html#o6">key</a>;
+00505                         <span class="keywordflow">if</span> (add)
+00506                                 m-&gt;val += val;
+00507                         else
+00508                                 m-&gt;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-&gt;<a class="code" href="structmap__root.html#o7">create</a> || map-&gt;<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-&gt;<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-&gt;<a class="code" href="structmap__root.html#o6">key</a>;
+00558         <span class="keywordflow">return</span> m-&gt;<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-&gt;<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-&gt;<a class="code" href="structmap__root.html#o1">maxnum</a>) {
+00583                         <span class="keywordflow">if</span> (list_empty(&amp;map-&gt;<a class="code" href="structmap__root.html#o5">pool</a>)) {
+00584                                 <span class="keywordflow">if</span> (map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o4">head</a>.next;
+00589                                 hlist_del_init(&amp;m-&gt;<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-&gt;<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(&amp;m-&gt;<a class="code" href="structmap__node__str.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &amp;map-&gt;<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(&amp;m-&gt;<a class="code" href="structmap__node__str.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &amp;map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o6">create</a> || map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o5">key</a>);
-00615         m = (<span class="keyword">struct </span>map_node_str *)map-&gt;<a class="code" href="structmap__root.html#o5">key</a>;
-00616         <span class="keywordflow">return</span> m-&gt;<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-&gt;<a class="code" href="structmap__root.html#o5">key</a>);
-00640 
-00641         <span class="keywordflow">if</span> (map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o0">maxnum</a>) {
-00646                         <span class="keywordflow">if</span> (list_empty(&amp;map-&gt;<a class="code" href="structmap__root.html#o4">pool</a>)) {
-00647                                 <span class="keywordflow">if</span> (map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o3">head</a>.next;
-00652                                 hlist_del_init(&amp;m-&gt;<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-&gt;<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(&amp;m-&gt;<a class="code" href="structmap__node__stat.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &amp;map-&gt;<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(&amp;m-&gt;<a class="code" href="structmap__node__stat.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &amp;map-&gt;<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, &amp;m-&gt;<a class="code" href="structmap__node__stat.html#o0">n</a>);
-00669 
-00670                 <span class="comment">/* set the value */</span>
-00671                 memcpy(&amp;m-&gt;<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-&gt;<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-&gt;<a class="code" href="structmap__root.html#o5">key</a>;
-00678                         memcpy(&amp;m-&gt;<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-&gt;<a class="code" href="structmap__root.html#o6">create</a> || map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o5">key</a>);
-00698         m = (<span class="keyword">struct </span>map_node_stat *)map-&gt;<a class="code" href="structmap__root.html#o5">key</a>;
-00699         <span class="keywordflow">return</span> &amp;m-&gt;<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-&gt;<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, &amp;st);
-00723                 <span class="keywordflow">return</span>;
-00724         }
-00725 
-00726         <span class="keywordflow">if</span> (map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o5">key</a>);
-00730         m = (<span class="keyword">struct </span>map_node_stat *)map-&gt;<a class="code" href="structmap__root.html#o5">key</a>;
-00731         m-&gt;<a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o0">count</a>++;
-00732         m-&gt;<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 &gt; m-&gt;<a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o3">max</a>)
-00734                 m-&gt;<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 &lt; m-&gt;<a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o2">min</a>)
-00736                 m-&gt;<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, &amp;m-&gt;<a class="code" href="structmap__node__str.html#o0">n</a>);
+00606 
+00607                 <span class="comment">/* set the value */</span>
+00608                 m-&gt;<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-&gt;<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-&gt;<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-&gt;<a class="code" href="structmap__root.html#o6">key</a>;
+00616                         <span class="keywordflow">if</span> (m-&gt;<a class="code" href="structmap__node__str.html#o1">str</a>)
+00617                                 <a class="code" href="alloc_8h.html#a6">_stp_free</a>(m-&gt;<a class="code" href="structmap__node__str.html#o1">str</a>);
+00618                         m-&gt;<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-&gt;<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-&gt;<a class="code" href="structmap__root.html#o7">create</a> || map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o6">key</a>);
+00638         m = (<span class="keyword">struct </span>map_node_str *)map-&gt;<a class="code" href="structmap__root.html#o6">key</a>;
+00639         <span class="keywordflow">return</span> m-&gt;<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-&gt;<a class="code" href="structmap__root.html#o6">key</a>);
+00663 
+00664         <span class="keywordflow">if</span> (map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o1">maxnum</a>) {
+00669                         <span class="keywordflow">if</span> (list_empty(&amp;map-&gt;<a class="code" href="structmap__root.html#o5">pool</a>)) {
+00670                                 <span class="keywordflow">if</span> (map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o4">head</a>.next;
+00675                                 hlist_del_init(&amp;m-&gt;<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-&gt;<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(&amp;m-&gt;<a class="code" href="structmap__node__stat.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &amp;map-&gt;<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(&amp;m-&gt;<a class="code" href="structmap__node__stat.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &amp;map-&gt;<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, &amp;m-&gt;<a class="code" href="structmap__node__stat.html#o0">n</a>);
+0069
+00693                 <span class="comment">/* set the value */</span>
+00694                 memcpy(&amp;m-&gt;<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-&gt;<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-&gt;<a class="code" href="structmap__root.html#o6">key</a>;
+00701                         memcpy(&amp;m-&gt;<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-&gt;<a class="code" href="structmap__root.html#o7">create</a> || map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o6">key</a>);
+00721         m = (<span class="keyword">struct </span>map_node_stat *)map-&gt;<a class="code" href="structmap__root.html#o6">key</a>;
+00722         <span class="keywordflow">return</span> &amp;m-&gt;<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-&gt;<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(&amp;map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o3">head</a>.next;
-00772 
-00773                 <span class="keywordflow">while</span> (ptr &amp;&amp; ptr != (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)&amp;map-&gt;<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-&gt;<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(&amp;ptr-&gt;<a class="code" href="structmap__node.html#o1">hnode</a>);
-00778 
-00779                         <span class="comment">/* remove from entry list */</span>
-00780                         list_del(&amp;ptr-&gt;<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-&gt;<a class="code" href="structmap__root.html#o0">maxnum</a>)
-00786                                 list_add(&amp;ptr-&gt;<a class="code" href="structmap__node.html#o0">lnode</a>, &amp;map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o1">num</a>--;
-00791                         ptr = next;
-00792                 }
-00793         }
-00794 
-00795         <span class="keywordflow">if</span> (map-&gt;<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-&gt;<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-&gt;<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-&gt;<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-&gt;<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&nbsp;
+00742         <span class="keywordflow">if</span> (map-&gt;<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, &amp;st);
+00746                 <span class="keywordflow">return</span>;
+00747         }
+00748 
+00749         <span class="keywordflow">if</span> (map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o6">key</a>);
+00753         m = (<span class="keyword">struct </span>map_node_stat *)map-&gt;<a class="code" href="structmap__root.html#o6">key</a>;
+00754         m-&gt;<a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o0">count</a>++;
+00755         m-&gt;<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 &gt; m-&gt;<a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o3">max</a>)
+00757                 m-&gt;<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 &lt; m-&gt;stats.min)
+00759                 m-&gt;<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-&gt;<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(&amp;map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o4">head</a>.next;
+00795 
+00796                 <span class="keywordflow">while</span> (ptr &amp;&amp; ptr != (<span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *)&amp;map-&gt;<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-&gt;<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(&amp;ptr-&gt;<a class="code" href="structmap__node.html#o1">hnode</a>);
+00801 
+00802                         <span class="comment">/* remove from entry list */</span>
+00803                         list_del(&amp;ptr-&gt;<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-&gt;<a class="code" href="structmap__root.html#o1">maxnum</a>)
+00809                                 list_add(&amp;ptr-&gt;<a class="code" href="structmap__node.html#o0">lnode</a>, &amp;map-&gt;<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-&gt;<a class="code" href="structmap__root.html#o2">num</a>--;
+00814                         ptr = next;
+00815                 }
+00816         }
+00817 
+00818         <span class="keywordflow">if</span> (map-&gt;<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-&gt;<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-&gt;<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-&gt;<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-&gt;<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&nbsp;
 <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>
index d4982cac8c52698dfccbcbf40556920d0a512a81..d69f77a8df2142873bae2d16daa8bba20feefebb 100644 (file)
@@ -5,7 +5,7 @@
 </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&nbsp;</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">&nbsp;</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&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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 *&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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&nbsp;</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">&nbsp;</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> *&nbsp;</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">&nbsp;</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 *&nbsp;</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">&nbsp;</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&nbsp;</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&nbsp;</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">&nbsp;</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> *&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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>&nbsp;</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">&nbsp;</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>&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</td><td class="mdescRight">Clears a list.  <a href="#a24"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</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">&nbsp;</td><td class="mdescRight">Clears a list.  <a href="#a26"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</td><td class="mdescRight">Get the number of elements in a list.  <a href="#a27"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</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">
@@ -126,13 +129,13 @@ Adds an int64 to a list.
 </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">
@@ -175,15 +178,15 @@ Adds a string to a list.
 </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">
@@ -216,13 +219,13 @@ All elements in the list are deleted. <dl compact><dt><b>Parameters:</b></dt><dd
 </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">
@@ -267,13 +270,13 @@ A list is a map that internally has an incrementing long key for each member. Li
 <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">
@@ -307,13 +310,61 @@ Get the number of elements in a list.
 <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">(&nbsp;</td>
+          <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a>&nbsp;</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&nbsp;</td>
+          <td class="mdname" nowrap> <em>val</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+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>&nbsp;</td><td></td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</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">
@@ -348,11 +399,11 @@ Deletes a map, freeing all memory in all elements. Normally done only when the m
 <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">
@@ -386,13 +437,13 @@ Gets the current element's value.
 <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">
@@ -426,13 +477,13 @@ Gets the current element's value.
 <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">
@@ -466,13 +517,13 @@ Gets the current element's value.
 <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">
@@ -519,11 +570,11 @@ Get the next element in a map.
 <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">
@@ -558,13 +609,13 @@ If no current element (key) for this map is set, this function does nothing. <dl
 <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">
@@ -609,13 +660,13 @@ This sets the current element based on a long key. If the key is not found, a ne
 <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">
@@ -667,13 +718,13 @@ This sets the current element based on a key of two strings. If the keys are not
 <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">
@@ -725,11 +776,11 @@ This sets the current element based on a key of a long and a string. If the keys
 <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">
@@ -774,11 +825,11 @@ This sets the current element based on a string key. If the key is not found, a
 <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">
@@ -830,11 +881,11 @@ This sets the current element based on a key of a string and a long. If the keys
 <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">
@@ -886,13 +937,13 @@ This sets the current element based on a key of two strings. If the keys are not
 <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">
@@ -938,13 +989,13 @@ Maps must be created at module initialization time. <dl compact><dt><b>Parameter
 <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">
@@ -988,15 +1039,13 @@ If the element doesn't exist, it is created. If no current element (key) is set
 </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">
@@ -1031,7 +1080,7 @@ Referenced by <a class="el" href="map_8c-source.html#l00816">_stp_list_add_int64
 <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>&nbsp;</td><td></td></tr>
@@ -1041,15 +1090,15 @@ If the element doesn't exist, it is created. If no current element (key) is set
 <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">
@@ -1093,15 +1142,15 @@ If the element doesn't exist, it is created. If no current element (key) is set
 </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">
@@ -1138,11 +1187,11 @@ Get the first element in a map.
 <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">
@@ -1187,13 +1236,13 @@ If the element doesn't exist, it is created. If no current element (key) is set
 <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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index 9a49236c5cf98a8aabb395f321909e78325c3224..7ecc890f3f441135a712481cdf2b0431c47c6bf8 100644 (file)
@@ -5,7 +5,7 @@
 </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 &lt;linux/types.h&gt;</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&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index def7be23b34edb306ca9037b141e5d206456a403..2d35515b1bdc0319de7d1be6e4e7e6df1dfb1d43 100644 (file)
@@ -5,27 +5,12 @@
 </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 &lt;linux/types.h&gt;</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 &nbsp;</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 &nbsp;</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 &nbsp;</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 &nbsp;</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 &nbsp;</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 &nbsp;</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 &nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a0">key1str</a>(ptr)&nbsp;&nbsp;&nbsp;(ptr-&gt;n.key1.str)</td></tr>
 
@@ -67,7 +52,7 @@
 </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">
@@ -96,9 +81,9 @@
 <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>
@@ -106,7 +91,7 @@ Definition at line <a class="el" href="map_8h-source.html#l00121">121</a> of fil
   </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">
@@ -145,7 +130,7 @@ Definition at line <a class="el" href="map_8h-source.html#l00105">105</a> of fil
   </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">
@@ -193,7 +178,7 @@ Definition at line <a class="el" href="map_8h-source.html#l00091">91</a> of file
   </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">
@@ -222,9 +207,9 @@ Definition at line <a class="el" href="map_8h-source.html#l00091">91</a> of file
 <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>
@@ -232,7 +217,7 @@ Definition at line <a class="el" href="map_8h-source.html#l00113">113</a> of fil
   </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">
@@ -260,7 +245,7 @@ Definition at line <a class="el" href="map_8h-source.html#l00113">113</a> of fil
 
 <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>
@@ -284,7 +269,7 @@ Definition at line <a class="el" href="map_8h-source.html#l00138">138</a> of fil
   </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">
@@ -314,7 +299,7 @@ Definition at line <a class="el" href="map_8h-source.html#l00088">88</a> of file
   </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">
@@ -344,7 +329,7 @@ Definition at line <a class="el" href="map_8h-source.html#l00086">86</a> of file
   </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">
@@ -374,7 +359,7 @@ Definition at line <a class="el" href="map_8h-source.html#l00089">89</a> of file
   </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">
@@ -405,7 +390,7 @@ Definition at line <a class="el" href="map_8h-source.html#l00087">87</a> of file
 </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">
@@ -426,14 +411,12 @@ Definition at line <a class="el" href="map_8h-source.html#l00087">87</a> of file
 <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">
@@ -468,7 +451,7 @@ Definition at line <a class="el" href="map_8h-source.html#l00016">16</a> of file
   </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">
@@ -506,7 +489,7 @@ Definition at line <a class="el" href="map_8h-source.html#l00017">17</a> of file
 </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">
@@ -528,8 +511,8 @@ Definition at line <a class="el" href="map_8h-source.html#l00017">17</a> of file
     </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index 1083853426a00446dd0c2163b861c3b88fcf985b..d79b953eb05d064bd8247f5e5d068293ce710b84 100644 (file)
@@ -5,15 +5,15 @@
 </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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
diff --git a/runtime/docs/html/probes_8c-source.html b/runtime/docs/html/probes_8c-source.html
new file mode 100644 (file)
index 0000000..58c3fa9
--- /dev/null
@@ -0,0 +1,85 @@
+<!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 &lt; num_probes; i++)
+00018                 unregister_jprobe(&amp;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 &lt; 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(&amp;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 &lt; num_probes; i++)
+00052                 unregister_kprobe(&amp;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 &lt; 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(&amp;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&nbsp;
+<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>
diff --git a/runtime/docs/html/probes_8c.html b/runtime/docs/html/probes_8c.html
new file mode 100644 (file)
index 0000000..15ceb18
--- /dev/null
@@ -0,0 +1,196 @@
+<!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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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">(&nbsp;</td>
+          <td class="md" nowrap valign="top">struct jprobe *&nbsp;</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&nbsp;</td>
+          <td class="mdname" nowrap> <em>num_probes</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+
+<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">(&nbsp;</td>
+          <td class="md" nowrap valign="top">struct kprobe *&nbsp;</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&nbsp;</td>
+          <td class="mdname" nowrap> <em>num_probes</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+
+<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">(&nbsp;</td>
+          <td class="md" nowrap valign="top">struct jprobe *&nbsp;</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&nbsp;</td>
+          <td class="mdname" nowrap> <em>num_probes</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+
+<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">(&nbsp;</td>
+          <td class="md" nowrap valign="top">struct kprobe *&nbsp;</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&nbsp;</td>
+          <td class="mdname" nowrap> <em>num_probes</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+
+<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&nbsp;
+<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>
index b688d35121339b1f2ed676629a0fe6dfa097b6a0..10312ec7b2be5be7b62469589677885cd08ec6a7 100644 (file)
@@ -5,27 +5,30 @@
 </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 &lt;linux/module.h&gt;</span>
-00003 <span class="preprocessor">#include &lt;linux/miscdevice.h&gt;</span>
-00004 <span class="preprocessor">#include &lt;linux/init.h&gt;</span>
-00005 <span class="preprocessor">#include &lt;linux/hash.h&gt;</span>
-00006 <span class="preprocessor">#include &lt;linux/string.h&gt;</span>
-00007 <span class="preprocessor">#include &lt;linux/kprobes.h&gt;</span>
-00008 <span class="preprocessor">#include &lt;linux/proc_fs.h&gt;</span>
-00009 <span class="preprocessor">#include &lt;linux/vmalloc.h&gt;</span>
-00010 <span class="preprocessor">#include &lt;linux/time.h&gt;</span>
-00011 <span class="preprocessor">#include &lt;linux/spinlock.h&gt;</span>
-00012 <span class="preprocessor">#include &lt;asm/uaccess.h&gt;</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 &lt;linux/kernel.h&gt;</span>
+00004 <span class="preprocessor">#include &lt;linux/miscdevice.h&gt;</span>
+00005 <span class="preprocessor">#include &lt;linux/init.h&gt;</span>
+00006 <span class="preprocessor">#include &lt;linux/hash.h&gt;</span>
+00007 <span class="preprocessor">#include &lt;linux/string.h&gt;</span>
+00008 <span class="preprocessor">#include &lt;linux/kprobes.h&gt;</span>
+00009 <span class="preprocessor">#include &lt;linux/proc_fs.h&gt;</span>
+00010 <span class="preprocessor">#include &lt;linux/vmalloc.h&gt;</span>
+00011 <span class="preprocessor">#include &lt;linux/time.h&gt;</span>
+00012 <span class="preprocessor">#include &lt;linux/spinlock.h&gt;</span>
+00013 <span class="preprocessor">#include &lt;linux/hardirq.h&gt;</span>
+00014 <span class="preprocessor">#include &lt;asm/uaccess.h&gt;</span>
+00015 <span class="preprocessor">#include &lt;linux/kallsyms.h&gt;</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&nbsp;
+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&nbsp;
 <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>
index 89b240973979abad504b34acf80d04a91a7c05c0..43b0f402e0fa69f51722380378a7492c0b3eb3f3 100644 (file)
@@ -5,8 +5,9 @@
 </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 &lt;linux/module.h&gt;</code><br>
+<code>#include &lt;linux/kernel.h&gt;</code><br>
 <code>#include &lt;linux/miscdevice.h&gt;</code><br>
 <code>#include &lt;linux/init.h&gt;</code><br>
 <code>#include &lt;linux/hash.h&gt;</code><br>
@@ -16,7 +17,9 @@
 <code>#include &lt;linux/vmalloc.h&gt;</code><br>
 <code>#include &lt;linux/time.h&gt;</code><br>
 <code>#include &lt;linux/spinlock.h&gt;</code><br>
+<code>#include &lt;linux/hardirq.h&gt;</code><br>
 <code>#include &lt;asm/uaccess.h&gt;</code><br>
+<code>#include &lt;linux/kallsyms.h&gt;</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>
 
@@ -29,7 +32,7 @@
 </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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
diff --git a/runtime/docs/html/stack_8c-source.html b/runtime/docs/html/stack_8c-source.html
new file mode 100644 (file)
index 0000000..34f7b76
--- /dev/null
@@ -0,0 +1,187 @@
+<!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 &lt;linux/kallsyms.h&gt;</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, &amp;symsize, &amp;offset, &amp;modname, namebuf); 
+00016   <span class="keywordflow">if</span> (!symname) 
+00017     return printk("[&lt;%016lx&gt;]", address);
+00018   if (!modname)
+00019     modname = delim = "";               
+00020   return printk("&lt;%016lx&gt;{%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 &lt; 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 &gt; 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> &lt;EOE&gt; <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 &gt;= irqstack &amp;&amp; stack &lt; irqstack_end) {</span>
+00056 <span class="stringliteral">                printk("</span>&lt;IRQ&gt; <span class="stringliteral">");  </span>
+00057 <span class="stringliteral">                while (stack &lt; 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 &gt; 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> &lt;EOI&gt; <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 &amp; (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 &gt; 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(&amp;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 &gt; (void *)tinfo &amp;&amp;</span>
+00106 <span class="stringliteral">                p &lt; (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> [&lt;%08lx&gt;] <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> [&lt;%08lx&gt;]<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-&gt;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 &amp; (~(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-&gt;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, &amp;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&nbsp;
+<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>
diff --git a/runtime/docs/html/stack_8c.html b/runtime/docs/html/stack_8c.html
new file mode 100644 (file)
index 0000000..0b8cc43
--- /dev/null
@@ -0,0 +1,125 @@
+<!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&nbsp;</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&nbsp;</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&nbsp;</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">(&nbsp;</td>
+          <td class="md" nowrap valign="top">unsigned long&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>addr</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+
+<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">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+
+<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">(&nbsp;</td>
+          <td class="md" nowrap valign="top">struct task_struct *&nbsp;</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 *&nbsp;</td>
+          <td class="mdname" nowrap> <em>stack</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+
+<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&nbsp;
+<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>
index 0f1dbc42429e7b0726ab326f7073149ca2701880..1d8a69eaf91f04848760061e310d4acb5aaa0616 100644 (file)
@@ -5,7 +5,7 @@
 </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 &lt;<a class="el" href="map_8h-source.html">map.h</a>&gt;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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">
@@ -75,8 +79,33 @@ Definition at line <a class="el" href="map_8h-source.html#l00023">23</a> of file
 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>
+      &nbsp;
+    </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">
@@ -102,8 +131,33 @@ Definition at line <a class="el" href="map_8h-source.html#l00024">24</a> of file
 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>
+      &nbsp;
+    </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">
@@ -126,13 +180,13 @@ Referenced by <a class="el" href="map_8c-source.html#l00358">_stp_map_key_long_s
 <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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index d2ec73172278190ab766d5fcdffb9592f93a64a4..1ac8d35a64647e22ff8222c0438a36c16bc31ee7 100644 (file)
@@ -5,7 +5,7 @@
 </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 &lt;<a class="el" href="map_8h-source.html">map.h</a>&gt;</code>
 <p>
 <table border="0" cellpadding="0" cellspacing="0">
@@ -18,7 +18,7 @@
 </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">
@@ -68,13 +66,13 @@ Referenced by <a class="el" href="map_8c-source.html#l00471">_stp_map_set_int64(
 <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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index 0d8fdb95d96ed372f36c0c6d2310950c8efbf116..3105ecbe411327e2f4ac3e321700bbed6f2b3a22 100644 (file)
@@ -5,7 +5,7 @@
 </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 &lt;<a class="el" href="map_8h-source.html">map.h</a>&gt;</code>
 <p>
 <table border="0" cellpadding="0" cellspacing="0">
@@ -18,7 +18,7 @@
 </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">
@@ -68,13 +68,13 @@ Referenced by <a class="el" href="map_8c-source.html#l00633">_stp_map_set_stat()
 <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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index a7d78bed0b43f20967b1a320018333b2020f2253..e0a90676936cf112fd31be6b3086d6e69a7e1b66 100644 (file)
@@ -5,7 +5,7 @@
 </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 &lt;<a class="el" href="map_8h-source.html">map.h</a>&gt;</code>
 <p>
 <table border="0" cellpadding="0" cellspacing="0">
@@ -18,7 +18,7 @@
 </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">
@@ -68,13 +68,13 @@ Referenced by <a class="el" href="map_8c-source.html#l00548">_stp_map_set_str()<
 <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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index d6a7418a8fac9542b984ac6879e989b030925af7..cd50216bb64059f469fbf9ba03a1d02be54dd736 100644 (file)
@@ -5,45 +5,51 @@
 </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 &lt;<a class="el" href="map_8h-source.html">map.h</a>&gt;</code>
 <p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</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>&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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> *&nbsp;</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&nbsp;</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&nbsp;</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> *&nbsp;</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 *&nbsp;</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&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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&nbsp;</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 *&nbsp;</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 *&nbsp;</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>&nbsp;</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>&nbsp;</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&nbsp;</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 *&nbsp;</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>
@@ -64,13 +70,40 @@ Definition at line <a class="el" href="map_8h-source.html#l00074">74</a> of file
 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>
+      &nbsp;
+    </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>
@@ -91,13 +124,40 @@ Definition at line <a class="el" href="map_8h-source.html#l00075">75</a> of file
 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>
+      &nbsp;
+    </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>
@@ -118,13 +178,13 @@ Definition at line <a class="el" href="map_8h-source.html#l00073">73</a> of file
 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>
@@ -142,16 +202,16 @@ Referenced by <a class="el" href="map_8c-source.html#l00218">_stp_map_key_long_l
 <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>
@@ -172,13 +232,13 @@ Definition at line <a class="el" href="map_8h-source.html#l00078">78</a> of file
 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>
@@ -196,16 +256,16 @@ Referenced by <a class="el" href="map_8c-source.html#l00218">_stp_map_key_long_l
 <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>
@@ -223,16 +283,16 @@ Referenced by <a class="el" href="map_8c-source.html#l00765">_stp_list_clear()</
 <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>
@@ -250,16 +310,16 @@ Referenced by <a class="el" href="map_8c-source.html#l00528">_stp_map_get_int64(
 <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>
@@ -280,13 +340,13 @@ Definition at line <a class="el" href="map_8h-source.html#l00081">81</a> of file
 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>
@@ -304,16 +364,16 @@ Referenced by <a class="el" href="map_8c-source.html#l00190">_stp_map_del()</a>,
 <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>
@@ -331,16 +391,16 @@ Referenced by <a class="el" href="map_8c-source.html#l00753">_stp_list_new()</a>
 <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>
@@ -358,13 +418,40 @@ Referenced by <a class="el" href="copy_8c-source.html#l00115">_stp_copy_argv_fro
 <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>
+      &nbsp;
+    </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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index 4762765759ea6bef8765316648b02ca454be4756..50829d8d6bd05fd0b1bbcb5ee39cad927146bf6b 100644 (file)
@@ -5,7 +5,7 @@
 </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 &lt;<a class="el" href="map_8h-source.html">map.h</a>&gt;</code>
 <p>
 <table border="0" cellpadding="0" cellspacing="0">
@@ -24,7 +24,7 @@
 </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">
@@ -76,7 +76,7 @@ Definition at line <a class="el" href="map_8h-source.html#l00008">8</a> of file
   </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">
@@ -99,11 +99,11 @@ Definition at line <a class="el" href="map_8h-source.html#l00008">8</a> of file
 <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">
@@ -126,11 +126,11 @@ Referenced by <a class="el" href="map_8c-source.html#l00713">_stp_map_stat_add()
 <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">
@@ -153,13 +153,13 @@ Referenced by <a class="el" href="map_8c-source.html#l00713">_stp_map_stat_add()
 <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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index d4f0d0513c1a983e8f5e8311ebff01e2a421a92e..93efe6b826c2ad9f3d6854420ce7852e76e50b37 100644 (file)
@@ -5,28 +5,23 @@
 </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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index e2f2a66eb6daacd85d8b3b637f2f2e3db46d1185..a46795bf257d747acd16c0794a0c125177691cb8 100644 (file)
@@ -5,7 +5,7 @@
 </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 &lt;<a class="el" href="map_8h-source.html">map.h</a>&gt;</code>
 <p>
 <table border="0" cellpadding="0" cellspacing="0">
@@ -18,7 +18,7 @@
 </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">
@@ -45,7 +45,7 @@ Referenced by <a class="el" href="map_8c-source.html#l00358">_stp_map_key_long_s
   </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">
@@ -73,8 +73,8 @@ Referenced by <a class="el" href="map_8c-source.html#l00218">_stp_map_key_long_l
 </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&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by&nbsp;
 <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>
index 3371df1601660870b2172f637587ef7368ae66a0..8756a48d299e03aa3e1081296d99fa42b05e4760 100644 (file)
@@ -17,3 +17,67 @@ void dlog (const char *fmt, ...)
   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;
+}
index 9b264c3adbcf5aac5fedd6ca16becc248a9652db..8341233edee0c393d8196de144273a5302ae2821 100644 (file)
@@ -458,17 +458,7 @@ static void map_copy_keys(MAP map, struct map_node *m)
        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;
 
@@ -512,14 +502,47 @@ void _stp_map_set_int64(MAP map, int64_t val)
 
                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.
index 0876512f74f0ed18af6f3e5fd2fac5c6d831887b..6fcbeb0a5e147220ed78fb50131accf34d092731 100644 (file)
@@ -1,5 +1,6 @@
 
 #include <linux/module.h>
+#include <linux/kernel.h>
 #include <linux/miscdevice.h>
 #include <linux/init.h>
 #include <linux/hash.h>
@@ -9,7 +10,9 @@
 #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"
This page took 0.265788 seconds and 5 git commands to generate.