diff options
Diffstat (limited to 'runtime/docs')
61 files changed, 5497 insertions, 0 deletions
diff --git a/runtime/docs/examples/argv.c b/runtime/docs/examples/argv.c new file mode 100644 index 00000000..5200c350 --- /dev/null +++ b/runtime/docs/examples/argv.c @@ -0,0 +1,12 @@ +MAP arglist ; + +int inst_do_execve (char * filename, char __user *__user *argv, char __user *__user *envp, struct pt_regs * regs) +{ + struct map_node_str *ptr; + + _stp_copy_argv_from_user (arglist, argv); + + foreach (arglist, ptr) + printk ("%s ", ptr->str); + printk ("\n"); +} diff --git a/runtime/docs/examples/foreach.c b/runtime/docs/examples/foreach.c new file mode 100644 index 00000000..fc110674 --- /dev/null +++ b/runtime/docs/examples/foreach.c @@ -0,0 +1,9 @@ +/* example showing how to print all the stats in a map using foreach() */ + +struct map_node_stat *ptr; + +foreach (map, ptr) + printf ("map[%s,%ld] = [c=%lld s=%lld min=%lld max=%lld]\n", key1str(ptr), + key2int(ptr), ptr->stats.count, ptr->stats.sum, ptr->stats.min, + ptr->stats.max); + diff --git a/runtime/docs/examples/map.c b/runtime/docs/examples/map.c new file mode 100644 index 00000000..ca661d05 --- /dev/null +++ b/runtime/docs/examples/map.c @@ -0,0 +1,7 @@ + +/* create a map with a max of 100 elements */ +MAP mymap = map_new(100, INT64); + +/* mymap[birth year] = 2000 */ +map_key_str (mymap, "birth year"); +map_set_int64 (mymap, 2000); diff --git a/runtime/docs/header.html b/runtime/docs/header.html new file mode 100644 index 00000000..f47a1c4f --- /dev/null +++ b/runtime/docs/header.html @@ -0,0 +1,7 @@ +<!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> + diff --git a/runtime/docs/html/MAP-example.html b/runtime/docs/html/MAP-example.html new file mode 100644 index 00000000..45e6a3c3 --- /dev/null +++ b/runtime/docs/html/MAP-example.html @@ -0,0 +1,17 @@ +<!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.3.9.1 --> +<h1>MAP</h1>arglist ;<p> +int inst_do_execve (char * filename, char __user *__user *argv, char __user *__user *envp, struct pt_regs * regs) { struct <a class="el" href="structmap__node__str.html">map_node_str</a> *ptr;<p> +_stp_copy_argv_from_user (arglist, argv);<p> +foreach (arglist, ptr) printk ("%s ", ptr->str); printk ("\n");<p> +<div class="fragment"><pre class="fragment"></pre></div> <hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 03:32:10 2005 for SystemTap by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address> +</body> +</html> diff --git a/runtime/docs/html/README-source.html b/runtime/docs/html/README-source.html new file mode 100644 index 00000000..2b8a1dfd --- /dev/null +++ b/runtime/docs/html/README-source.html @@ -0,0 +1,14 @@ +<!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.3.9.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 +<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> +</body> +</html> diff --git a/runtime/docs/html/README.html b/runtime/docs/html/README.html new file mode 100644 index 00000000..0da9fbaf --- /dev/null +++ b/runtime/docs/html/README.html @@ -0,0 +1,18 @@ +<!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.3.9.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 +<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> +</body> +</html> diff --git a/runtime/docs/html/alloc_8h-source.html b/runtime/docs/html/alloc_8h-source.html new file mode 100644 index 00000000..ba908655 --- /dev/null +++ b/runtime/docs/html/alloc_8h-source.html @@ -0,0 +1,53 @@ +<!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.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; +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) +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; +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) +00029 { +00030 <span class="keywordtype">void</span> *ptr = <a class="code" href="alloc_8h.html#a2">_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) +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; +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) +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) +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 +<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> +</body> +</html> diff --git a/runtime/docs/html/alloc_8h.html b/runtime/docs/html/alloc_8h.html new file mode 100644 index 00000000..6a5db5ab --- /dev/null +++ b/runtime/docs/html/alloc_8h.html @@ -0,0 +1,276 @@ +<!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.3.9.1 --> +<h1>alloc.h File Reference</h1> +<p> +<a href="alloc_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0"> +<tr><td></td></tr> +<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a7">errorcode</a> { <a class="el" href="alloc_8h.html#a7a0">ERR_NONE</a> = 0, +<a class="el" href="alloc_8h.html#a7a1">ERR_NO_MEM</a> + }</td></tr> + +<tr><td colspan="2"><br><h2>Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a2">_stp_alloc</a> (size_t len)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Allocates memory within a probe. <a href="#a2"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a3">_stp_calloc</a> (size_t len)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Allocates and clears memory within a probe. <a href="#a3"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a4">_stp_valloc</a> (size_t len)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Allocates and clears memory outside a probe. <a href="#a4"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a5">_stp_free</a> (void *ptr)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees memory allocated by _stp_alloc or _stp_calloc. <a href="#a5"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a6">_stp_vfree</a> (void *ptr)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees memory allocated by _stp_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"> + <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> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +<dl compact><dt><b>Enumeration values: </b></dt><dd> +<table border="0" cellspacing="2" cellpadding="0"> +<tr><td valign="top"><em><a class="anchor" name="a7a0" doxytag="ERR_NONE"></a>ERR_NONE</em> </td><td> +</td></tr> +<tr><td valign="top"><em><a class="anchor" name="a7a1" doxytag="ERR_NO_MEM"></a>ERR_NO_MEM</em> </td><td> +</td></tr> +</table> +</dl> + +<p> +Definition at line <a class="el" href="alloc_8h-source.html#l00001">1</a> of file <a class="el" href="alloc_8h-source.html">alloc.h</a>. </td> + </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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void* _stp_alloc </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">size_t </td> + <td class="mdname1" valign="top" nowrap> <em>len</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Allocates memory within a probe. +<p> +This is used for small allocations from within a running probe where the process cannot sleep. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>Number of bytes to allocate. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>a valid pointer on success or NULL on failure. </dd></dl> +<dl compact><dt><b><a class="el" href="bug.html#_bug000001">Bug:</a></b></dt><dd>Currently uses kmalloc (GFP_ATOMIC). </dd></dl> + +<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> + </tr> +</table> +<a class="anchor" name="a3" doxytag="alloc.h::_stp_calloc"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void* _stp_calloc </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">size_t </td> + <td class="mdname1" valign="top" nowrap> <em>len</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Allocates and clears memory within a probe. +<p> +This is used for small allocations from within a running probe where the process cannot sleep. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>Number of bytes to allocate. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>a valid pointer on success or NULL on failure. </dd></dl> +<dl compact><dt><b><a class="el" href="bug.html#_bug000002">Bug:</a></b></dt><dd>Currently uses kmalloc (GFP_ATOMIC). </dd></dl> + +<p> +Definition at line <a class="el" href="alloc_8h-source.html#l00028">28</a> of file <a class="el" href="alloc_8h-source.html">alloc.h</a>. +<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> + </tr> +</table> +<a class="anchor" name="a5" doxytag="alloc.h::_stp_free"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void _stp_free </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void * </td> + <td class="mdname1" valign="top" nowrap> <em>ptr</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Frees memory allocated by _stp_alloc or _stp_calloc. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>ptr</em> </td><td>pointer to memory to free </td></tr> + </table> +</dl> + +<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> + </tr> +</table> +<a class="anchor" name="a4" doxytag="alloc.h::_stp_valloc"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void* _stp_valloc </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">size_t </td> + <td class="mdname1" valign="top" nowrap> <em>len</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Allocates and clears memory outside a probe. +<p> +This is typically used in the module initialization to allocate new maps, lists, etc. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>Number of bytes to allocate. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>a valid pointer on success or NULL on failure. </dd></dl> + +<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> +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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void _stp_vfree </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void * </td> + <td class="mdname1" valign="top" nowrap> <em>ptr</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Frees memory allocated by _stp_valloc. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>ptr</em> </td><td>pointer to memory to free </td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="alloc_8h-source.html#l00067">67</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#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 +<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> +</body> +</html> diff --git a/runtime/docs/html/annotated.html b/runtime/docs/html/annotated.html new file mode 100644 index 00000000..77bc2e38 --- /dev/null +++ b/runtime/docs/html/annotated.html @@ -0,0 +1,22 @@ +<!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.3.9.1 --> +<h1>SystemTap Data Structures</h1>Here are the data structures with brief descriptions:<table> + <tr><td class="indexkey"><a class="el" href="unionkey__data.html">key_data</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="structmap__node.html">map_node</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="structmap__node__int64.html">map_node_int64</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="structmap__node__stat.html">map_node_stat</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="structmap__node__str.html">map_node_str</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="structmap__root.html">map_root</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="structstat.html">stat</a></td><td class="indexvalue"></td></tr> +</table> +<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by +<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> +</body> +</html> diff --git a/runtime/docs/html/argv__example_8c-example.html b/runtime/docs/html/argv__example_8c-example.html new file mode 100644 index 00000000..1369c4c2 --- /dev/null +++ b/runtime/docs/html/argv__example_8c-example.html @@ -0,0 +1,32 @@ +<!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.3.9.1 --> +<h1>argv_example.c</h1><dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>A list. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>argv</em> </td><td>Source argv, in user space. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>number of elements in <em>list</em></dd></dl> +<div class="fragment"><pre class="fragment"><a name="_a0"></a><a class="code" href="structmap__root.html">MAP</a> arglist ; + +<span class="keywordtype">int</span> inst_do_execve (<span class="keywordtype">char</span> * filename, <span class="keywordtype">char</span> __user *__user *argv, <span class="keywordtype">char</span> __user *__user *envp, <span class="keyword">struct</span> pt_regs * regs) +{ + <span class="keyword">struct </span><a name="_a1"></a><a class="code" href="structmap__node__str.html">map_node_str</a> *ptr; + + <a name="a2"></a><a class="code" href="copy_8c.html#a2">_stp_copy_argv_from_user</a> (arglist, argv); + + <a name="a3"></a><a class="code" href="map_8h.html#a8">foreach</a> (arglist, ptr) + printk ("%s ", ptr->str); + printk ("\n"); +} +</pre></div> <hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 03:40:33 2005 for SystemTap by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address> +</body> +</html> diff --git a/runtime/docs/html/bug.html b/runtime/docs/html/bug.html new file mode 100644 index 00000000..a2be5f08 --- /dev/null +++ b/runtime/docs/html/bug.html @@ -0,0 +1,27 @@ +<!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.3.9.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> +<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> +<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> +<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 +<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> +</body> +</html> diff --git a/runtime/docs/html/copy_8c-source.html b/runtime/docs/html/copy_8c-source.html new file mode 100644 index 00000000..2e21314c --- /dev/null +++ b/runtime/docs/html/copy_8c-source.html @@ -0,0 +1,111 @@ +<!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.3.9.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 +00004 <span class="preprocessor">#if defined (__i386__)</span> +00005 <span class="preprocessor"></span><span class="preprocessor">#define __stp_strncpy_from_user(dst,src,count,res) \</span> +00006 <span class="preprocessor">do { \</span> +00007 <span class="preprocessor"> int __d0, __d1, __d2; \</span> +00008 <span class="preprocessor"> __asm__ __volatile__( \</span> +00009 <span class="preprocessor"> " testl %1,%1\n" \</span> +00010 <span class="preprocessor"> " jz 2f\n" \</span> +00011 <span class="preprocessor"> "0: lodsb\n" \</span> +00012 <span class="preprocessor"> " stosb\n" \</span> +00013 <span class="preprocessor"> " testb %%al,%%al\n" \</span> +00014 <span class="preprocessor"> " jz 1f\n" \</span> +00015 <span class="preprocessor"> " decl %1\n" \</span> +00016 <span class="preprocessor"> " jnz 0b\n" \</span> +00017 <span class="preprocessor"> "1: subl %1,%0\n" \</span> +00018 <span class="preprocessor"> "2:\n" \</span> +00019 <span class="preprocessor"> ".section .fixup,\"ax\"\n" \</span> +00020 <span class="preprocessor"> "3: movl %5,%0\n" \</span> +00021 <span class="preprocessor"> " jmp 2b\n" \</span> +00022 <span class="preprocessor"> ".previous\n" \</span> +00023 <span class="preprocessor"> ".section __ex_table,\"a\"\n" \</span> +00024 <span class="preprocessor"> " .align 4\n" \</span> +00025 <span class="preprocessor"> " .long 0b,3b\n" \</span> +00026 <span class="preprocessor"> ".previous" \</span> +00027 <span class="preprocessor"> : "=d"(res), "=c"(count), "=&a" (__d0), "=&S" (__d1), \</span> +00028 <span class="preprocessor"> "=&D" (__d2) \</span> +00029 <span class="preprocessor"> : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \</span> +00030 <span class="preprocessor"> : "memory"); \</span> +00031 <span class="preprocessor">} while (0)</span> +00032 <span class="preprocessor"></span><span class="preprocessor">#elif defined (__x86_64__)</span> +00033 <span class="preprocessor"></span><span class="preprocessor">#define __stp_strncpy_from_user(dst,src,count,res) \</span> +00034 <span class="preprocessor">do { \</span> +00035 <span class="preprocessor"> long __d0, __d1, __d2; \</span> +00036 <span class="preprocessor"> __asm__ __volatile__( \</span> +00037 <span class="preprocessor"> " testq %1,%1\n" \</span> +00038 <span class="preprocessor"> " jz 2f\n" \</span> +00039 <span class="preprocessor"> "0: lodsb\n" \</span> +00040 <span class="preprocessor"> " stosb\n" \</span> +00041 <span class="preprocessor"> " testb %%al,%%al\n" \</span> +00042 <span class="preprocessor"> " jz 1f\n" \</span> +00043 <span class="preprocessor"> " decq %1\n" \</span> +00044 <span class="preprocessor"> " jnz 0b\n" \</span> +00045 <span class="preprocessor"> "1: subq %1,%0\n" \</span> +00046 <span class="preprocessor"> "2:\n" \</span> +00047 <span class="preprocessor"> ".section .fixup,\"ax\"\n" \</span> +00048 <span class="preprocessor"> "3: movq %5,%0\n" \</span> +00049 <span class="preprocessor"> " jmp 2b\n" \</span> +00050 <span class="preprocessor"> ".previous\n" \</span> +00051 <span class="preprocessor"> ".section __ex_table,\"a\"\n" \</span> +00052 <span class="preprocessor"> " .align 8\n" \</span> +00053 <span class="preprocessor"> " .quad 0b,3b\n" \</span> +00054 <span class="preprocessor"> ".previous" \</span> +00055 <span class="preprocessor"> : "=r"(res), "=c"(count), "=&a" (__d0), "=&S" (__d1), \</span> +00056 <span class="preprocessor"> "=&D" (__d2) \</span> +00057 <span class="preprocessor"> : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \</span> +00058 <span class="preprocessor"> : "memory"); \</span> +00059 <span class="preprocessor">} while (0)</span> +00060 <span class="preprocessor"></span><span class="preprocessor">#endif</span> +00061 <span class="preprocessor"></span> +00078 <span class="keywordtype">long</span> +<a name="l00079"></a><a class="code" href="copy_8c.html#a0">00079</a> <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) +00080 { +00081 <span class="keywordtype">long</span> res; +00082 __stp_strncpy_from_user(dst, src, count, res); +00083 <span class="keywordflow">return</span> res; +00084 } +00085 +00099 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keyword">inline</span> +<a name="l00100"></a><a class="code" href="copy_8c.html#a1">00100</a> <a class="code" href="copy_8c.html#a1">_stp_copy_from_user</a> (<span class="keywordtype">char</span> *dst, <span class="keyword">const</span> <span class="keywordtype">char</span> __user *src, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> count) +00101 { +00102 <span class="keywordflow">return</span> __copy_from_user_inatomic(dst, src, count); +00103 } +00104 +<a name="l00115"></a><a class="code" href="copy_8c.html#a2">00115</a> <span class="keywordtype">int</span> <a class="code" href="copy_8c.html#a2">_stp_copy_argv_from_user</a> (<a class="code" href="structmap__root.html">MAP</a> list, <span class="keywordtype">char</span> __user *__user *argv) +00116 { +00117 <span class="keywordtype">char</span> str[128]; +00118 <span class="keywordtype">char</span> __user *vstr; +00119 <span class="keywordtype">int</span> len; +00120 +00121 <span class="keywordflow">if</span> (argv) +00122 argv++; +00123 +00124 <span class="keywordflow">while</span> (argv != NULL) { +00125 <span class="keywordflow">if</span> (get_user (vstr, argv)) +00126 <span class="keywordflow">break</span>; +00127 +00128 <span class="keywordflow">if</span> (vstr == NULL) +00129 <span class="keywordflow">break</span>; +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); +00134 argv++; +00135 } +00136 <span class="keywordflow">return</span> list-><a class="code" href="structmap__root.html#o1">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 +<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> +</body> +</html> diff --git a/runtime/docs/html/copy_8c.html b/runtime/docs/html/copy_8c.html new file mode 100644 index 00000000..0febb9ab --- /dev/null +++ b/runtime/docs/html/copy_8c.html @@ -0,0 +1,204 @@ +<!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.3.9.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"> +<tr><td></td></tr> +<tr><td colspan="2"><br><h2>Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">long </td><td class="memItemRight" valign="bottom"><a class="el" href="copy_8c.html#a0">_stp_strncpy_from_user</a> (char *dst, const char __user *src, long count)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Copy a NULL-terminated string from userspace. <a href="#a0"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned long </td><td class="memItemRight" valign="bottom"><a class="el" href="copy_8c.html#a1">_stp_copy_from_user</a> (char *dst, const char __user *src, unsigned long count)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Copy a block of data from user space. <a href="#a1"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="copy_8c.html#a2">_stp_copy_argv_from_user</a> (<a class="el" href="structmap__root.html">MAP</a> list, char __user *__user *argv)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Copy an argv from user space to a List. <a href="#a2"></a><br></td></tr> +</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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int _stp_copy_argv_from_user </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname" nowrap> <em>list</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>char __user *__user * </td> + <td class="mdname" nowrap> <em>argv</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Copy an argv from user space to a List. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>A list. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>argv</em> </td><td>Source argv, in user space. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>number of elements in <em>list</em></dd></dl> +<b>Example:</b> <div class="fragment"><pre class="fragment"><a class="code" href="structmap__root.html">MAP</a> arglist ; + +<span class="keywordtype">int</span> inst_do_execve (<span class="keywordtype">char</span> * filename, <span class="keywordtype">char</span> __user *__user *argv, <span class="keywordtype">char</span> __user *__user *envp, <span class="keyword">struct</span> pt_regs * regs) +{ + <span class="keyword">struct </span><a class="code" href="structmap__node__str.html">map_node_str</a> *ptr; + + <a class="code" href="copy_8c.html#a2">_stp_copy_argv_from_user</a> (arglist, argv); + + <a class="code" href="map_8h.html#a8">foreach</a> (arglist, ptr) + printk ("%s ", ptr->str); + printk ("\n"); +} +</pre></div> +<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> + </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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">unsigned long _stp_copy_from_user </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">char * </td> + <td class="mdname" nowrap> <em>dst</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>const char __user * </td> + <td class="mdname" nowrap> <em>src</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>unsigned long </td> + <td class="mdname" nowrap> <em>count</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline]</code></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Copy a block of data from user space. +<p> +If some data could not be copied, this function will pad the copied data to the requested size using zero bytes.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>dst</em> </td><td>Destination address, in kernel space. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>Source address, in user space. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>Number of bytes to copy. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>number of bytes that could not be copied. On success, this will be zero. </dd></dl> + +<p> +Definition at line <a class="el" href="copy_8c-source.html#l00100">100</a> of file <a class="el" href="copy_8c-source.html">copy.c</a>. </td> + </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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">long _stp_strncpy_from_user </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">char * </td> + <td class="mdname" nowrap> <em>dst</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>const char __user * </td> + <td class="mdname" nowrap> <em>src</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>long </td> + <td class="mdname" nowrap> <em>count</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Copy a NULL-terminated string from userspace. +<p> +On success, returns the length of the string (not including the trailing NULL).<p> +If access to userspace fails, returns -EFAULT (some data may have been copied). <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>dst</em> </td><td>Destination address, in kernel space. This buffer must be at least <em>count</em> bytes long. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>Source address, in user space. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>Maximum number of bytes to copy, including the trailing NULL.</td></tr> + </table> +</dl> +If <em>count</em> is smaller than the length of the string, copies <em>count</em> bytes and returns <em>count</em>. +<p> +Definition at line <a class="el" href="copy_8c-source.html#l00079">79</a> of file <a class="el" href="copy_8c-source.html">copy.c</a>. +<p> +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 +<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> +</body> +</html> diff --git a/runtime/docs/html/docs_2argv__example_8c-example.html b/runtime/docs/html/docs_2argv__example_8c-example.html new file mode 100644 index 00000000..0ad61d6d --- /dev/null +++ b/runtime/docs/html/docs_2argv__example_8c-example.html @@ -0,0 +1,20 @@ +<!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.3.9.1 --> +<h1>docs/argv_example.c</h1><dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>A list. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>argv</em> </td><td>Source argv, in user space. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>number of elements in <em>list</em></dd></dl> +<div class="fragment"><pre class="fragment"></pre></div> <hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 03:35:02 2005 for SystemTap by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address> +</body> +</html> diff --git a/runtime/docs/html/doxygen.css b/runtime/docs/html/doxygen.css new file mode 100644 index 00000000..1d4d6311 --- /dev/null +++ b/runtime/docs/html/doxygen.css @@ -0,0 +1,271 @@ +BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { + font-family: Geneva, Arial, Helvetica, sans-serif; +} +H1 { + text-align: center; +} +CAPTION { font-weight: bold } +DIV.qindex { + width: 100%; + background-color: #eeeeff; + border: 1px solid #b0b0b0; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.nav { + width: 100%; + background-color: #eeeeff; + border: 1px solid #b0b0b0; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +A.qindex { + text-decoration: none; + font-weight: bold; + color: #1A419D; +} +A.qindex:visited { + text-decoration: none; + font-weight: bold; + color: #1A419D +} +A.qindex:hover { + text-decoration: none; + background-color: #ddddff; +} +A.qindexHL { + text-decoration: none; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} +A.qindexHL:hover { + text-decoration: none; + background-color: #6666cc; + color: #ffffff; +} +A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } +A.el { text-decoration: none; font-weight: bold } +A.elRef { font-weight: bold } +A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} +A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} +A.codeRef:link { font-weight: normal; color: #0000FF} +A.codeRef:visited { font-weight: normal; color: #0000FF} +A:hover { text-decoration: none; background-color: #f2f2ff } +DL.el { margin-left: -1cm } +.fragment { + font-family: monospace +} +PRE.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; +} +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.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; } +TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; } +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} +DIV.groupText { margin-left: 16px; font-style: italic; font-size: 14px } +BODY { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} +TD.indexkey { + background-color: #eeeeff; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TD.indexvalue { + background-color: #eeeeff; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TR.memlist { + background-color: #f0f0f0; +} +P.formulaDsp { text-align: center; } +IMG.formulaDsp { } +IMG.formulaInl { vertical-align: middle; } +SPAN.keyword { color: #008000 } +SPAN.keywordtype { color: #604020 } +SPAN.keywordflow { color: #e08000 } +SPAN.comment { color: #800000 } +SPAN.preprocessor { color: #806020 } +SPAN.stringliteral { color: #002080 } +SPAN.charliteral { color: #008080 } +.mdTable { + border: 1px solid #868686; + background-color: #F4F4FB; +} +.mdRow { + padding: 8px 10px; +} +.mdescLeft { + padding: 0px 8px 4px 8px; + font-size: 12px; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.mdescRight { + padding: 0px 8px 4px 8px; + font-size: 12px; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.memItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 12px; +} +.memItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 13px; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 12px; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 13px; +} +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 12px; +} +.search { color: #003399; + font-weight: bold; +} +FORM.search { + margin-bottom: 0px; + margin-top: 0px; +} +INPUT.search { font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #eeeeff; +} +TD.tiny { font-size: 75%; +} +a { + color: #252E78; +} +a:visited { + color: #3D2185; +} diff --git a/runtime/docs/html/doxygen.png b/runtime/docs/html/doxygen.png Binary files differnew file mode 100644 index 00000000..f0a274bb --- /dev/null +++ b/runtime/docs/html/doxygen.png diff --git a/runtime/docs/html/examples.html b/runtime/docs/html/examples.html new file mode 100644 index 00000000..cd53f417 --- /dev/null +++ b/runtime/docs/html/examples.html @@ -0,0 +1,16 @@ +<!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.3.9.1 --> +<h1>SystemTap Examples</h1>Here is a list of all examples:<ul> +<li><a class="el" href="foreach_8c-example.html">foreach.c</a> +</ul> +<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 12:24:52 2005 for SystemTap by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address> +</body> +</html> diff --git a/runtime/docs/html/files.html b/runtime/docs/html/files.html new file mode 100644 index 00000000..599ee02d --- /dev/null +++ b/runtime/docs/html/files.html @@ -0,0 +1,22 @@ +<!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.3.9.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="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> +</table> +<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address> +</body> +</html> diff --git a/runtime/docs/html/foreach_8c-example.html b/runtime/docs/html/foreach_8c-example.html new file mode 100644 index 00000000..ccafaeeb --- /dev/null +++ b/runtime/docs/html/foreach_8c-example.html @@ -0,0 +1,28 @@ +<!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.3.9.1 --> +<h1>foreach.c</h1><dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + <tr><td valign="top"></td><td valign="top"><em>ptr</em> </td><td>pointer to a <a class="el" href="structmap__node__stat.html">map_node_stat</a>, <a class="el" href="structmap__node__int64.html">map_node_int64</a> or <a class="el" href="structmap__node__str.html">map_node_str</a></td></tr> + </table> +</dl> +<div class="fragment"><pre class="fragment"><span class="comment">/* example showing how to print all the stats in a map using foreach() */</span> + +<span class="keyword">struct </span><a name="_a0"></a><a class="code" href="structmap__node__stat.html">map_node_stat</a> *ptr; + +<a name="a1"></a><a class="code" href="map_8h.html#a8">foreach</a> (map, ptr) + printf ("map[%s,%ld] = [c=%lld s=%lld min=%lld max=%lld]\n", key1str(ptr), + key2int(ptr), ptr->stats.count, ptr->stats.sum, ptr->stats.min, + ptr->stats.max); + +</pre></div> <hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 12:24:52 2005 for SystemTap by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address> +</body> +</html> diff --git a/runtime/docs/html/ftv2blank.png b/runtime/docs/html/ftv2blank.png Binary files differnew file mode 100644 index 00000000..493c3c0b --- /dev/null +++ b/runtime/docs/html/ftv2blank.png diff --git a/runtime/docs/html/ftv2doc.png b/runtime/docs/html/ftv2doc.png Binary files differnew file mode 100644 index 00000000..f72999f9 --- /dev/null +++ b/runtime/docs/html/ftv2doc.png diff --git a/runtime/docs/html/ftv2folderclosed.png b/runtime/docs/html/ftv2folderclosed.png Binary files differnew file mode 100644 index 00000000..d6d06344 --- /dev/null +++ b/runtime/docs/html/ftv2folderclosed.png diff --git a/runtime/docs/html/ftv2folderopen.png b/runtime/docs/html/ftv2folderopen.png Binary files differnew file mode 100644 index 00000000..bbe2c913 --- /dev/null +++ b/runtime/docs/html/ftv2folderopen.png diff --git a/runtime/docs/html/ftv2lastnode.png b/runtime/docs/html/ftv2lastnode.png Binary files differnew file mode 100644 index 00000000..e7b9ba90 --- /dev/null +++ b/runtime/docs/html/ftv2lastnode.png diff --git a/runtime/docs/html/ftv2link.png b/runtime/docs/html/ftv2link.png Binary files differnew file mode 100644 index 00000000..14f3fed0 --- /dev/null +++ b/runtime/docs/html/ftv2link.png diff --git a/runtime/docs/html/ftv2mlastnode.png b/runtime/docs/html/ftv2mlastnode.png Binary files differnew file mode 100644 index 00000000..09ceb6ad --- /dev/null +++ b/runtime/docs/html/ftv2mlastnode.png diff --git a/runtime/docs/html/ftv2mnode.png b/runtime/docs/html/ftv2mnode.png Binary files differnew file mode 100644 index 00000000..3254c051 --- /dev/null +++ b/runtime/docs/html/ftv2mnode.png diff --git a/runtime/docs/html/ftv2node.png b/runtime/docs/html/ftv2node.png Binary files differnew file mode 100644 index 00000000..c9f06a57 --- /dev/null +++ b/runtime/docs/html/ftv2node.png diff --git a/runtime/docs/html/ftv2plastnode.png b/runtime/docs/html/ftv2plastnode.png Binary files differnew file mode 100644 index 00000000..0b07e009 --- /dev/null +++ b/runtime/docs/html/ftv2plastnode.png diff --git a/runtime/docs/html/ftv2pnode.png b/runtime/docs/html/ftv2pnode.png Binary files differnew file mode 100644 index 00000000..2001b797 --- /dev/null +++ b/runtime/docs/html/ftv2pnode.png diff --git a/runtime/docs/html/ftv2vertline.png b/runtime/docs/html/ftv2vertline.png Binary files differnew file mode 100644 index 00000000..b330f3a3 --- /dev/null +++ b/runtime/docs/html/ftv2vertline.png diff --git a/runtime/docs/html/functions.html b/runtime/docs/html/functions.html new file mode 100644 index 00000000..60b6cf16 --- /dev/null +++ b/runtime/docs/html/functions.html @@ -0,0 +1,43 @@ +<!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.3.9.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#o8">map_root</a><li>c_key2 +: <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="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="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__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="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__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="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 +<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> +</body> +</html> diff --git a/runtime/docs/html/functions_vars.html b/runtime/docs/html/functions_vars.html new file mode 100644 index 00000000..aa0ebe5a --- /dev/null +++ b/runtime/docs/html/functions_vars.html @@ -0,0 +1,43 @@ +<!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.3.9.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#o8">map_root</a><li>c_key2 +: <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="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="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__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="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__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="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 +<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> +</body> +</html> diff --git a/runtime/docs/html/globals.html b/runtime/docs/html/globals.html new file mode 100644 index 00000000..9c4c693f --- /dev/null +++ b/runtime/docs/html/globals.html @@ -0,0 +1,99 @@ +<!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.3.9.1 --> +<div class="qindex"><a class="qindexHL" href="globals.html">All</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_type.html">Typedefs</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration values</a> | <a class="qindex" href="globals_defs.html">Defines</a></div> +<div class="qindex"><a class="qindex" href="#index__">_</a> | <a class="qindex" href="#index_d">d</a> | <a class="qindex" href="#index_e">e</a> | <a class="qindex" href="#index_f">f</a> | <a class="qindex" href="#index_i">i</a> | <a class="qindex" href="#index_k">k</a> | <a class="qindex" href="#index_l">l</a> | <a class="qindex" href="#index_m">m</a> | <a class="qindex" href="#index_n">n</a> | <a class="qindex" href="#index_p">p</a> | <a class="qindex" href="#index_s">s</a> | <a class="qindex" href="#index_v">v</a></div> + +<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() +: <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="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#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#a7">map.c</a><li>_stp_map_key +: <a class="el" href="map_8h.html#a5">map.h</a><li>_stp_map_key2 +: <a class="el" href="map_8h.html#a4">map.h</a><li>_stp_map_key_del() +: <a class="el" href="map_8c.html#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#a9">map.c</a><li>_stp_map_key_long_str() +: <a class="el" href="map_8c.html#a12">map.c</a><li>_stp_map_key_str() +: <a class="el" href="map_8c.html#a13">map.c</a><li>_stp_map_key_str_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 +: <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#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> +<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> +<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> +<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> +<h3><a class="anchor" name="index_i">- i -</a></h3><ul> +<li>INT64 +: <a class="el" href="map_8h.html#a19a14">map.h</a></ul> +<h3><a class="anchor" name="index_k">- k -</a></h3><ul> +<li>key1int +: <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><li>keytype +: <a class="el" href="map_8h.html#a18">map.h</a></ul> +<h3><a class="anchor" name="index_l">- l -</a></h3><ul> +<li>LONG +: <a class="el" href="map_8h.html#a18a12">map.h</a></ul> +<h3><a class="anchor" name="index_m">- m -</a></h3><ul> +<li>MAP +: <a class="el" href="map_8h.html#a10">map.h</a></ul> +<h3><a class="anchor" name="index_n">- n -</a></h3><ul> +<li>NONE +: <a class="el" href="map_8h.html#a18a11">map.h</a></ul> +<h3><a class="anchor" name="index_p">- p -</a></h3><ul> +<li>packed +: <a class="el" href="map_8h.html#a9">map.h</a></ul> +<h3><a class="anchor" name="index_s">- s -</a></h3><ul> +<li>STAT +: <a class="el" href="map_8h.html#a19a15">map.h</a><li>STR +: <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 +<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> +</body> +</html> diff --git a/runtime/docs/html/globals_defs.html b/runtime/docs/html/globals_defs.html new file mode 100644 index 00000000..ed1d2424 --- /dev/null +++ b/runtime/docs/html/globals_defs.html @@ -0,0 +1,28 @@ +<!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.3.9.1 --> +<div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_type.html">Typedefs</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration values</a> | <a class="qindexHL" href="globals_defs.html">Defines</a></div> + +<p> +<ul> +<li>_stp_list_add +: <a class="el" href="map_8h.html#a7">map.h</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_set +: <a class="el" href="map_8h.html#a6">map.h</a><li>dbug +: <a class="el" href="runtime_8h.html#a0">runtime.h</a><li>foreach +: <a class="el" href="map_8h.html#a8">map.h</a><li>key1int +: <a class="el" href="map_8h.html#a2">map.h</a><li>key1str +: <a class="el" href="map_8h.html#a0">map.h</a><li>key2int +: <a class="el" href="map_8h.html#a3">map.h</a><li>key2str +: <a class="el" href="map_8h.html#a1">map.h</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address> +</body> +</html> diff --git a/runtime/docs/html/globals_enum.html b/runtime/docs/html/globals_enum.html new file mode 100644 index 00000000..f12861a2 --- /dev/null +++ b/runtime/docs/html/globals_enum.html @@ -0,0 +1,21 @@ +<!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.3.9.1 --> +<div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_type.html">Typedefs</a> | <a class="qindexHL" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration values</a> | <a class="qindex" href="globals_defs.html">Defines</a></div> + +<p> +<ul> +<li>errorcode +: <a class="el" href="alloc_8h.html#a7">alloc.h</a><li>keytype +: <a class="el" href="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 +<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> +</body> +</html> diff --git a/runtime/docs/html/globals_eval.html b/runtime/docs/html/globals_eval.html new file mode 100644 index 00000000..f697e2e0 --- /dev/null +++ b/runtime/docs/html/globals_eval.html @@ -0,0 +1,27 @@ +<!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.3.9.1 --> +<div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_type.html">Typedefs</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindexHL" href="globals_eval.html">Enumeration values</a> | <a class="qindex" href="globals_defs.html">Defines</a></div> + +<p> +<ul> +<li>END +: <a class="el" href="map_8h.html#a19a17">map.h</a><li>ERR_NO_MEM +: <a class="el" href="alloc_8h.html#a7a1">alloc.h</a><li>ERR_NONE +: <a class="el" href="alloc_8h.html#a7a0">alloc.h</a><li>INT64 +: <a class="el" href="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 +<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> +</body> +</html> diff --git a/runtime/docs/html/globals_func.html b/runtime/docs/html/globals_func.html new file mode 100644 index 00000000..3ef3fd40 --- /dev/null +++ b/runtime/docs/html/globals_func.html @@ -0,0 +1,55 @@ +<!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.3.9.1 --> +<div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindexHL" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_type.html">Typedefs</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration values</a> | <a class="qindex" href="globals_defs.html">Defines</a></div> +<div class="qindex"><a class="qindex" href="#index__">_</a> | <a class="qindex" href="#index_d">d</a></div> + +<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() +: <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="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#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#a9">map.c</a><li>_stp_map_key_long_str() +: <a class="el" href="map_8c.html#a12">map.c</a><li>_stp_map_key_str() +: <a class="el" href="map_8c.html#a13">map.c</a><li>_stp_map_key_str_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#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> +<h3><a class="anchor" name="index_d">- d -</a></h3><ul> +<li>dlog() +: <a class="el" href="io_8c.html#a0">io.c</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address> +</body> +</html> diff --git a/runtime/docs/html/globals_type.html b/runtime/docs/html/globals_type.html new file mode 100644 index 00000000..194983d0 --- /dev/null +++ b/runtime/docs/html/globals_type.html @@ -0,0 +1,19 @@ +<!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.3.9.1 --> +<div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_vars.html">Variables</a> | <a class="qindexHL" href="globals_type.html">Typedefs</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration values</a> | <a class="qindex" href="globals_defs.html">Defines</a></div> + +<p> +<ul> +<li>MAP +: <a class="el" href="map_8h.html#a10">map.h</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by +<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> +</body> +</html> diff --git a/runtime/docs/html/globals_vars.html b/runtime/docs/html/globals_vars.html new file mode 100644 index 00000000..f0282f63 --- /dev/null +++ b/runtime/docs/html/globals_vars.html @@ -0,0 +1,19 @@ +<!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.3.9.1 --> +<div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindexHL" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_type.html">Typedefs</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration values</a> | <a class="qindex" href="globals_defs.html">Defines</a></div> + +<p> +<ul> +<li>packed +: <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 +<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> +</body> +</html> diff --git a/runtime/docs/html/index.html b/runtime/docs/html/index.html new file mode 100644 index 00000000..3796e861 --- /dev/null +++ b/runtime/docs/html/index.html @@ -0,0 +1,40 @@ +<!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.3.9.1 --> +<h1>SystemTap Runtime Library </h1> +<p> +<h3 align="center">0.1 </h3><h2><a class="anchor" name="intro_sec"> +Introduction</a></h2> +The SystemTap Runtime Library consists of all functions and code fragments needed by the compiler/translator to include in building a kernel module using kprobes.<h2><a class="anchor" name="design_sec"> +Design</a></h2> +<h3><a class="anchor" name="map_sec"> +Maps (Associative Arrays)</a></h3> +Maps are implemented as hash lists. It is not expected that users will attempt to collect so much data in kernel space that performance problems will require more complex solutions such as AVL trees.<p> +Maps are created with <a class="el" href="map_8c.html#a3">_stp_map_new()</a>. Each map can hold only one type of data; int64, string, or statistics. Each element belonging to a map can have up to 2 keys and a value. Implemented key types are strings and longs.<p> +To simplify the implementation, the functions to set the key and the functions to set the data are separated. That means we need only 4 functions to set the key and 3 functions to set the value.<p> +For example: <div class="fragment"><pre class="fragment"> +<span class="comment">/* create a map with a max of 100 elements */</span> +<a class="code" href="structmap__root.html">MAP</a> mymap = map_new(100, INT64); + +<span class="comment">/* mymap[birth year] = 2000 */</span> +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"> +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 +<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> +</body> +</html> diff --git a/runtime/docs/html/io_8c-source.html b/runtime/docs/html/io_8c-source.html new file mode 100644 index 00000000..5a5c1fe3 --- /dev/null +++ b/runtime/docs/html/io_8c-source.html @@ -0,0 +1,23 @@ +<!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.3.9.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, ...) +00012 { +00013 va_list args; +00014 printk(<span class="stringliteral">"STP: "</span>); +00015 va_start(args, fmt); +00016 vprintk(fmt, args); +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 +<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> +</body> +</html> diff --git a/runtime/docs/html/io_8c.html b/runtime/docs/html/io_8c.html new file mode 100644 index 00000000..1419497c --- /dev/null +++ b/runtime/docs/html/io_8c.html @@ -0,0 +1,75 @@ +<!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.3.9.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>Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="io_8c.html#a0">dlog</a> (const char *fmt,...)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Logs data. <a href="#a0"></a><br></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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void dlog </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const char * </td> + <td class="mdname" nowrap> <em>fmt</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap> </td> + <td class="mdname" nowrap> <em>...</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Logs data. +<p> +This function is compatible with printk. In fact it currently sends all output to vprintk, after sending "STP: ". This allows us to easily detect SystemTap output in the log file.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>fmt</em> </td><td>A variable number of args. </td></tr> + </table> +</dl> +<dl compact><dt><b><a class="el" href="bug.html#_bug000003">Bug:</a></b></dt><dd>Lines are limited in length by printk buffer.</dd></dl> +<p> +<dl compact><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>Needs replaced with something much faster that does not use the system log. </dd></dl> + +<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> + </tr> +</table> +<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address> +</body> +</html> diff --git a/runtime/docs/html/main.html b/runtime/docs/html/main.html new file mode 100644 index 00000000..59ec4e75 --- /dev/null +++ b/runtime/docs/html/main.html @@ -0,0 +1,17 @@ +<!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.3.9.1 --> +<h1>SystemTap Runtime Library </h1> +<p> +<h3 align="center">0.1 </h3><h2><a class="anchor" name="intro_sec"> +Introduction</a></h2> +The SystemTap Runtime Library consists of all functions and code fragments needed by the compiler/translator to include in building a kernel module using kprobes. <hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 01:43:27 2005 for SystemTap by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address> +</body> +</html> diff --git a/runtime/docs/html/map_8c-source.html b/runtime/docs/html/map_8c-source.html new file mode 100644 index 00000000..301087fb --- /dev/null +++ b/runtime/docs/html/map_8c-source.html @@ -0,0 +1,661 @@ +<!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.3.9.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[] = { +00004 <span class="keyword">sizeof</span>(<span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a>), +00005 sizeof(struct map_node_stat), +00006 sizeof(struct map_node_str), +00007 0 +00008 }; +00009 +00010 <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">unsigned</span> string_hash(<span class="keyword">const</span> <span class="keywordtype">char</span> *key1, <span class="keyword">const</span> <span class="keywordtype">char</span> *key2) +00011 { +00012 <span class="keywordtype">int</span> hash = 0, count = 0; +00013 <span class="keywordtype">char</span> *v1 = (<span class="keywordtype">char</span> *)key1; +00014 <span class="keywordtype">char</span> *v2 = (<span class="keywordtype">char</span> *)key2; +00015 <span class="keywordflow">while</span> (*v1 && count++ < 5) { +00016 hash += *v1++; +00017 } +00018 <span class="keywordflow">while</span> (v2 && *v2 && count++ < 5) { +00019 hash += *v2++; +00020 } +00021 <span class="keywordflow">return</span> hash_long((<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)hash, HASH_TABLE_BITS); +00022 } +00023 +00024 <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">unsigned</span> mixed_hash(<span class="keyword">const</span> <span class="keywordtype">char</span> *key1, <span class="keywordtype">long</span> key2) +00025 { +00026 <span class="keywordtype">int</span> hash = 0, count = 0; +00027 <span class="keywordtype">char</span> *v = (<span class="keywordtype">char</span> *)key1; +00028 <span class="keywordflow">while</span> (v && *v && count++ < 5) +00029 hash += *v++; +00030 <span class="keywordflow">return</span> hash_long((<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)(hash ^ key2), HASH_TABLE_BITS); +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) +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>)); +00047 <span class="keywordflow">if</span> (m == NULL) +00048 <span class="keywordflow">return</span> NULL; +00049 +00050 INIT_LIST_HEAD(&m-><a class="code" href="structmap__root.html#o3">head</a>); +00051 +00052 m-><a class="code" href="structmap__root.html#o0">maxnum</a> = max_entries; +00053 m->type = type; +00054 <span class="keywordflow">if</span> (type >= END) { +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 } +00058 +00059 <span class="keywordflow">if</span> (max_entries) { +00060 <span class="keywordtype">void</span> *tmp; +00061 <span class="keywordtype">int</span> i; +00062 <span class="keyword">struct </span>list_head *e; +00063 +00064 INIT_LIST_HEAD(&m-><a class="code" href="structmap__root.html#o4">pool</a>); +00065 size = map_sizes[type]; +00066 tmp = <a class="code" href="alloc_8h.html#a4">_stp_valloc</a>(max_entries * size); +00067 +00068 <span class="keywordflow">for</span> (i = max_entries - 1; i >= 0; i--) { +00069 e = i * size + tmp; +00070 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"e=%lx\n"</span>, (<span class="keywordtype">long</span>)e); +00071 list_add(e, &m-><a class="code" href="structmap__root.html#o4">pool</a>); +00072 } +00073 m-><a class="code" href="structmap__root.html#o11">membuf</a> = tmp; +00074 } +00075 <span class="keywordflow">return</span> m; +00076 } +00077 +00078 <span class="keyword">static</span> <span class="keywordtype">void</span> map_free_strings(<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> *n) +00079 { +00080 <span class="keyword">struct </span>map_node_str *m = (<span class="keyword">struct </span>map_node_str *)n; +00081 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"n = %lx\n"</span>, (<span class="keywordtype">long</span>)n); +00082 <span class="keywordflow">if</span> (map->type == STRING) { +00083 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"val STRING %lx\n"</span>, (<span class="keywordtype">long</span>)m-><a class="code" href="structmap__node__str.html#o1">str</a>); +00084 <span class="keywordflow">if</span> (m-><a class="code" href="structmap__node__str.html#o1">str</a>) +00085 <a class="code" href="alloc_8h.html#a5">_stp_free</a>(m-><a class="code" href="structmap__node__str.html#o1">str</a>); +00086 } +00087 <span class="keywordflow">if</span> (m-><a class="code" href="structmap__node__str.html#o0">n</a>.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)); +00091 } +00092 <span class="keywordflow">if</span> (m-><a class="code" href="structmap__node__str.html#o0">n</a>.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)); +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) +00105 { +00106 <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *m; +00107 +00108 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"create=%d key=%lx\n"</span>, map-><a class="code" href="structmap__root.html#o6">create</a>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o5">key</a>); +00109 <span class="keywordflow">if</span> (map == NULL) +00110 <span class="keywordflow">return</span>; +00111 +00112 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o6">create</a>) { +00113 map-><a class="code" href="structmap__root.html#o6">create</a> = 0; +00114 map-><a class="code" href="structmap__root.html#o5">key</a> = NULL; +00115 <span class="keywordflow">return</span>; +00116 } +00117 +00118 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o5">key</a> == NULL) +00119 <span class="keywordflow">return</span>; +00120 +00121 m = (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)map-><a class="code" href="structmap__root.html#o5">key</a>; +00122 +00123 <span class="comment">/* remove node from old hash list */</span> +00124 hlist_del_init(&m-><a class="code" href="structmap__node.html#o1">hnode</a>); +00125 +00126 <span class="comment">/* remove from entry list */</span> +00127 list_del(&m-><a class="code" href="structmap__node.html#o0">lnode</a>); +00128 +00129 <span class="comment">/* remove any allocated string storage */</span> +00130 map_free_strings(map, (<span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *)map-><a class="code" href="structmap__root.html#o5">key</a>); +00131 +00132 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o0">maxnum</a>) +00133 list_add(&m-><a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o4">pool</a>); +00134 <span class="keywordflow">else</span> +00135 <a class="code" href="alloc_8h.html#a5">_stp_free</a>(m); +00136 +00137 map-><a class="code" href="structmap__root.html#o5">key</a> = NULL; +00138 map-><a class="code" href="structmap__root.html#o1">num</a>--; +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) +00150 { +00151 <span class="keywordflow">if</span> (map == NULL) +00152 <span class="keywordflow">return</span> NULL; +00153 +00154 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"%lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o3">head</a>.next); +00155 +00156 <span class="keywordflow">if</span> (list_empty(&map-><a class="code" href="structmap__root.html#o3">head</a>)) +00157 <span class="keywordflow">return</span> NULL; +00158 +00159 <span class="keywordflow">return</span> (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)map-><a class="code" href="structmap__root.html#o3">head</a>.next; +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) +00173 { +00174 <span class="keywordflow">if</span> (map == NULL) +00175 <span class="keywordflow">return</span> NULL; +00176 +00177 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"%lx next=%lx prev=%lx map->head.next=%lx\n"</span>, (<span class="keywordtype">long</span>)m, (<span class="keywordtype">long</span>)m-><a class="code" href="structmap__node.html#o0">lnode</a>.next, (<span class="keywordtype">long</span>)m-><a class="code" href="structmap__node.html#o0">lnode</a>.prev, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o3">head</a>.next); +00178 +00179 <span class="keywordflow">if</span> (m->lnode.next == &map-><a class="code" href="structmap__root.html#o3">head</a>) +00180 <span class="keywordflow">return</span> NULL; +00181 +00182 <span class="keywordflow">return</span> (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)m-><a class="code" href="structmap__node.html#o0">lnode</a>.next; +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) +00191 { +00192 <span class="keywordflow">if</span> (map == NULL) +00193 <span class="keywordflow">return</span>; +00194 +00195 <span class="keywordflow">if</span> (!list_empty(&map-><a class="code" href="structmap__root.html#o3">head</a>)) { +00196 <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *ptr = (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)map-><a class="code" href="structmap__root.html#o3">head</a>.next; +00197 <span class="keywordflow">while</span> (ptr && ptr != (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)&map-><a class="code" href="structmap__root.html#o3">head</a>) { +00198 map_free_strings(map, ptr); +00199 ptr = (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)ptr-><a class="code" href="structmap__node.html#o0">lnode</a>.next; +00200 } +00201 } +00202 <a class="code" href="alloc_8h.html#a6">_stp_vfree</a>(map-><a class="code" href="structmap__root.html#o11">membuf</a>); +00203 <a class="code" href="alloc_8h.html#a6">_stp_vfree</a>(map); +00204 } +00205 +00206 <span class="comment">/********************** KEY FUNCTIONS *********************/</span> +00207 +00208 +<a name="l00218"></a><a class="code" href="map_8c.html#a9">00218</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a9">_stp_map_key_long_long</a>(<a class="code" href="structmap__root.html">MAP</a> map, <span class="keywordtype">long</span> key1, <span class="keywordtype">long</span> key2) +00219 { +00220 <span class="keywordtype">unsigned</span> hv; +00221 <span class="keyword">struct </span>hlist_head *head; +00222 <span class="keyword">struct </span>hlist_node *e; +00223 +00224 <span class="keywordflow">if</span> (map == NULL) +00225 <span class="keywordflow">return</span>; +00226 +00227 hv = hash_long(key1 ^ key2, HASH_TABLE_BITS); +00228 head = &map-><a class="code" href="structmap__root.html#o10">hashes</a>[hv]; +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 +00232 hlist_for_each(e, head) { +00233 <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *n = +00234 (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)((long)e - <span class="keyword">sizeof</span>(<span class="keyword">struct </span>hlist_node)); +00235 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"n =%lx key=%ld,%ld\n"</span>, (<span class="keywordtype">long</span>)n, n-><a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o0">val</a>, n->key2.<a class="code" href="unionkey__data.html#o0">val</a>); +00236 <span class="keywordflow">if</span> (key1 == n->key1.val && key2 == n->key2.val) { +00237 map-><a class="code" href="structmap__root.html#o5">key</a> = n; +00238 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"saving key %lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o5">key</a>); +00239 map-><a class="code" href="structmap__root.html#o6">create</a> = 0; +00240 <span class="keywordflow">return</span>; +00241 } +00242 } +00243 +00244 map-><a class="code" href="structmap__root.html#o8">c_key1</a>.<a class="code" href="unionkey__data.html#o0">val</a> = key1; +00245 map-><a class="code" href="structmap__root.html#o9">c_key2</a>.<a class="code" href="unionkey__data.html#o0">val</a> = key2; +00246 map->c_key1type = LONG; +00247 map->c_key2type = LONG; +00248 map-><a class="code" href="structmap__root.html#o7">c_keyhead</a> = head; +00249 map-><a class="code" href="structmap__root.html#o6">create</a> = 1; +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) +00262 { +00263 <span class="keywordtype">unsigned</span> hv; +00264 <span class="keyword">struct </span>hlist_head *head; +00265 <span class="keyword">struct </span>hlist_node *e; +00266 +00267 <span class="keywordflow">if</span> (map == NULL) +00268 <span class="keywordflow">return</span>; +00269 +00270 <span class="keywordflow">if</span> (key1 == NULL) { +00271 map-><a class="code" href="structmap__root.html#o5">key</a> = NULL; +00272 <span class="keywordflow">return</span>; +00273 } +00274 +00275 hv = string_hash(key1, key2); +00276 head = &map-><a class="code" href="structmap__root.html#o10">hashes</a>[hv]; +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 +00280 hlist_for_each(e, head) { +00281 <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *n = +00282 (<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)); +00283 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"e =%lx key=%s,%s\n"</span>, (<span class="keywordtype">long</span>)e, n-><a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>,n-><a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o1">str</a>); +00284 <span class="keywordflow">if</span> (strcmp(key1, n-><a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>) == 0 +00285 && (key2 == NULL || strcmp(key2, n-><a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o1">str</a>) == 0)) { +00286 map-><a class="code" href="structmap__root.html#o5">key</a> = n; +00287 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"saving key %lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o5">key</a>); +00288 map-><a class="code" href="structmap__root.html#o6">create</a> = 0; +00289 <span class="keywordflow">return</span>; +00290 } +00291 } +00292 +00293 map-><a class="code" href="structmap__root.html#o8">c_key1</a>.<a class="code" href="unionkey__data.html#o1">str</a> = key1; +00294 map-><a class="code" href="structmap__root.html#o9">c_key2</a>.<a class="code" href="unionkey__data.html#o1">str</a> = key2; +00295 map->c_key1type = STR; +00296 map->c_key2type = STR; +00297 map-><a class="code" href="structmap__root.html#o7">c_keyhead</a> = head; +00298 map-><a class="code" href="structmap__root.html#o6">create</a> = 1; +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) +00311 { +00312 <span class="keywordtype">unsigned</span> hv; +00313 <span class="keyword">struct </span>hlist_head *head; +00314 <span class="keyword">struct </span>hlist_node *e; +00315 +00316 <span class="keywordflow">if</span> (map == NULL) +00317 <span class="keywordflow">return</span>; +00318 +00319 <span class="keywordflow">if</span> (key1 == NULL) { +00320 map-><a class="code" href="structmap__root.html#o5">key</a> = NULL; +00321 <span class="keywordflow">return</span>; +00322 } +00323 +00324 hv = mixed_hash(key1, key2); +00325 head = &map-><a class="code" href="structmap__root.html#o10">hashes</a>[hv]; +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 +00329 hlist_for_each(e, head) { +00330 <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *n = +00331 (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)((long)e - <span class="keyword">sizeof</span>(<span class="keyword">struct </span>hlist_node)); +00332 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"e =%lx key=%s,%ld\n"</span>, (<span class="keywordtype">long</span>)e, n-><a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>,(<span class="keywordtype">long</span>)n-><a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o0">val</a>); +00333 <span class="keywordflow">if</span> (strcmp(key1, n-><a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>) == 0 && key2 == n-><a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o0">val</a>) { +00334 map-><a class="code" href="structmap__root.html#o5">key</a> = n; +00335 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"saving key %lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o5">key</a>); +00336 map-><a class="code" href="structmap__root.html#o6">create</a> = 0; +00337 <span class="keywordflow">return</span>; +00338 } +00339 } +00340 +00341 map-><a class="code" href="structmap__root.html#o8">c_key1</a>.<a class="code" href="unionkey__data.html#o1">str</a> = key1; +00342 map-><a class="code" href="structmap__root.html#o9">c_key2</a>.<a class="code" href="unionkey__data.html#o0">val</a> = key2; +00343 map->c_key1type = STR; +00344 map->c_key2type = LONG; +00345 map-><a class="code" href="structmap__root.html#o7">c_keyhead</a> = head; +00346 map-><a class="code" href="structmap__root.html#o6">create</a> = 1; +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) +00359 { +00360 <span class="keywordtype">unsigned</span> hv; +00361 <span class="keyword">struct </span>hlist_head *head; +00362 <span class="keyword">struct </span>hlist_node *e; +00363 +00364 <span class="keywordflow">if</span> (map == NULL) +00365 <span class="keywordflow">return</span>; +00366 +00367 hv = mixed_hash(key2, key1); +00368 head = &map-><a class="code" href="structmap__root.html#o10">hashes</a>[hv]; +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) { +00372 <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *n = +00373 (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)((long)e - <span class="keyword">sizeof</span>(<span class="keyword">struct </span>hlist_node)); +00374 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"e =%lx key=%ld,%s\n"</span>, (<span class="keywordtype">long</span>)e, n-><a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o0">val</a>,n-><a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o1">str</a>); +00375 <span class="keywordflow">if</span> (key1 == n-><a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o0">val</a> && strcmp(key2, n-><a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o1">str</a>) == 0) { +00376 map-><a class="code" href="structmap__root.html#o5">key</a> = n; +00377 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"saving key %lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o5">key</a>); +00378 map-><a class="code" href="structmap__root.html#o6">create</a> = 0; +00379 <span class="keywordflow">return</span>; +00380 } +00381 } +00382 +00383 map-><a class="code" href="structmap__root.html#o8">c_key1</a>.<a class="code" href="unionkey__data.html#o0">val</a> = key1; +00384 map-><a class="code" href="structmap__root.html#o9">c_key2</a>.<a class="code" href="unionkey__data.html#o1">str</a> = key2; +00385 map->c_key1type = LONG; +00386 map->c_key2type = STR; +00387 map-><a class="code" href="structmap__root.html#o7">c_keyhead</a> = head; +00388 map-><a class="code" href="structmap__root.html#o6">create</a> = 1; +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) +00400 { +00401 <span class="keywordflow">if</span> (map == NULL) +00402 <span class="keywordflow">return</span>; +00403 <a class="code" href="map_8c.html#a10">_stp_map_key_str_str</a>(map, key, NULL); +00404 map->c_key2type = NONE; +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) +00416 { +00417 <span class="keywordflow">if</span> (map == NULL) +00418 <span class="keywordflow">return</span>; +00419 <a class="code" href="map_8c.html#a9">_stp_map_key_long_long</a>(map, key, 0); +00420 map->c_key2type = NONE; +00421 } +00422 +00423 <span class="comment">/********************** SET/GET VALUES *********************/</span> +00424 +00425 <span class="keyword">static</span> <span class="keywordtype">void</span> map_copy_keys(<a class="code" href="structmap__root.html">MAP</a> map, <span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *m) +00426 { +00427 m->key1type = map->c_key1type; +00428 m->key2type = map->c_key2type; +00429 <span class="keywordflow">switch</span> (map->c_key1type) { +00430 <span class="keywordflow">case</span> <a class="code" href="map_8h.html#a18a13">STR</a>: +00431 m-><a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o1">str</a> = <a class="code" href="alloc_8h.html#a2">_stp_alloc</a>(strlen(map-><a class="code" href="structmap__root.html#o8">c_key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>) + 1); +00432 strcpy(m-><a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>, map-><a class="code" href="structmap__root.html#o8">c_key1</a>.<a class="code" href="unionkey__data.html#o1">str</a>); +00433 <span class="keywordflow">break</span>; +00434 <span class="keywordflow">case</span> <a class="code" href="map_8h.html#a18a12">LONG</a>: +00435 m-><a class="code" href="structmap__node.html#o2">key1</a>.<a class="code" href="unionkey__data.html#o0">val</a> = map-><a class="code" href="structmap__root.html#o8">c_key1</a>.<a class="code" href="unionkey__data.html#o0">val</a>; +00436 <span class="keywordflow">break</span>; +00437 <span class="keywordflow">case</span> <a class="code" href="map_8h.html#a18a11">NONE</a>: +00438 <span class="comment">/* ERROR */</span> +00439 <span class="keywordflow">break</span>; +00440 } +00441 <span class="keywordflow">switch</span> (map->c_key2type) { +00442 <span class="keywordflow">case</span> <a class="code" href="map_8h.html#a18a13">STR</a>: +00443 m-><a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o1">str</a> = <a class="code" href="alloc_8h.html#a2">_stp_alloc</a>(strlen(map-><a class="code" href="structmap__root.html#o9">c_key2</a>.<a class="code" href="unionkey__data.html#o1">str</a>) + 1); +00444 strcpy(m-><a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o1">str</a>, map-><a class="code" href="structmap__root.html#o9">c_key2</a>.<a class="code" href="unionkey__data.html#o1">str</a>); +00445 <span class="keywordflow">break</span>; +00446 <span class="keywordflow">case</span> <a class="code" href="map_8h.html#a18a12">LONG</a>: +00447 m-><a class="code" href="structmap__node.html#o3">key2</a>.<a class="code" href="unionkey__data.html#o0">val</a> = map-><a class="code" href="structmap__root.html#o9">c_key2</a>.<a class="code" href="unionkey__data.html#o0">val</a>; +00448 <span class="keywordflow">break</span>; +00449 <span class="keywordflow">case</span> <a class="code" href="map_8h.html#a18a11">NONE</a>: +00450 <span class="keywordflow">break</span>; +00451 } +00452 +00453 <span class="comment">/* add node to new hash list */</span> +00454 hlist_add_head(&m-><a class="code" href="structmap__node.html#o1">hnode</a>, map-><a class="code" href="structmap__root.html#o7">c_keyhead</a>); +00455 +00456 map-><a class="code" href="structmap__root.html#o5">key</a> = m; +00457 map-><a class="code" href="structmap__root.html#o6">create</a> = 0; +00458 map-><a class="code" href="structmap__root.html#o1">num</a>++; +00459 } +00460 +<a name="l00471"></a><a class="code" href="map_8c.html#a16">00471</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a16">_stp_map_set_int64</a>(<a class="code" href="structmap__root.html">MAP</a> map, int64_t val) +00472 { +00473 <span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *m; +00474 +00475 <span class="keywordflow">if</span> (map == NULL) +00476 <span class="keywordflow">return</span>; +00477 +00478 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o6">create</a>) { +00479 <span class="keywordflow">if</span> (val == 0) +00480 <span class="keywordflow">return</span>; +00481 +00482 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o0">maxnum</a>) { +00483 <span class="keywordflow">if</span> (list_empty(&map-><a class="code" href="structmap__root.html#o4">pool</a>)) { +00484 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o2">no_wrap</a>) { +00485 <span class="comment">/* ERROR. FIXME */</span> +00486 <span class="keywordflow">return</span>; +00487 } +00488 m = (<span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *)map-><a class="code" href="structmap__root.html#o3">head</a>.next; +00489 hlist_del_init(&m-><a class="code" href="structmap__node__int64.html#o0">n</a>.<a class="code" href="structmap__node.html#o1">hnode</a>); +00490 map_free_strings(map, (<span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *)m); +00491 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"got %lx off head\n"</span>, (<span class="keywordtype">long</span>)m); +00492 } <span class="keywordflow">else</span> { +00493 m = (<span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *)map-><a class="code" href="structmap__root.html#o4">pool</a>.next; +00494 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"got %lx off pool\n"</span>, (<span class="keywordtype">long</span>)m); +00495 } +00496 list_move_tail(&m-><a class="code" href="structmap__node__int64.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o3">head</a>); +00497 } <span class="keywordflow">else</span> { +00498 m = (<span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *) +00499 <a class="code" href="alloc_8h.html#a3">_stp_calloc</a>(<span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structmap__node__int64.html">map_node_int64</a>)); +00500 <span class="comment">/* add node to list */</span> +00501 list_add_tail(&m-><a class="code" href="structmap__node__int64.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o3">head</a>); +00502 } +00503 +00504 <span class="comment">/* copy the key(s) */</span> +00505 map_copy_keys(map, &m-><a class="code" href="structmap__node__int64.html#o0">n</a>); +00506 +00507 <span class="comment">/* set the value */</span> +00508 m-><a class="code" href="structmap__node__int64.html#o1">val</a> = val; +00509 } <span class="keywordflow">else</span> { +00510 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o5">key</a> == NULL) +00511 <span class="keywordflow">return</span>; +00512 +00513 <span class="keywordflow">if</span> (val) { +00514 m = (<span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *)map-><a class="code" href="structmap__root.html#o5">key</a>; +00515 m-><a class="code" href="structmap__node__int64.html#o1">val</a> = val; +00516 } <span class="keywordflow">else</span> { +00517 <span class="comment">/* setting value to 0 is the same as deleting */</span> +00518 <a class="code" href="map_8c.html#a5">_stp_map_key_del</a>(map); +00519 } +00520 } +00521 } +00522 +<a name="l00528"></a><a class="code" href="map_8c.html#a17">00528</a> int64_t <a class="code" href="map_8c.html#a17">_stp_map_get_int64</a>(<a class="code" href="structmap__root.html">MAP</a> map) +00529 { +00530 <span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *m; +00531 <span class="keywordflow">if</span> (map == NULL || map-><a class="code" href="structmap__root.html#o6">create</a> || map-><a class="code" href="structmap__root.html#o5">key</a> == NULL) +00532 <span class="keywordflow">return</span> 0; +00533 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"%lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o5">key</a>); +00534 m = (<span class="keyword">struct </span><a class="code" href="structmap__node__int64.html">map_node_int64</a> *)map-><a class="code" href="structmap__root.html#o5">key</a>; +00535 <span class="keywordflow">return</span> m-><a class="code" href="structmap__node__int64.html#o1">val</a>; +00536 } +00537 +<a name="l00548"></a><a class="code" href="map_8c.html#a18">00548</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a18">_stp_map_set_str</a>(<a class="code" href="structmap__root.html">MAP</a> map, <span class="keywordtype">char</span> *val) +00549 { +00550 <span class="keyword">struct </span>map_node_str *m; +00551 +00552 <span class="keywordflow">if</span> (map == NULL) +00553 <span class="keywordflow">return</span>; +00554 +00555 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o6">create</a>) { +00556 <span class="keywordflow">if</span> (val == NULL) +00557 <span class="keywordflow">return</span>; +00558 +00559 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o0">maxnum</a>) { +00560 <span class="keywordflow">if</span> (list_empty(&map-><a class="code" href="structmap__root.html#o4">pool</a>)) { +00561 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o2">no_wrap</a>) { +00562 <span class="comment">/* ERROR. FIXME */</span> +00563 <span class="keywordflow">return</span>; +00564 } +00565 m = (<span class="keyword">struct </span>map_node_str *)map-><a class="code" href="structmap__root.html#o3">head</a>.next; +00566 hlist_del_init(&m-><a class="code" href="structmap__node__str.html#o0">n</a>.<a class="code" href="structmap__node.html#o1">hnode</a>); +00567 map_free_strings(map, (<span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *)m); +00568 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"got %lx off head\n"</span>, (<span class="keywordtype">long</span>)m); +00569 } <span class="keywordflow">else</span> { +00570 m = (<span class="keyword">struct </span>map_node_str *)map-><a class="code" href="structmap__root.html#o4">pool</a>.next; +00571 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"got %lx off pool\n"</span>, (<span class="keywordtype">long</span>)m); +00572 } +00573 list_move_tail(&m-><a class="code" href="structmap__node__str.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o3">head</a>); +00574 } <span class="keywordflow">else</span> { +00575 m = (<span class="keyword">struct </span>map_node_str *) +00576 <a class="code" href="alloc_8h.html#a3">_stp_calloc</a>(<span class="keyword">sizeof</span>(<span class="keyword">struct</span> map_node_str)); +00577 <span class="comment">/* add node to list */</span> +00578 list_add_tail(&m-><a class="code" href="structmap__node__str.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o3">head</a>); +00579 } +00580 +00581 <span class="comment">/* copy the key(s) */</span> +00582 map_copy_keys(map, &m-><a class="code" href="structmap__node__str.html#o0">n</a>); +00583 +00584 <span class="comment">/* set the value */</span> +00585 m-><a class="code" href="structmap__node__str.html#o1">str</a> = <a class="code" href="alloc_8h.html#a2">_stp_alloc</a>(strlen(val) + 1); +00586 strcpy(m-><a class="code" href="structmap__node__str.html#o1">str</a>, val); +00587 } <span class="keywordflow">else</span> { +00588 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o5">key</a> == NULL) +00589 <span class="keywordflow">return</span>; +00590 +00591 <span class="keywordflow">if</span> (val) { +00592 m = (<span class="keyword">struct </span>map_node_str *)map-><a class="code" href="structmap__root.html#o5">key</a>; +00593 <span class="keywordflow">if</span> (m-><a class="code" href="structmap__node__str.html#o1">str</a>) +00594 <a class="code" href="alloc_8h.html#a5">_stp_free</a>(m-><a class="code" href="structmap__node__str.html#o1">str</a>); +00595 m-><a class="code" href="structmap__node__str.html#o1">str</a> = <a class="code" href="alloc_8h.html#a2">_stp_alloc</a>(strlen(val) + 1); +00596 strcpy(m-><a class="code" href="structmap__node__str.html#o1">str</a>, val); +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 } +00603 +<a name="l00609"></a><a class="code" href="map_8c.html#a19">00609</a> <span class="keywordtype">char</span> *<a class="code" href="map_8c.html#a19">_stp_map_get_str</a>(<a class="code" href="structmap__root.html">MAP</a> map) +00610 { +00611 <span class="keyword">struct </span>map_node_str *m; +00612 <span class="keywordflow">if</span> (map == NULL || map-><a class="code" href="structmap__root.html#o6">create</a> || map-><a class="code" href="structmap__root.html#o5">key</a> == NULL) +00613 <span class="keywordflow">return</span> NULL; +00614 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"%lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o5">key</a>); +00615 m = (<span class="keyword">struct </span>map_node_str *)map-><a class="code" href="structmap__root.html#o5">key</a>; +00616 <span class="keywordflow">return</span> m-><a class="code" href="structmap__node__str.html#o1">str</a>; +00617 } +00618 +<a name="l00633"></a><a class="code" href="map_8c.html#a20">00633</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a20">_stp_map_set_stat</a>(<a class="code" href="structmap__root.html">MAP</a> map, <a class="code" href="structstat.html">stat</a> * stats) +00634 { +00635 <span class="keyword">struct </span>map_node_stat *m; +00636 +00637 <span class="keywordflow">if</span> (map == NULL) +00638 <span class="keywordflow">return</span>; +00639 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"set_stat %lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o5">key</a>); +00640 +00641 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o6">create</a>) { +00642 <span class="keywordflow">if</span> (stats == NULL) +00643 <span class="keywordflow">return</span>; +00644 +00645 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o0">maxnum</a>) { +00646 <span class="keywordflow">if</span> (list_empty(&map-><a class="code" href="structmap__root.html#o4">pool</a>)) { +00647 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o2">no_wrap</a>) { +00648 <span class="comment">/* ERROR. FIXME */</span> +00649 <span class="keywordflow">return</span>; +00650 } +00651 m = (<span class="keyword">struct </span>map_node_stat *)map-><a class="code" href="structmap__root.html#o3">head</a>.next; +00652 hlist_del_init(&m-><a class="code" href="structmap__node__stat.html#o0">n</a>.<a class="code" href="structmap__node.html#o1">hnode</a>); +00653 map_free_strings(map, (<span class="keyword">struct</span> <a class="code" href="structmap__node.html">map_node</a> *)m); +00654 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"got %lx off head\n"</span>, (<span class="keywordtype">long</span>)m); +00655 } <span class="keywordflow">else</span> { +00656 m = (<span class="keyword">struct </span>map_node_stat *)map-><a class="code" href="structmap__root.html#o4">pool</a>.next; +00657 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"got %lx off pool\n"</span>, (<span class="keywordtype">long</span>)m); +00658 } +00659 list_move_tail(&m-><a class="code" href="structmap__node__stat.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o3">head</a>); +00660 } <span class="keywordflow">else</span> { +00661 m = (<span class="keyword">struct </span>map_node_stat *) +00662 <a class="code" href="alloc_8h.html#a3">_stp_calloc</a>(<span class="keyword">sizeof</span>(<span class="keyword">struct</span> map_node_stat)); +00663 <span class="comment">/* add node to list */</span> +00664 list_add_tail(&m-><a class="code" href="structmap__node__stat.html#o0">n</a>.<a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o3">head</a>); +00665 } +00666 +00667 <span class="comment">/* copy the key(s) */</span> +00668 map_copy_keys(map, &m-><a class="code" href="structmap__node__stat.html#o0">n</a>); +00669 +00670 <span class="comment">/* set the value */</span> +00671 memcpy(&m-><a class="code" href="structmap__node__stat.html#o1">stats</a>, stats, <span class="keyword">sizeof</span>(<a class="code" href="structstat.html">stat</a>)); +00672 } <span class="keywordflow">else</span> { +00673 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o5">key</a> == NULL) +00674 <span class="keywordflow">return</span>; +00675 +00676 <span class="keywordflow">if</span> (stats) { +00677 m = (<span class="keyword">struct </span>map_node_stat *)map-><a class="code" href="structmap__root.html#o5">key</a>; +00678 memcpy(&m-><a class="code" href="structmap__node__stat.html#o1">stats</a>, stats, <span class="keyword">sizeof</span>(<a class="code" href="structstat.html">stat</a>)); +00679 } <span class="keywordflow">else</span> { +00680 <span class="comment">/* setting value to NULL is the same as deleting */</span> +00681 <a class="code" href="map_8c.html#a5">_stp_map_key_del</a>(map); +00682 } +00683 } +00684 } +00685 +<a name="l00692"></a><a class="code" href="map_8c.html#a21">00692</a> <a class="code" href="structstat.html">stat</a> *<a class="code" href="map_8c.html#a21">_stp_map_get_stat</a>(<a class="code" href="structmap__root.html">MAP</a> map) +00693 { +00694 <span class="keyword">struct </span>map_node_stat *m; +00695 <span class="keywordflow">if</span> (map == NULL || map-><a class="code" href="structmap__root.html#o6">create</a> || map-><a class="code" href="structmap__root.html#o5">key</a> == NULL) +00696 <span class="keywordflow">return</span> NULL; +00697 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"%lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o5">key</a>); +00698 m = (<span class="keyword">struct </span>map_node_stat *)map-><a class="code" href="structmap__root.html#o5">key</a>; +00699 <span class="keywordflow">return</span> &m-><a class="code" href="structmap__node__stat.html#o1">stats</a>; +00700 } +00701 +<a name="l00713"></a><a class="code" href="map_8c.html#a22">00713</a> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a22">_stp_map_stat_add</a>(<a class="code" href="structmap__root.html">MAP</a> map, int64_t val) +00714 { +00715 <span class="keyword">struct </span>map_node_stat *m; +00716 <span class="keywordflow">if</span> (map == NULL) +00717 <span class="keywordflow">return</span>; +00718 +00719 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o6">create</a>) { +00720 <a class="code" href="structstat.html">stat</a> st = { 1, val, val, val }; +00721 <span class="comment">/* histogram */</span> +00722 <a class="code" href="map_8c.html#a20">_stp_map_set_stat</a>(map, &st); +00723 <span class="keywordflow">return</span>; +00724 } +00725 +00726 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o5">key</a> == NULL) +00727 <span class="keywordflow">return</span>; +00728 +00729 <a class="code" href="runtime_8h.html#a0">dbug</a> (<span class="stringliteral">"add_stat %lx\n"</span>, (<span class="keywordtype">long</span>)map-><a class="code" href="structmap__root.html#o5">key</a>); +00730 m = (<span class="keyword">struct </span>map_node_stat *)map-><a class="code" href="structmap__root.html#o5">key</a>; +00731 m-><a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o0">count</a>++; +00732 m-><a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o1">sum</a> += val; +00733 <span class="keywordflow">if</span> (val > m-><a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o3">max</a>) +00734 m-><a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o3">max</a> = val; +00735 <span class="keywordflow">if</span> (val < m-><a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o2">min</a>) +00736 m-><a class="code" href="structmap__node__stat.html#o1">stats</a>.<a class="code" href="structstat.html#o2">min</a> = val; +00737 <span class="comment">/* histogram */</span> +00738 } +00739 +00740 <span class="comment">/********************** List Functions *********************/</span> +00741 +<a name="l00753"></a><a class="code" href="map_8c.html#a23">00753</a> <a class="code" href="structmap__root.html">MAP</a> <a class="code" href="map_8c.html#a23">_stp_list_new</a>(<span class="keywordtype">unsigned</span> max_entries, <span class="keyword">enum</span> valtype type) +00754 { +00755 <a class="code" href="structmap__root.html">MAP</a> map = <a class="code" href="map_8c.html#a3">_stp_map_new</a> (max_entries, type); +00756 map-><a class="code" href="structmap__root.html#o2">no_wrap</a> = 1; +00757 <span class="keywordflow">return</span> map; +00758 } +00759 +<a name="l00765"></a><a class="code" href="map_8c.html#a24">00765</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a24">_stp_list_clear</a>(<a class="code" href="structmap__root.html">MAP</a> map) +00766 { +00767 <span class="keywordflow">if</span> (map == NULL) +00768 <span class="keywordflow">return</span>; +00769 +00770 <span class="keywordflow">if</span> (!list_empty(&map-><a class="code" href="structmap__root.html#o3">head</a>)) { +00771 <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *ptr = (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)map-><a class="code" href="structmap__root.html#o3">head</a>.next; +00772 +00773 <span class="keywordflow">while</span> (ptr && ptr != (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)&map-><a class="code" href="structmap__root.html#o3">head</a>) { +00774 <span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *next = (<span class="keyword">struct </span><a class="code" href="structmap__node.html">map_node</a> *)ptr-><a class="code" href="structmap__node.html#o0">lnode</a>.next; +00775 +00776 <span class="comment">/* remove node from old hash list */</span> +00777 hlist_del_init(&ptr-><a class="code" href="structmap__node.html#o1">hnode</a>); +00778 +00779 <span class="comment">/* remove from entry list */</span> +00780 list_del(&ptr-><a class="code" href="structmap__node.html#o0">lnode</a>); +00781 +00782 <span class="comment">/* remove any allocated string storage */</span> +00783 map_free_strings(map, ptr); +00784 +00785 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o0">maxnum</a>) +00786 list_add(&ptr-><a class="code" href="structmap__node.html#o0">lnode</a>, &map-><a class="code" href="structmap__root.html#o4">pool</a>); +00787 <span class="keywordflow">else</span> +00788 <a class="code" href="alloc_8h.html#a5">_stp_free</a>(ptr); +00789 +00790 map-><a class="code" href="structmap__root.html#o1">num</a>--; +00791 ptr = next; +00792 } +00793 } +00794 +00795 <span class="keywordflow">if</span> (map-><a class="code" href="structmap__root.html#o1">num</a> != 0) { +00796 <a class="code" href="io_8c.html#a0">dlog</a> (<span class="stringliteral">"ERROR: list is supposed to be empty (has %d)\n"</span>, map-><a class="code" href="structmap__root.html#o1">num</a>); +00797 } +00798 } +00799 +<a name="l00805"></a><a class="code" href="map_8c.html#a25">00805</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a25">_stp_list_add_str</a>(<a class="code" href="structmap__root.html">MAP</a> map, <span class="keywordtype">char</span> *str) +00806 { +00807 <a class="code" href="map_8c.html#a14">_stp_map_key_long</a>(map, map-><a class="code" href="structmap__root.html#o1">num</a>); +00808 <a class="code" href="map_8c.html#a18">_stp_map_set_str</a>(map, str); +00809 } +00810 +<a name="l00816"></a><a class="code" href="map_8c.html#a26">00816</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="map_8c.html#a26">_stp_list_add_int64</a>(<a class="code" href="structmap__root.html">MAP</a> map, int64_t val) +00817 { +00818 <a class="code" href="map_8c.html#a14">_stp_map_key_long</a>(map, map-><a class="code" href="structmap__root.html#o1">num</a>); +00819 <a class="code" href="map_8c.html#a16">_stp_map_set_int64</a>(map, val); +00820 } +00821 +<a name="l00827"></a><a class="code" href="map_8c.html#a27">00827</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="map_8c.html#a27">_stp_list_size</a>(<a class="code" href="structmap__root.html">MAP</a> map) +00828 { +00829 <span class="keywordflow">return</span> map-><a class="code" href="structmap__root.html#o1">num</a>; +00830 } +</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by +<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> +</body> +</html> diff --git a/runtime/docs/html/map_8c.html b/runtime/docs/html/map_8c.html new file mode 100644 index 00000000..d4982cac --- /dev/null +++ b/runtime/docs/html/map_8c.html @@ -0,0 +1,1199 @@ +<!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.3.9.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></td></tr> +<tr><td colspan="2"><br><h2>Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structmap__root.html">MAP</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a3">_stp_map_new</a> (unsigned max_entries, enum <a class="el" href="map_8h.html#a19">valtype</a> type)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new map. <a href="#a3"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a5">_stp_map_key_del</a> (<a class="el" href="structmap__root.html">MAP</a> map)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Deletes the current element. <a href="#a5"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structmap__node.html">map_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a6">_stp_map_start</a> (<a class="el" href="structmap__root.html">MAP</a> map)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the first element in a map. <a href="#a6"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structmap__node.html">map_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a7">_stp_map_iter</a> (<a class="el" href="structmap__root.html">MAP</a> map, struct <a class="el" href="structmap__node.html">map_node</a> *m)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the next element in a map. <a href="#a7"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a8">_stp_map_del</a> (<a class="el" href="structmap__root.html">MAP</a> map)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Deletes a map. <a href="#a8"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a9">_stp_map_key_long_long</a> (<a class="el" href="structmap__root.html">MAP</a> map, long key1, long key2)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the map's key to two longs. <a href="#a9"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a10">_stp_map_key_str_str</a> (<a class="el" href="structmap__root.html">MAP</a> map, char *key1, char *key2)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the map's key to two strings. <a href="#a10"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a11">_stp_map_key_str_long</a> (<a class="el" href="structmap__root.html">MAP</a> map, char *key1, long key2)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the map's key to a string and a long. <a href="#a11"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a12">_stp_map_key_long_str</a> (<a class="el" href="structmap__root.html">MAP</a> map, long key1, char *key2)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the map's key to a long and a string. <a href="#a12"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a13">_stp_map_key_str</a> (<a class="el" href="structmap__root.html">MAP</a> map, char *key)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the map's key to a string. <a href="#a13"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a14">_stp_map_key_long</a> (<a class="el" href="structmap__root.html">MAP</a> map, long key)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the map's key to a long. <a href="#a14"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a16">_stp_map_set_int64</a> (<a class="el" href="structmap__root.html">MAP</a> map, int64_t val)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the current element's value to an int64. <a href="#a16"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a17">_stp_map_get_int64</a> (<a class="el" href="structmap__root.html">MAP</a> map)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the current element's value. <a href="#a17"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a18">_stp_map_set_str</a> (<a class="el" href="structmap__root.html">MAP</a> map, char *val)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the current element's value to a string. <a href="#a18"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a19">_stp_map_get_str</a> (<a class="el" href="structmap__root.html">MAP</a> map)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the current element's value. <a href="#a19"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a20">_stp_map_set_stat</a> (<a class="el" href="structmap__root.html">MAP</a> map, <a class="el" href="structstat.html">stat</a> *stats)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the current element's value to a stat. <a href="#a20"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structstat.html">stat</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a21">_stp_map_get_stat</a> (<a class="el" href="structmap__root.html">MAP</a> map)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the current element's value. <a href="#a21"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a22">_stp_map_stat_add</a> (<a class="el" href="structmap__root.html">MAP</a> map, int64_t val)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Add to the current element's statistics. <a href="#a22"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structmap__root.html">MAP</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a23">_stp_list_new</a> (unsigned max_entries, enum <a class="el" href="map_8h.html#a19">valtype</a> type)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new list. <a href="#a23"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a24">_stp_list_clear</a> (<a class="el" href="structmap__root.html">MAP</a> map)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Clears a list. <a href="#a24"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a25">_stp_list_add_str</a> (<a class="el" href="structmap__root.html">MAP</a> map, char *str)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Adds a string to a list. <a href="#a25"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a26">_stp_list_add_int64</a> (<a class="el" href="structmap__root.html">MAP</a> map, int64_t val)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Adds an int64 to a list. <a href="#a26"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8c.html#a27">_stp_list_size</a> (<a class="el" href="structmap__root.html">MAP</a> map)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the number of elements in a list. <a href="#a27"></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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void _stp_list_add_int64 </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname" nowrap> <em>map</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>int64_t </td> + <td class="mdname" nowrap> <em>val</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline]</code></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Adds an int64 to a list. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + <tr><td valign="top"></td><td valign="top"><em>val</em> </td><td></td></tr> + </table> +</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>. +<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> + </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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void _stp_list_add_str </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname" nowrap> <em>map</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>char * </td> + <td class="mdname" nowrap> <em>str</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline]</code></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Adds a string to a list. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + <tr><td valign="top"></td><td valign="top"><em>str</em> </td><td></td></tr> + </table> +</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>. +<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>. +<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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void _stp_list_clear </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname1" valign="top" nowrap> <em>map</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Clears a list. +<p> +All elements in the list are deleted. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + </table> +</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>. +<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> + </tr> +</table> +<a class="anchor" name="a23" doxytag="map.c::_stp_list_new"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> _stp_list_new </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">unsigned </td> + <td class="mdname" nowrap> <em>max_entries</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>enum <a class="el" href="map_8h.html#a19">valtype</a> </td> + <td class="mdname" nowrap> <em>type</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Create a new list. +<p> +A list is a map that internally has an incrementing long key for each member. Lists do not wrap if elements are added to exceed their maximum size. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>max_entries</em> </td><td>The maximum number of entries allowed. Currently that number will be preallocated. If max_entries is 0, there will be no maximum and entries will be allocated dynamically. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>type</em> </td><td>Type of values stored in this list. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>A MAP on success or NULL on failure. </dd></dl> +<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>. +<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> + </tr> +</table> +<a class="anchor" name="a27" doxytag="map.c::_stp_list_size"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int _stp_list_size </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname1" valign="top" nowrap> <em>map</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Get the number of elements in a list. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + </table> +</dl> +<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>. +<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> + </tr> +</table> +<a class="anchor" name="a8" doxytag="map.c::_stp_map_del"></a><p> +<table class="mdTable" width="100%" 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_del </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname1" valign="top" nowrap> <em>map</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Deletes a map. +<p> +Deletes a map, freeing all memory in all elements. Normally done only when the module exits. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + </table> +</dl> + +<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> + </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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int64_t _stp_map_get_int64 </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname1" valign="top" nowrap> <em>map</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Gets the current element's value. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + </table> +</dl> +<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>. +<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> + </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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"><a class="el" href="structstat.html">stat</a>* _stp_map_get_stat </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname1" valign="top" nowrap> <em>map</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Gets the current element's value. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + </table> +</dl> +<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>. +<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> + </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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">char* _stp_map_get_str </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname1" valign="top" nowrap> <em>map</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Gets the current element's value. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + </table> +</dl> +<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>. +<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> + </tr> +</table> +<a class="anchor" name="a7" doxytag="map.c::_stp_map_iter"></a><p> +<table class="mdTable" width="100%" 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>* _stp_map_iter </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname" nowrap> <em>map</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>struct <a class="el" href="structmap__node.html">map_node</a> * </td> + <td class="mdname" nowrap> <em>m</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Get the next element in a map. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + <tr><td valign="top"></td><td valign="top"><em>m</em> </td><td>a pointer to the current element, returned from <a class="el" href="map_8c.html#a6">_stp_map_start()</a> or <a class="el" href="map_8c.html#a7">_stp_map_iter()</a>. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>a pointer to the next element. This is typically used with <a class="el" href="map_8c.html#a6">_stp_map_start()</a>. See the <a class="el" href="map_8h.html#a8">foreach()</a> macro for typical usage. It probably does what you want anyway. </dd></dl> +<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#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> + </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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void _stp_map_key_del </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname1" valign="top" nowrap> <em>map</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Deletes the current element. +<p> +If no current element (key) for this map is set, this function does nothing. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + </table> +</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>. +<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> + </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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void _stp_map_key_long </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname" nowrap> <em>map</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>long </td> + <td class="mdname" nowrap> <em>key</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set the map's key to a long. +<p> +This sets the current element based on a long key. If the key is not found, a new element will not be created until a <em>_stp_map_set_xxx</em> call. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td></td></tr> + </table> +</dl> + +<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>. +<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> + </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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void _stp_map_key_long_long </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname" nowrap> <em>map</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>long </td> + <td class="mdname" nowrap> <em>key1</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>long </td> + <td class="mdname" nowrap> <em>key2</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set the map's key to two longs. +<p> +This sets the current element based on a key of two strings. If the keys are not found, a new element will not be created until a <em>_stp_map_set_xxx</em> call. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + <tr><td valign="top"></td><td valign="top"><em>key1</em> </td><td>first key </td></tr> + <tr><td valign="top"></td><td valign="top"><em>key2</em> </td><td>second key </td></tr> + </table> +</dl> + +<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>. +<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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void _stp_map_key_long_str </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname" nowrap> <em>map</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>long </td> + <td class="mdname" nowrap> <em>key1</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>char * </td> + <td class="mdname" nowrap> <em>key2</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set the map's key to a long and a string. +<p> +This sets the current element based on a key of a long and a string. If the keys are not found, a new element will not be created until a <em>_stp_map_set_xxx</em> call. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + <tr><td valign="top"></td><td valign="top"><em>key1</em> </td><td>first key </td></tr> + <tr><td valign="top"></td><td valign="top"><em>key2</em> </td><td>second key </td></tr> + </table> +</dl> + +<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> + </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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void _stp_map_key_str </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname" nowrap> <em>map</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>char * </td> + <td class="mdname" nowrap> <em>key</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set the map's key to a string. +<p> +This sets the current element based on a string key. If the key is not found, a new element will not be created until a <em>_stp_map_set_xxx</em> call. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td></td></tr> + </table> +</dl> + +<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> + </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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void _stp_map_key_str_long </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname" nowrap> <em>map</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>char * </td> + <td class="mdname" nowrap> <em>key1</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>long </td> + <td class="mdname" nowrap> <em>key2</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set the map's key to a string and a long. +<p> +This sets the current element based on a key of a string and a long. If the keys are not found, a new element will not be created until a <em>_stp_map_set_xxx</em> call. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + <tr><td valign="top"></td><td valign="top"><em>key1</em> </td><td>first key </td></tr> + <tr><td valign="top"></td><td valign="top"><em>key2</em> </td><td>second key </td></tr> + </table> +</dl> + +<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> + </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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void _stp_map_key_str_str </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname" nowrap> <em>map</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>char * </td> + <td class="mdname" nowrap> <em>key1</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>char * </td> + <td class="mdname" nowrap> <em>key2</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set the map's key to two strings. +<p> +This sets the current element based on a key of two strings. If the keys are not found, a new element will not be created until a <em>_stp_map_set_xxx</em> call. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + <tr><td valign="top"></td><td valign="top"><em>key1</em> </td><td>first key </td></tr> + <tr><td valign="top"></td><td valign="top"><em>key2</em> </td><td>second key </td></tr> + </table> +</dl> + +<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>. +<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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> _stp_map_new </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">unsigned </td> + <td class="mdname" nowrap> <em>max_entries</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>enum <a class="el" href="map_8h.html#a19">valtype</a> </td> + <td class="mdname" nowrap> <em>type</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Create a new map. +<p> +Maps must be created at module initialization time. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>max_entries</em> </td><td>The maximum number of entries allowed. Currently that number will be preallocated. If more entries are required, the oldest ones will be deleted. This makes it effectively a circular buffer. If max_entries is 0, there will be no maximum and entries will be allocated dynamically. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>type</em> </td><td>Type of values stored in this map. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>A MAP on success or NULL on failure. </dd></dl> + +<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>. +<p> +Referenced by <a class="el" href="map_8c-source.html#l00753">_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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void _stp_map_set_int64 </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname" nowrap> <em>map</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>int64_t </td> + <td class="mdname" nowrap> <em>val</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set the current element's value to an int64. +<p> +This sets the current element's value to an int64. The map must have been created to hold int64s using <a class="el" href="map_8c.html#a3">_stp_map_new()</a><p> +If the element doesn't exist, it is created. If no current element (key) is set for the map, this function does nothing. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + <tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>new value </td></tr> + </table> +</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>. +<p> +Referenced by <a class="el" href="map_8c-source.html#l00816">_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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void _stp_map_set_stat </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname" nowrap> <em>map</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap><a class="el" href="structstat.html">stat</a> * </td> + <td class="mdname" nowrap> <em>stats</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +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> +If the element doesn't exist, it is created. If no current element (key) is set for the map, this function does nothing. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + <tr><td valign="top"></td><td valign="top"><em>stats</em> </td><td>pointer to stats struct. </td></tr> + </table> +</dl> +<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>. +<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>. +<p> +Referenced by <a class="el" href="map_8c-source.html#l00713">_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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void _stp_map_set_str </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname" nowrap> <em>map</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>char * </td> + <td class="mdname" nowrap> <em>val</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set the current element's value to a string. +<p> +This sets the current element's value to an string. The map must have been created to hold int64s using <em>_stp_map_new(xxx, STRING)</em><p> +If the element doesn't exist, it is created. If no current element (key) is set for the map, this function does nothing. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + <tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>new string </td></tr> + </table> +</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>. +<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>. +<p> +Referenced by <a class="el" href="map_8c-source.html#l00805">_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"> + <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>* _stp_map_start </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname1" valign="top" nowrap> <em>map</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Get the first element in a map. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>a pointer to the first element. This is typically used with <a class="el" href="map_8c.html#a7">_stp_map_iter()</a>. See the <a class="el" href="map_8h.html#a8">foreach()</a> macro for typical usage. It probably does what you want anyway. </dd></dl> +<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#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> + </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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void _stp_map_stat_add </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="structmap__root.html">MAP</a> </td> + <td class="mdname" nowrap> <em>map</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>int64_t </td> + <td class="mdname" nowrap> <em>val</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Add to the current element's statistics. +<p> +Increments the statistics counter by one and the sum by <em>val</em>. Adjusts minimum, maximum, and histogram.<p> +If the element doesn't exist, it is created. If no current element (key) is set for the map, this function does nothing. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + <tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>value to add to the statistics </td></tr> + </table> +</dl> +<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>. +<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> + </tr> +</table> +<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address> +</body> +</html> diff --git a/runtime/docs/html/map_8h-source.html b/runtime/docs/html/map_8h-source.html new file mode 100644 index 00000000..9a49236c --- /dev/null +++ b/runtime/docs/html/map_8h-source.html @@ -0,0 +1,146 @@ +<!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.3.9.1 --> +<h1>map.h</h1><a href="map_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 <span class="comment">/* -*- linux-c -*- */</span> +00002 <span class="preprocessor">#include <linux/types.h></span> +00003 +<a name="l00004"></a><a class="code" href="structstat.html">00004</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{ +<a name="l00005"></a><a class="code" href="structstat.html#o0">00005</a> int64_t count; +<a name="l00006"></a><a class="code" href="structstat.html#o1">00006</a> int64_t sum; +<a name="l00007"></a><a class="code" href="structstat.html#o2">00007</a> int64_t min, max; +<a name="l00008"></a><a class="code" href="structstat.html#o4">00008</a> int64_t histogram[BUCKETS]; +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; +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> }; +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="l00021"></a><a class="code" href="structmap__node.html#o0">00021</a> <span class="keyword">struct </span>list_head lnode; +<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; +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; +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; +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; +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; +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; +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; +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; +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; +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; +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; +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; +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]; +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; +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>; +00085 +<a name="l00086"></a><a class="code" href="map_8h.html#a0">00086</a> <span class="preprocessor">#define key1str(ptr) (ptr->n.key1.str)</span> +<a name="l00087"></a><a class="code" href="map_8h.html#a1">00087</a> <span class="preprocessor"></span><span class="preprocessor">#define key2str(ptr) (ptr->n.key2.str)</span> +<a name="l00088"></a><a class="code" href="map_8h.html#a2">00088</a> <span class="preprocessor"></span><span class="preprocessor">#define key1int(ptr) (ptr->n.key1.val)</span> +<a name="l00089"></a><a class="code" href="map_8h.html#a3">00089</a> <span class="preprocessor"></span><span class="preprocessor">#define key2int(ptr) (ptr->n.key2.val)</span> +00090 <span class="preprocessor"></span> +<a name="l00091"></a><a class="code" href="map_8h.html#a4">00091</a> <span class="preprocessor">#define _stp_map_key2(map, key1, key2) \</span> +00092 <span class="preprocessor"> ({ \</span> +00093 <span class="preprocessor"> if (__builtin_types_compatible_p (typeof (key1), char[])) \</span> +00094 <span class="preprocessor"> if (__builtin_types_compatible_p (typeof (key2), char[])) \</span> +00095 <span class="preprocessor"> _stp_map_key_str_str (map, (char *)(key1), (char *)(key2)); \</span> +00096 <span class="preprocessor"> else \</span> +00097 <span class="preprocessor"> _stp_map_key_str_long (map, (char *)(key1), (long)(key2)); \</span> +00098 <span class="preprocessor"> else \</span> +00099 <span class="preprocessor"> if (__builtin_types_compatible_p (typeof (key2), char[])) \</span> +00100 <span class="preprocessor"> _stp_map_key_long_str (map, (long)(key1), (char *)(key2)); \</span> +00101 <span class="preprocessor"> else \</span> +00102 <span class="preprocessor"> _stp_map_key_long_long (map, (long)(key1), (long)(key2)); \</span> +00103 <span class="preprocessor"> })</span> +00104 <span class="preprocessor"></span> +<a name="l00105"></a><a class="code" href="map_8h.html#a5">00105</a> <span class="preprocessor">#define _stp_map_key(map, key) \</span> +00106 <span class="preprocessor"> ({ \</span> +00107 <span class="preprocessor"> if (__builtin_types_compatible_p (typeof (key), char[])) \</span> +00108 <span class="preprocessor"> _stp_map_key_str (map, (char *)(key)); \</span> +00109 <span class="preprocessor"> else \</span> +00110 <span class="preprocessor"> _stp_map_key_long (map, (long)(key)); \</span> +00111 <span class="preprocessor"> })</span> +00112 <span class="preprocessor"></span> +<a name="l00113"></a><a class="code" href="map_8h.html#a6">00113</a> <span class="preprocessor">#define _stp_map_set(map, val) \</span> +00114 <span class="preprocessor"> ({ \</span> +00115 <span class="preprocessor"> if (__builtin_types_compatible_p (typeof (val), char[])) \</span> +00116 <span class="preprocessor"> _stp_map_set_str (map, (char *)(val)); \</span> +00117 <span class="preprocessor"> else \</span> +00118 <span class="preprocessor"> _stp_map_set_int64 (map, (int64_t)(val)); \</span> +00119 <span class="preprocessor"> })</span> +00120 <span class="preprocessor"></span> +<a name="l00121"></a><a class="code" href="map_8h.html#a7">00121</a> <span class="preprocessor">#define _stp_list_add(map, val) \</span> +00122 <span class="preprocessor"> ({ \</span> +00123 <span class="preprocessor"> if (__builtin_types_compatible_p (typeof (val), char[])) \</span> +00124 <span class="preprocessor"> _stp_list_add_str (map, (char *)(val)); \</span> +00125 <span class="preprocessor"> else \</span> +00126 <span class="preprocessor"> _stp_list_add_int64 (map, (int64_t)(val)); \</span> +00127 <span class="preprocessor"> })</span> +00128 <span class="preprocessor"></span> +00129 +<a name="l00138"></a><a class="code" href="map_8h.html#a8">00138</a> <span class="preprocessor">#define foreach(map, ptr) \</span> +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 +<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> +</body> +</html> diff --git a/runtime/docs/html/map_8h.html b/runtime/docs/html/map_8h.html new file mode 100644 index 00000000..def7be23 --- /dev/null +++ b/runtime/docs/html/map_8h.html @@ -0,0 +1,535 @@ +<!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.3.9.1 --> +<h1>map.h File Reference</h1><code>#include <linux/types.h></code><br> + +<p> +<a href="map_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0"> +<tr><td></td></tr> +<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structstat.html">stat</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">union </td><td class="memItemRight" valign="bottom"><a class="el" href="unionkey__data.html">key_data</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node.html">map_node</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node__int64.html">map_node_int64</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node__str.html">map_node_str</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node__stat.html">map_node_stat</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html">map_root</a></td></tr> + +<tr><td colspan="2"><br><h2>Defines</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a0">key1str</a>(ptr) (ptr->n.key1.str)</td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a1">key2str</a>(ptr) (ptr->n.key2.str)</td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a2">key1int</a>(ptr) (ptr->n.key1.val)</td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a3">key2int</a>(ptr) (ptr->n.key2.val)</td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a4">_stp_map_key2</a>(map, key1, key2)</td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a5">_stp_map_key</a>(map, key)</td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a6">_stp_map_set</a>(map, val)</td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a7">_stp_list_add</a>(map, val)</td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a8">foreach</a>(map, ptr)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Loop through all elements of a map. <a href="#a8"></a><br></td></tr> +<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structmap__root.html">map_root</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a10">MAP</a></td></tr> + +<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a18">keytype</a> { <a class="el" href="map_8h.html#a18a11">NONE</a>, +<a class="el" href="map_8h.html#a18a12">LONG</a>, +<a class="el" href="map_8h.html#a18a13">STR</a> + }</td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a19">valtype</a> { <a class="el" href="map_8h.html#a19a14">INT64</a>, +<a class="el" href="map_8h.html#a19a15">STAT</a>, +<a class="el" href="map_8h.html#a19a16">STRING</a>, +<a class="el" href="map_8h.html#a19a17">END</a> + }</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="map_8h.html#a18">keytype</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a9">packed</a></td></tr> + +</table> +<hr><h2>Define Documentation</h2> +<a class="anchor" name="a7" doxytag="map.h::_stp_list_add"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">#define _stp_list_add </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">map, <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>val </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +<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)); \ + <span class="keywordflow">else</span> \ + <a class="code" href="map_8c.html#a26">_stp_list_add_int64</a> (map, (int64_t)(val)); \ + }) +</pre></div> +<p> +Definition at line <a class="el" href="map_8h-source.html#l00121">121</a> of file <a class="el" href="map_8h-source.html">map.h</a>. </td> + </tr> +</table> +<a class="anchor" name="a5" doxytag="map.h::_stp_map_key"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">#define _stp_map_key </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">map, <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>key </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +<b>Value:</b><div class="fragment"><pre class="fragment">({ \ + <span class="keywordflow">if</span> (__builtin_types_compatible_p (typeof (key), <span class="keywordtype">char</span>[])) \ + <a class="code" href="map_8c.html#a13">_stp_map_key_str</a> (map, (<span class="keywordtype">char</span> *)(key)); \ + <span class="keywordflow">else</span> \ + <a class="code" href="map_8c.html#a14">_stp_map_key_long</a> (map, (<span class="keywordtype">long</span>)(key)); \ + }) +</pre></div> +<p> +Definition at line <a class="el" href="map_8h-source.html#l00105">105</a> of file <a class="el" href="map_8h-source.html">map.h</a>. </td> + </tr> +</table> +<a class="anchor" name="a4" doxytag="map.h::_stp_map_key2"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">#define _stp_map_key2 </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">map, <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>key1, <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>key2 </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +<b>Value:</b><div class="fragment"><pre class="fragment">({ \ + <span class="keywordflow">if</span> (__builtin_types_compatible_p (typeof (key1), <span class="keywordtype">char</span>[])) \ + <span class="keywordflow">if</span> (__builtin_types_compatible_p (typeof (key2), <span class="keywordtype">char</span>[])) \ + <a class="code" href="map_8c.html#a10">_stp_map_key_str_str</a> (map, (<span class="keywordtype">char</span> *)(key1), (<span class="keywordtype">char</span> *)(key2)); \ + <span class="keywordflow">else</span> \ + <a class="code" href="map_8c.html#a11">_stp_map_key_str_long</a> (map, (<span class="keywordtype">char</span> *)(key1), (<span class="keywordtype">long</span>)(key2)); \ + <span class="keywordflow">else</span> \ + <span class="keywordflow">if</span> (__builtin_types_compatible_p (typeof (key2), <span class="keywordtype">char</span>[])) \ + <a class="code" href="map_8c.html#a12">_stp_map_key_long_str</a> (map, (<span class="keywordtype">long</span>)(key1), (<span class="keywordtype">char</span> *)(key2)); \ + <span class="keywordflow">else</span> \ + <a class="code" href="map_8c.html#a9">_stp_map_key_long_long</a> (map, (<span class="keywordtype">long</span>)(key1), (<span class="keywordtype">long</span>)(key2)); \ + }) +</pre></div> +<p> +Definition at line <a class="el" href="map_8h-source.html#l00091">91</a> of file <a class="el" href="map_8h-source.html">map.h</a>. </td> + </tr> +</table> +<a class="anchor" name="a6" doxytag="map.h::_stp_map_set"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">#define _stp_map_set </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">map, <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>val </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +<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)); \ + <span class="keywordflow">else</span> \ + <a class="code" href="map_8c.html#a16">_stp_map_set_int64</a> (map, (int64_t)(val)); \ + }) +</pre></div> +<p> +Definition at line <a class="el" href="map_8h-source.html#l00113">113</a> of file <a class="el" href="map_8h-source.html">map.h</a>. </td> + </tr> +</table> +<a class="anchor" name="a8" doxytag="map.h::foreach"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">#define foreach </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">map, <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>ptr </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +<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)) +</pre></div>Loop through all elements of a map. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>map</em> </td><td></td></tr> + <tr><td valign="top"></td><td valign="top"><em>ptr</em> </td><td>pointer to a <a class="el" href="structmap__node__stat.html">map_node_stat</a>, <a class="el" href="structmap__node__int64.html">map_node_int64</a> or <a class="el" href="structmap__node__str.html">map_node_str</a></td></tr> + </table> +</dl> +<b>Example:</b> <div class="fragment"><pre class="fragment"><span class="comment">/* example showing how to print all the stats in a map using foreach() */</span> + +<span class="keyword">struct </span><a class="code" href="structmap__node__stat.html">map_node_stat</a> *ptr; + +<a class="code" href="map_8h.html#a8">foreach</a> (map, ptr) + printf ("map[%s,%ld] = [c=%lld s=%lld min=%lld max=%lld]\n", key1str(ptr), + key2int(ptr), ptr->stats.count, ptr->stats.sum, ptr->stats.min, + ptr->stats.max); + +</pre></div> +<p> +Definition at line <a class="el" href="map_8h-source.html#l00138">138</a> of file <a class="el" href="map_8h-source.html">map.h</a>. </td> + </tr> +</table> +<a class="anchor" name="a2" doxytag="map.h::key1int"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">#define key1int </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">ptr </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> (ptr->n.key1.val)</td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#l00088">88</a> of file <a class="el" href="map_8h-source.html">map.h</a>. </td> + </tr> +</table> +<a class="anchor" name="a0" doxytag="map.h::key1str"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">#define key1str </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">ptr </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> (ptr->n.key1.str)</td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#l00086">86</a> of file <a class="el" href="map_8h-source.html">map.h</a>. </td> + </tr> +</table> +<a class="anchor" name="a3" doxytag="map.h::key2int"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">#define key2int </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">ptr </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> (ptr->n.key2.val)</td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#l00089">89</a> of file <a class="el" href="map_8h-source.html">map.h</a>. </td> + </tr> +</table> +<a class="anchor" name="a1" doxytag="map.h::key2str"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">#define key2str </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">ptr </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> (ptr->n.key2.str)</td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#l00087">87</a> of file <a class="el" href="map_8h-source.html">map.h</a>. </td> + </tr> +</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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">typedef struct <a class="el" href="structmap__root.html">map_root</a>* <a class="el" href="structmap__root.html">MAP</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#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> + </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"> + <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> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +<dl compact><dt><b>Enumeration values: </b></dt><dd> +<table border="0" cellspacing="2" cellpadding="0"> +<tr><td valign="top"><em><a class="anchor" name="a18a11" doxytag="NONE"></a>NONE</em> </td><td> +</td></tr> +<tr><td valign="top"><em><a class="anchor" name="a18a12" doxytag="LONG"></a>LONG</em> </td><td> +</td></tr> +<tr><td valign="top"><em><a class="anchor" name="a18a13" doxytag="STR"></a>STR</em> </td><td> +</td></tr> +</table> +</dl> + +<p> +Definition at line <a class="el" href="map_8h-source.html#l00016">16</a> of file <a class="el" href="map_8h-source.html">map.h</a>. </td> + </tr> +</table> +<a class="anchor" name="a19" doxytag="map.h::valtype"></a><p> +<table class="mdTable" width="100%" 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> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +<dl compact><dt><b>Enumeration values: </b></dt><dd> +<table border="0" cellspacing="2" cellpadding="0"> +<tr><td valign="top"><em><a class="anchor" name="a19a14" doxytag="INT64"></a>INT64</em> </td><td> +</td></tr> +<tr><td valign="top"><em><a class="anchor" name="a19a15" doxytag="STAT"></a>STAT</em> </td><td> +</td></tr> +<tr><td valign="top"><em><a class="anchor" name="a19a16" doxytag="STRING"></a>STRING</em> </td><td> +</td></tr> +<tr><td valign="top"><em><a class="anchor" name="a19a17" doxytag="END"></a>END</em> </td><td> +</td></tr> +</table> +</dl> + +<p> +Definition at line <a class="el" href="map_8h-source.html#l00017">17</a> of file <a class="el" href="map_8h-source.html">map.h</a>. </td> + </tr> +</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"> + <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="map_8h.html#a9">packed</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + </td> + </tr> +</table> +<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address> +</body> +</html> diff --git a/runtime/docs/html/pages.html b/runtime/docs/html/pages.html new file mode 100644 index 00000000..10838534 --- /dev/null +++ b/runtime/docs/html/pages.html @@ -0,0 +1,19 @@ +<!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.3.9.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> + +</ul> +<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address> +</body> +</html> diff --git a/runtime/docs/html/runtime_8h-source.html b/runtime/docs/html/runtime_8h-source.html new file mode 100644 index 00000000..b688d351 --- /dev/null +++ b/runtime/docs/html/runtime_8h-source.html @@ -0,0 +1,31 @@ +<!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.3.9.1 --> +<h1>runtime.h</h1><a href="runtime_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 +00002 <span class="preprocessor">#include <linux/module.h></span> +00003 <span class="preprocessor">#include <linux/miscdevice.h></span> +00004 <span class="preprocessor">#include <linux/init.h></span> +00005 <span class="preprocessor">#include <linux/hash.h></span> +00006 <span class="preprocessor">#include <linux/string.h></span> +00007 <span class="preprocessor">#include <linux/kprobes.h></span> +00008 <span class="preprocessor">#include <linux/proc_fs.h></span> +00009 <span class="preprocessor">#include <linux/vmalloc.h></span> +00010 <span class="preprocessor">#include <linux/time.h></span> +00011 <span class="preprocessor">#include <linux/spinlock.h></span> +00012 <span class="preprocessor">#include <asm/uaccess.h></span> +00013 +00014 <span class="preprocessor">#include "<a class="code" href="alloc_8h.html">alloc.h</a>"</span> +00015 <span class="preprocessor">#include "<a class="code" href="map_8h.html">map.h</a>"</span> +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 +<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> +</body> +</html> diff --git a/runtime/docs/html/runtime_8h.html b/runtime/docs/html/runtime_8h.html new file mode 100644 index 00000000..89b24097 --- /dev/null +++ b/runtime/docs/html/runtime_8h.html @@ -0,0 +1,67 @@ +<!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.3.9.1 --> +<h1>runtime.h File Reference</h1><code>#include <linux/module.h></code><br> +<code>#include <linux/miscdevice.h></code><br> +<code>#include <linux/init.h></code><br> +<code>#include <linux/hash.h></code><br> +<code>#include <linux/string.h></code><br> +<code>#include <linux/kprobes.h></code><br> +<code>#include <linux/proc_fs.h></code><br> +<code>#include <linux/vmalloc.h></code><br> +<code>#include <linux/time.h></code><br> +<code>#include <linux/spinlock.h></code><br> +<code>#include <asm/uaccess.h></code><br> +<code>#include "<a class="el" href="alloc_8h-source.html">alloc.h</a>"</code><br> +<code>#include "<a class="el" href="map_8h-source.html">map.h</a>"</code><br> + +<p> +<a href="runtime_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>Defines</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="runtime_8h.html#a0">dbug</a>(args...) ;</td></tr> + +</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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">#define dbug </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">args... </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> ;</td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="runtime_8h-source.html#l00017">17</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> + </tr> +</table> +<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address> +</body> +</html> diff --git a/runtime/docs/html/structmap__node.html b/runtime/docs/html/structmap__node.html new file mode 100644 index 00000000..0f1dbc42 --- /dev/null +++ b/runtime/docs/html/structmap__node.html @@ -0,0 +1,138 @@ +<!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.3.9.1 --> +<h1>map_node Struct Reference</h1><code>#include <<a class="el" href="map_8h-source.html">map.h</a>></code> +<p> +<table border="0" cellpadding="0" cellspacing="0"> +<tr><td></td></tr> +<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">list_head </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node.html#o0">lnode</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">hlist_node </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node.html#o1">hnode</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="unionkey__data.html">key_data</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node.html#o2">key1</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="unionkey__data.html">key_data</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node.html#o3">key2</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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">struct hlist_node <a class="el" href="structmap__node.html#o1">map_node::hnode</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#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> + </tr> +</table> +<a class="anchor" name="o2" doxytag="map_node::key1"></a><p> +<table class="mdTable" width="100%" 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__node.html#o2">map_node::key1</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#l00023">23</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="o3" doxytag="map_node::key2"></a><p> +<table class="mdTable" width="100%" 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__node.html#o3">map_node::key2</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#l00024">24</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#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="o0" doxytag="map_node::lnode"></a><p> +<table class="mdTable" width="100%" 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__node.html#o0">map_node::lnode</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#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> + </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 +<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> +</body> +</html> diff --git a/runtime/docs/html/structmap__node__int64.html b/runtime/docs/html/structmap__node__int64.html new file mode 100644 index 00000000..d2ec7317 --- /dev/null +++ b/runtime/docs/html/structmap__node__int64.html @@ -0,0 +1,80 @@ +<!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.3.9.1 --> +<h1>map_node_int64 Struct Reference</h1><code>#include <<a class="el" href="map_8h-source.html">map.h</a>></code> +<p> +<table border="0" cellpadding="0" cellspacing="0"> +<tr><td></td></tr> +<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structmap__node.html">map_node</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node__int64.html#o0">n</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node__int64.html#o1">val</a></td></tr> + +</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"> + <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__node__int64.html#o0">map_node_int64::n</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#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> + </tr> +</table> +<a class="anchor" name="o1" doxytag="map_node_int64::val"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int64_t <a class="el" href="structmap__node__int64.html#o1">map_node_int64::val</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#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> + </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 +<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> +</body> +</html> diff --git a/runtime/docs/html/structmap__node__stat.html b/runtime/docs/html/structmap__node__stat.html new file mode 100644 index 00000000..0d8fdb95 --- /dev/null +++ b/runtime/docs/html/structmap__node__stat.html @@ -0,0 +1,80 @@ +<!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.3.9.1 --> +<h1>map_node_stat Struct Reference</h1><code>#include <<a class="el" href="map_8h-source.html">map.h</a>></code> +<p> +<table border="0" cellpadding="0" cellspacing="0"> +<tr><td></td></tr> +<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structmap__node.html">map_node</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node__stat.html#o0">n</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structstat.html">stat</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node__stat.html#o1">stats</a></td></tr> + +</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"> + <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__node__stat.html#o0">map_node_stat::n</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#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> + </tr> +</table> +<a class="anchor" name="o1" doxytag="map_node_stat::stats"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"><a class="el" href="structstat.html">stat</a> <a class="el" href="structmap__node__stat.html#o1">map_node_stat::stats</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#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> + </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 +<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> +</body> +</html> diff --git a/runtime/docs/html/structmap__node__str.html b/runtime/docs/html/structmap__node__str.html new file mode 100644 index 00000000..a7d78bed --- /dev/null +++ b/runtime/docs/html/structmap__node__str.html @@ -0,0 +1,80 @@ +<!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.3.9.1 --> +<h1>map_node_str Struct Reference</h1><code>#include <<a class="el" href="map_8h-source.html">map.h</a>></code> +<p> +<table border="0" cellpadding="0" cellspacing="0"> +<tr><td></td></tr> +<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structmap__node.html">map_node</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node__str.html#o0">n</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__node__str.html#o1">str</a></td></tr> + +</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"> + <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__node__str.html#o0">map_node_str::n</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#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> + </tr> +</table> +<a class="anchor" name="o1" doxytag="map_node_str::str"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">char* <a class="el" href="structmap__node__str.html#o1">map_node_str::str</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#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> + </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 +<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> +</body> +</html> diff --git a/runtime/docs/html/structmap__root.html b/runtime/docs/html/structmap__root.html new file mode 100644 index 00000000..d6a7418a --- /dev/null +++ b/runtime/docs/html/structmap__root.html @@ -0,0 +1,370 @@ +<!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.3.9.1 --> +<h1>map_root Struct Reference</h1><code>#include <<a class="el" href="map_8h-source.html">map.h</a>></code> +<p> +<table border="0" cellpadding="0" cellspacing="0"> +<tr><td></td></tr> +<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o0">maxnum</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o1">num</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o2">no_wrap</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">list_head </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o3">head</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">list_head </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o4">pool</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structmap__node.html">map_node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o5">key</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">u_int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o6">create</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">hlist_head * </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o7">c_keyhead</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="unionkey__data.html">key_data</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o8">c_key1</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="unionkey__data.html">key_data</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o9">c_key2</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">hlist_head </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o10">hashes</a> [HASH_TABLE_SIZE]</td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structmap__root.html#o11">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"> + <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> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#l00074">74</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="o9" doxytag="map_root::c_key2"></a><p> +<table class="mdTable" width="100%" 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> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#l00075">75</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="o7" doxytag="map_root::c_keyhead"></a><p> +<table class="mdTable" width="100%" 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> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#l00073">73</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="o6" doxytag="map_root::create"></a><p> +<table class="mdTable" width="100%" 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> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#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> + </tr> +</table> +<a class="anchor" name="o10" doxytag="map_root::hashes"></a><p> +<table class="mdTable" width="100%" 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> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#l00078">78</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="o3" doxytag="map_root::head"></a><p> +<table class="mdTable" width="100%" 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> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#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> + </tr> +</table> +<a class="anchor" name="o5" doxytag="map_root::key"></a><p> +<table class="mdTable" width="100%" 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> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#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> + </tr> +</table> +<a class="anchor" name="o0" doxytag="map_root::maxnum"></a><p> +<table class="mdTable" width="100%" 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> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#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> + </tr> +</table> +<a class="anchor" name="o11" doxytag="map_root::membuf"></a><p> +<table class="mdTable" width="100%" 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> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#l00081">81</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#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"> + <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> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#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> + </tr> +</table> +<a class="anchor" name="o1" doxytag="map_root::num"></a><p> +<table class="mdTable" width="100%" 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> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#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> + </tr> +</table> +<a class="anchor" name="o4" doxytag="map_root::pool"></a><p> +<table class="mdTable" width="100%" 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> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#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> + </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 +<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> +</body> +</html> diff --git a/runtime/docs/html/structstat.html b/runtime/docs/html/structstat.html new file mode 100644 index 00000000..47627657 --- /dev/null +++ b/runtime/docs/html/structstat.html @@ -0,0 +1,165 @@ +<!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.3.9.1 --> +<h1>stat Struct Reference</h1><code>#include <<a class="el" href="map_8h-source.html">map.h</a>></code> +<p> +<table border="0" cellpadding="0" cellspacing="0"> +<tr><td></td></tr> +<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structstat.html#o0">count</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structstat.html#o1">sum</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structstat.html#o2">min</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structstat.html#o3">max</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structstat.html#o4">histogram</a> [BUCKETS]</td></tr> + +</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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int64_t <a class="el" href="structstat.html#o0">stat::count</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#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> + </tr> +</table> +<a class="anchor" name="o4" doxytag="stat::histogram"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int64_t <a class="el" href="structstat.html#o4">stat::histogram</a>[BUCKETS] </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#l00008">8</a> of file <a class="el" href="map_8h-source.html">map.h</a>. </td> + </tr> +</table> +<a class="anchor" name="o3" doxytag="stat::max"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int64_t <a class="el" href="structstat.html#o3">stat::max</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#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> + </tr> +</table> +<a class="anchor" name="o2" doxytag="stat::min"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int64_t <a class="el" href="structstat.html#o2">stat::min</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#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> + </tr> +</table> +<a class="anchor" name="o1" doxytag="stat::sum"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int64_t <a class="el" href="structstat.html#o1">stat::sum</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#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> + </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 +<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> +</body> +</html> diff --git a/runtime/docs/html/todo.html b/runtime/docs/html/todo.html new file mode 100644 index 00000000..d4f0d051 --- /dev/null +++ b/runtime/docs/html/todo.html @@ -0,0 +1,32 @@ +<!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.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> +<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> +<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> +<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 +<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> +</body> +</html> diff --git a/runtime/docs/html/tree.html b/runtime/docs/html/tree.html new file mode 100644 index 00000000..1d3f49b0 --- /dev/null +++ b/runtime/docs/html/tree.html @@ -0,0 +1,139 @@ +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <meta http-equiv="Content-Type" content="text/xhtml;charset="iso-8859-1" /> + <meta http-equiv="Content-Style-Type" content="text/css" /> + <meta http-equiv="Content-Language" content="en" /> + <link rel="stylesheet" href="doxygen.css"> + <title>TreeView</title> + <style type="text/css"> + <!-- + .directory { font-size: 10pt; font-weight: bold; } + .directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } + .directory p { margin: 0px; white-space: nowrap; } + .directory div { display: none; margin: 0px; } + .directory img { vertical-align: middle; } + --> + </style> + <script type="text/javascript"> + <!-- // Hide script from old browsers + + function findChildNode(node, name) + { + var temp; + if (node == null) + { + return null; + } + node = node.firstChild; + while (node != null) + { + if (node.nodeName == name) + { + return node; + } + temp = findChildNode(node, name); + if (temp != null) + { + return temp; + } + node = node.nextSibling; + } + return null; + } + + function toggleFolder(id, imageNode) + { + var folder = document.getElementById(id); + var l = 0; + var vl = "ftv2vertline.png"; + if (imageNode != null && imageNode.nodeName != "IMG") + { + imageNode = findChildNode(imageNode, "IMG"); + if (imageNode!=null) l = imageNode.src.length; + } + if (folder == null) + { + } + else if (folder.style.display == "block") + { + while (imageNode != null && + imageNode.src.substring(l-vl.length,l) == vl) + { + imageNode = imageNode.nextSibling; + l = imageNode.src.length; + } + if (imageNode != null) + { + l = imageNode.src.length; + imageNode.nextSibling.src = "ftv2folderclosed.png"; + if (imageNode.src.substring(l-13,l) == "ftv2mnode.png") + { + imageNode.src = "ftv2pnode.png"; + } + else if (imageNode.src.substring(l-17,l) == "ftv2mlastnode.png") + { + imageNode.src = "ftv2plastnode.png"; + } + } + folder.style.display = "none"; + } + else + { + while (imageNode != null && + imageNode.src.substring(l-vl.length,l) == vl) + { + imageNode = imageNode.nextSibling; + l = imageNode.src.length; + } + if (imageNode != null) + { + l = imageNode.src.length; + imageNode.nextSibling.src = "ftv2folderopen.png"; + if (imageNode.src.substring(l-13,l) == "ftv2pnode.png") + { + imageNode.src = "ftv2mnode.png"; + } + else if (imageNode.src.substring(l-17,l) == "ftv2plastnode.png") + { + imageNode.src = "ftv2mlastnode.png"; + } + } + folder.style.display = "block"; + } + } + + // End script hiding --> + </script> + </head> + + <body> + <div class="directory"> + <h3>SystemTap</h3> + <div style="display: block;"> + <p><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="main.html" target="basefrm">SystemTap Runtime Library</a></p> + <p><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder1', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder1', this)"/><a class="el" href="files.html" target="basefrm">File List</a></p> + <div id="folder1"> + <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="alloc_8h.html" target="basefrm">alloc.h</a></p> + <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="copy_8c.html" target="basefrm">copy.c</a></p> + <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="io_8c.html" target="basefrm">io.c</a></p> + <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="map_8c.html" target="basefrm">map.c</a></p> + <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="map_8h.html" target="basefrm">map.h</a></p> + <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="README.html" target="basefrm">README</a></p> + <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="runtime_8h.html" target="basefrm">runtime.h</a></p> + </div> + <p><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder2', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder2', this)"/><a class="el" href="annotated.html" target="basefrm">Data Structures</a></p> + <div id="folder2"> + <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="unionkey__data.html" target="basefrm">key_data</a></p> + <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structmap__node.html" target="basefrm">map_node</a></p> + <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structmap__node__int64.html" target="basefrm">map_node_int64</a></p> + <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structmap__node__stat.html" target="basefrm">map_node_stat</a></p> + <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structmap__node__str.html" target="basefrm">map_node_str</a></p> + <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structmap__root.html" target="basefrm">map_root</a></p> + <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structstat.html" target="basefrm">stat</a></p> + </div> + <p><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="functions.html" target="basefrm">Data Fields</a></p> + <p><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="globals.html" target="basefrm">Globals</a></p> + </div> + </div> + </body> +</html> diff --git a/runtime/docs/html/unionkey__data.html b/runtime/docs/html/unionkey__data.html new file mode 100644 index 00000000..e2f2a66e --- /dev/null +++ b/runtime/docs/html/unionkey__data.html @@ -0,0 +1,80 @@ +<!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.3.9.1 --> +<h1>key_data Union Reference</h1><code>#include <<a class="el" href="map_8h-source.html">map.h</a>></code> +<p> +<table border="0" cellpadding="0" cellspacing="0"> +<tr><td></td></tr> +<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">long </td><td class="memItemRight" valign="bottom"><a class="el" href="unionkey__data.html#o0">val</a></td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="unionkey__data.html#o1">str</a></td></tr> + +</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"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">char* <a class="el" href="unionkey__data.html#o1">key_data::str</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#l00013">13</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#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="o0" doxytag="key_data::val"></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">long <a class="el" href="unionkey__data.html#o0">key_data::val</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="map_8h-source.html#l00012">12</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>, and <a class="el" href="map_8c-source.html#l00310">_stp_map_key_str_long()</a>. </td> + </tr> +</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 +<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> +</body> +</html> |