<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Preface</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="index.html" title="SystemTap Beginners Guide" /><link rel="next" href="pr01s02.html" title="2. We Need Feedback!" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="index.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="pr01s02.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="preface" lang="en-US"><div class="titlepage"><div><div><h1 class="title"><a id="SystemTap_Beginners_Guide-Preface">
</a>Preface</h1></div></div></div><div class="para">
- </div><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h2 class="title"><a id="idm47723002008736">
+ </div><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h2 class="title"><a id="idm47650199603760">
</a>1. Document Conventions</h2></div></div></div><div class="para">
This manual uses several conventions to highlight certain words and phrases and draw attention to specific pieces of information.
</div><div class="para">
In PDF and paper editions, this manual uses typefaces drawn from the <a href="https://fedorahosted.org/liberation-fonts/">Liberation Fonts</a> set. The Liberation Fonts set is also used in HTML editions if the set is installed on your system. If not, alternative but equivalent typefaces are displayed. Note: Red Hat Enterprise Linux 5 and later include the Liberation Fonts set by default.
- </div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm47722993083520">
+ </div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm47650146025328">
</a>1.1. Typographic Conventions</h3></div></div></div><div class="para">
Four typographic conventions are used to call attention to specific words and phrases. These conventions, and the circumstances they apply to, are as follows.
</div><div class="para">
Aside from standard usage for presenting the title of a work, italics denotes the first use of a new and important term. For example:
</div><div class="blockquote"><blockquote class="blockquote"><div class="para">
Publican is a <em class="firstterm">DocBook</em> publishing system.
- </div></blockquote></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm47722995926912">
+ </div></blockquote></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm47650199533440">
</a>1.2. Pull-quote Conventions</h3></div></div></div><div class="para">
Terminal output and source code listings are set off visually from the surrounding text.
</div><div class="para">
System.<span class="perl_Function">out</span>.<span class="perl_Function">println</span>(<span class="perl_String">"Echo.echo('Hello') = "</span> + echo.<span class="perl_Function">echo</span>(<span class="perl_String">"Hello"</span>));
}
-}</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm47723003338560">
+}</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm47650183097296">
</a>1.3. Notes and Warnings</h3></div></div></div><div class="para">
Finally, we use three visual styles to draw attention to information that might otherwise be overlooked.
</div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><div class="para">
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5. Array Operations in SystemTap</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /><link rel="prev" href="associativearrays.html" title="3.4. Associative Arrays" /><link rel="next" href="arrayops-readvalues.html" title="3.5.2. Reading Values From Arrays" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="associativearrays.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayops-readvalues.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h2 class="title"><a id="arrayoperators">
- </a>3.5. Array Operations in SystemTap</h2></div></div></div><a id="idm47723002787888" class="indexterm"></a><a id="idm47723001915712" class="indexterm"></a><div class="para">
+ </a>3.5. Array Operations in SystemTap</h2></div></div></div><a id="idm47650190719472" class="indexterm"></a><a id="idm47650193396128" class="indexterm"></a><div class="para">
This section enumerates some of the most commonly used array operations in SystemTap.
</div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-assignvalue">
- </a>3.5.1. Assigning an Associated Value</h3></div></div></div><a id="idm47723003693392" class="indexterm"></a><a id="idm47722987306768" class="indexterm"></a><a id="idm47722987305360" class="indexterm"></a><div class="para">
+ </a>3.5.1. Assigning an Associated Value</h3></div></div></div><a id="idm47650187878224" class="indexterm"></a><a id="idm47650143612160" class="indexterm"></a><a id="idm47650143610752" class="indexterm"></a><div class="para">
Use <code class="command">=</code> to set an associated value to indexed unique pairs, as in:
</div><pre class="screen"><em class="replaceable">array_name</em>[<em class="replaceable">index_expression</em>] = <em class="replaceable">value</em></pre><div class="para">
<a class="xref" href="associativearrays.html#arraysimplestexample">Example 3.13, “Basic Array Statements”</a> shows a very basic example of how to set an explicit associated value to a unique key. You can also use a handler function as both your <code class="command"><em class="replaceable">index_expression</em></code> and <code class="command"><em class="replaceable">value</em></code>. For example, you can use arrays to set a timestamp as the associated value to a process name (which you wish to use as your unique key), as in:
- </div><a id="idm47722991061312" class="indexterm"></a><a id="idm47722957272176" class="indexterm"></a><a id="idm47722994316560" class="indexterm"></a><a id="idm47722993251776" class="indexterm"></a><a id="idm47722993249920" class="indexterm"></a><a id="idm47722957129296" class="indexterm"></a><div class="example"><a id="arrays-timestampprocessname">
+ </div><a id="idm47650195685616" class="indexterm"></a><a id="idm47650187450064" class="indexterm"></a><a id="idm47650187346064" class="indexterm"></a><a id="idm47650143736272" class="indexterm"></a><a id="idm47650183808800" class="indexterm"></a><a id="idm47650185661264" class="indexterm"></a><div class="example"><a id="arrays-timestampprocessname">
</a><p class="title"><strong>Example 3.14. Associating Timestamps to Process Names</strong></p><div class="example-contents"><pre class="programlisting">foo[tid()] = gettimeofday_s()</pre></div></div><div class="para">
Whenever an event invokes the statement in <a class="xref" href="arrayoperators.html#arrays-timestampprocessname">Example 3.14, “Associating Timestamps to Process Names”</a>, SystemTap returns the appropriate <code class="command">tid()</code> value (that is, the ID of a thread, which is then used as the unique key). At the same time, SystemTap also uses the function <code class="command">gettimeofday_s()</code> to set the corresponding timestamp as the associated value to the unique key defined by the function <code class="command">tid()</code>. This creates an array composed of key pairs containing thread IDs and timestamps.
</div><div class="para">
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5.7. Computing for Statistical Aggregates</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="prev" href="arrayops-conditionals.html" title="3.5.6. Using Arrays in Conditional Statements" /><link rel="next" href="understanding-tapsets.html" title="3.6. Tapsets" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayops-conditionals.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="understanding-tapsets.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-aggregates">
- </a>3.5.7. Computing for Statistical Aggregates</h3></div></div></div><a id="idm47722956089696" class="indexterm"></a><a id="idm47722956088256" class="indexterm"></a><a id="idm47722954569408" class="indexterm"></a><a id="idm47722954568000" class="indexterm"></a><a id="idm47722997414384" class="indexterm"></a><div class="para">
+ </a>3.5.7. Computing for Statistical Aggregates</h3></div></div></div><a id="idm47650183161408" class="indexterm"></a><a id="idm47650180999296" class="indexterm"></a><a id="idm47650180997888" class="indexterm"></a><a id="idm47650195680400" class="indexterm"></a><a id="idm47650195678992" class="indexterm"></a><div class="para">
Statistical aggregates are used to collect statistics on numerical values where it is important to accumulate new data quickly and in large volume (that is, storing only aggregated stream statistics). Statistical aggregates can be used in global variables or as elements in an array.
- </div><a id="idm47722988626832" class="indexterm"></a><a id="idm47722988624976" class="indexterm"></a><a id="idm47722993174864" class="indexterm"></a><a id="idm47722993173008" class="indexterm"></a><div class="para">
+ </div><a id="idm47650193200592" class="indexterm"></a><a id="idm47650187965792" class="indexterm"></a><a id="idm47650188744928" class="indexterm"></a><a id="idm47650188743072" class="indexterm"></a><div class="para">
To add value to a statistical aggregate, use the operator <code class="command"><<< <em class="replaceable">value</em></code>.
</div><div class="example"><a id="simpleaggregates">
</a><p class="title"><strong>Example 3.21. stat-aggregates.stp</strong></p><div class="example-contents"><pre class="programlisting">global reads
probe vfs.read
{
reads[execname()] <<< $count
-}</pre></div></div><a id="idm47722956107312" class="indexterm"></a><a id="idm47723004380016" class="indexterm"></a><a id="idm47723002680880" class="indexterm"></a><a id="idm47723002678992" class="indexterm"></a><div class="para">
+}</pre></div></div><a id="idm47650187096736" class="indexterm"></a><a id="idm47650187094848" class="indexterm"></a><a id="idm47650186861296" class="indexterm"></a><a id="idm47650182856144" class="indexterm"></a><div class="para">
In <a class="xref" href="arrayops-aggregates.html#simpleaggregates">Example 3.21, “stat-aggregates.stp”</a>, the operator <code class="command"><<< $count</code> <span class="emphasis"><em>stores</em></span> the amount returned by <code class="literal">$count</code> to the associated value of the corresponding <code class="command">execname()</code> in the <code class="literal">reads</code> array. Remember, these values are <span class="emphasis"><em>stored</em></span>; they are not added to the associated values of each unique key, nor are they used to replace the current associated values. In a manner of speaking, think of it as having each unique key (<code class="command">execname()</code>) having multiple associated values, accumulating with each probe handler run.
</div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><div class="para">
In the context of <a class="xref" href="arrayops-aggregates.html#simpleaggregates">Example 3.21, “stat-aggregates.stp”</a>, <code class="literal">count</code> returns the amount of data read by the returned <code class="command">execname()</code> to the virtual file system.
- </div></div></div><a id="idm47722997400272" class="indexterm"></a><a id="idm47722997398416" class="indexterm"></a><a id="idm47722949091200" class="indexterm"></a><a id="idm47722987994064" class="indexterm"></a><a id="idm47722987992208" class="indexterm"></a><div class="para">
+ </div></div></div><a id="idm47650150784624" class="indexterm"></a><a id="idm47650185614672" class="indexterm"></a><a id="idm47650193289312" class="indexterm"></a><a id="idm47650193287456" class="indexterm"></a><a id="idm47650154416448" class="indexterm"></a><div class="para">
To extract data collected by statistical aggregates, use the syntax format <code class="command">@<em class="replaceable">extractor</em>(<em class="replaceable">variable/array index expression</em>)</code>. <code class="command"><em class="replaceable">extractor</em></code> can be any of the following integer extractors:
- </div><div class="variablelist"><dl class="variablelist"><dt><span class="term">count</span></dt><dd><a id="idm47722988191680" class="indexterm"></a><a id="idm47722995767280" class="indexterm"></a><a id="idm47722995766064" class="indexterm"></a><a id="idm47722995764848" class="indexterm"></a><div class="para">
+ </div><div class="variablelist"><dl class="variablelist"><dt><span class="term">count</span></dt><dd><a id="idm47650148421728" class="indexterm"></a><a id="idm47650148420512" class="indexterm"></a><a id="idm47650197186864" class="indexterm"></a><a id="idm47650197185648" class="indexterm"></a><div class="para">
Returns the number of all values stored into the variable/array index expression. Given the sample probe in <a class="xref" href="arrayops-aggregates.html#simpleaggregates">Example 3.21, “stat-aggregates.stp”</a>, the expression <code class="command">@count(reads[execname()])</code> will return <span class="emphasis"><em>how many values are stored</em></span> in each unique key in array <code class="literal">reads</code>.
- </div></dd><dt><span class="term">sum</span></dt><dd><a id="idm47723005479952" class="indexterm"></a><a id="idm47722960429408" class="indexterm"></a><a id="idm47722960428192" class="indexterm"></a><a id="idm47722960426976" class="indexterm"></a><div class="para">
+ </div></dd><dt><span class="term">sum</span></dt><dd><a id="idm47650193163792" class="indexterm"></a><a id="idm47650146526992" class="indexterm"></a><a id="idm47650146525776" class="indexterm"></a><a id="idm47650143615056" class="indexterm"></a><div class="para">
Returns the sum of all values stored into the variable/array index expression. Again, given sample probe in <a class="xref" href="arrayops-aggregates.html#simpleaggregates">Example 3.21, “stat-aggregates.stp”</a>, the expression <code class="command">@sum(reads[execname()])</code> will return <span class="emphasis"><em>the total of all values stored</em></span> in each unique key in array <code class="literal">reads</code>.
- </div></dd><dt><span class="term">min</span></dt><dd><a id="idm47723004329136" class="indexterm"></a><a id="idm47722952889584" class="indexterm"></a><a id="idm47722952888368" class="indexterm"></a><a id="idm47722952887152" class="indexterm"></a><div class="para">
+ </div></dd><dt><span class="term">min</span></dt><dd><a id="idm47650154392864" class="indexterm"></a><a id="idm47650154391648" class="indexterm"></a><a id="idm47650154390432" class="indexterm"></a><a id="idm47650144425712" class="indexterm"></a><div class="para">
Returns the smallest among all the values stored in the variable/array index expression.
- </div></dd><dt><span class="term">max</span></dt><dd><a id="idm47723003537376" class="indexterm"></a><a id="idm47723003536160" class="indexterm"></a><a id="idm47723003534944" class="indexterm"></a><a id="idm47722955525648" class="indexterm"></a><div class="para">
+ </div></dd><dt><span class="term">max</span></dt><dd><a id="idm47650193129904" class="indexterm"></a><a id="idm47650193128688" class="indexterm"></a><a id="idm47650183562720" class="indexterm"></a><a id="idm47650183561504" class="indexterm"></a><div class="para">
Returns the largest among all the values stored in the variable/array index expression.
- </div></dd><dt><span class="term">avg</span></dt><dd><a id="idm47722988646048" class="indexterm"></a><a id="idm47722988644832" class="indexterm"></a><a id="idm47722988101040" class="indexterm"></a><a id="idm47722988099824" class="indexterm"></a><div class="para">
+ </div></dd><dt><span class="term">avg</span></dt><dd><a id="idm47650149564416" class="indexterm"></a><a id="idm47650149563200" class="indexterm"></a><a id="idm47650149561984" class="indexterm"></a><a id="idm47650154815856" class="indexterm"></a><div class="para">
Returns the average of all values stored in the variable/array index expression.
</div></dd></dl></div><div class="para">
When using statistical aggregates, you can also build array constructs that use multiple index expressions (to a maximum of 5). This is helpful in capturing additional contextual information during a probe. For example:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5.6. Using Arrays in Conditional Statements</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="prev" href="arrayops-deleting.html" title="3.5.5. Clearing/Deleting Arrays and Array Elements" /><link rel="next" href="arrayops-aggregates.html" title="3.5.7. Computing for Statistical Aggregates" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayops-deleting.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayops-aggregates.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-conditionals">
- </a>3.5.6. Using Arrays in Conditional Statements</h3></div></div></div><a id="idm47722997181856" class="indexterm"></a><a id="idm47722997180448" class="indexterm"></a><a id="idm47723009274160" class="indexterm"></a><a id="idm47723009272752" class="indexterm"></a><div class="para">
+ </a>3.5.6. Using Arrays in Conditional Statements</h3></div></div></div><a id="idm47650193586160" class="indexterm"></a><a id="idm47650193584752" class="indexterm"></a><a id="idm47650183708256" class="indexterm"></a><a id="idm47650183706848" class="indexterm"></a><div class="para">
You can also use associative arrays in <code class="command">if</code> statements. This is useful if you want to execute a subroutine once a value in the array matches a certain condition. Consider the following example:
</div><div class="example"><a id="simplevfsreadprintif">
</a><p class="title"><strong>Example 3.19. vfsreads-print-if-1kb.stp</strong></p><div class="example-contents"><pre class="programlisting">global reads
printf("%s : %dB \n", count, reads[count])
}</pre></div></div><div class="para">
Every three seconds, <a class="xref" href="arrayops-conditionals.html#simplevfsreadprintif">Example 3.19, “vfsreads-print-if-1kb.stp”</a> prints out a list of all processes, along with how many times each process performed a VFS read. If the associated value of a process name is equal or greater than 1024, the <code class="command">if</code> statement in the script converts and prints it out in <code class="command">kB</code>.
- </div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">Testing for Membership</div><a id="idm47722995891440" class="indexterm"></a><a id="idm47722960508672" class="indexterm"></a><a id="idm47722960507456" class="indexterm"></a><a id="idm47722990832672" class="indexterm"></a><a id="idm47722990831456" class="indexterm"></a>
+ </div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">Testing for Membership</div><a id="idm47650150658128" class="indexterm"></a><a id="idm47650148510784" class="indexterm"></a><a id="idm47650148509568" class="indexterm"></a><a id="idm47650193028880" class="indexterm"></a><a id="idm47650193027664" class="indexterm"></a>
You can also test whether a specific unique key is a member of an array. Further, membership in an array can be used in <code class="command">if</code> statements, as in:
</div><pre class="screen">if([<em class="replaceable">index_expression</em>] in <em class="replaceable">array_name</em>) <em class="replaceable">statement</em></pre><div class="para">
To illustrate this, consider the following example:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5.5. Clearing/Deleting Arrays and Array Elements</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="prev" href="arrayops-foreach.html" title="3.5.4. Processing Multiple Elements in an Array" /><link rel="next" href="arrayops-conditionals.html" title="3.5.6. Using Arrays in Conditional Statements" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayops-foreach.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayops-conditionals.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-deleting">
- </a>3.5.5. Clearing/Deleting Arrays and Array Elements</h3></div></div></div><a id="idm47722949214848" class="indexterm"></a><a id="idm47723003695360" class="indexterm"></a><a id="idm47722987334480" class="indexterm"></a><a id="idm47722987333072" class="indexterm"></a><a id="idm47722991059056" class="indexterm"></a><div class="para">
+ </a>3.5.5. Clearing/Deleting Arrays and Array Elements</h3></div></div></div><a id="idm47650143425088" class="indexterm"></a><a id="idm47650143750016" class="indexterm"></a><a id="idm47650143748608" class="indexterm"></a><a id="idm47650190270480" class="indexterm"></a><a id="idm47650190430928" class="indexterm"></a><div class="para">
Sometimes, you may need to clear the associated values in array elements, or reset an entire array for re-use in another probe. <a class="xref" href="arrayops-foreach.html#simplevfsreadprint">Example 3.17, “cumulative-vfsreads.stp”</a> in <a class="xref" href="arrayops-foreach.html">Section 3.5.4, “Processing Multiple Elements in an Array”</a> allows you to track how the number of VFS reads per process grows over time, but it does not show you the number of VFS reads each process makes per 3-second period.
- </div><a id="idm47722997967712" class="indexterm"></a><a id="idm47723005398352" class="indexterm"></a><a id="idm47722997351264" class="indexterm"></a><a id="idm47722997349376" class="indexterm"></a><div class="para">
+ </div><a id="idm47650150799264" class="indexterm"></a><a id="idm47650193290912" class="indexterm"></a><a id="idm47650188639520" class="indexterm"></a><a id="idm47650188637632" class="indexterm"></a><div class="para">
To do that, you will need to clear the values accumulated by the array. You can accomplish this using the <code class="command">delete</code> operator to delete elements in an array, or an entire array. Consider the following example:
- </div><a id="idm47723001298512" class="indexterm"></a><a id="idm47723001263152" class="indexterm"></a><a id="idm47722995808224" class="indexterm"></a><a id="idm47723001261968" class="indexterm"></a><div class="example"><a id="simplevfsreadprintnotcumulative">
+ </div><a id="idm47650185620336" class="indexterm"></a><a id="idm47650185618480" class="indexterm"></a><a id="idm47650183637600" class="indexterm"></a><a id="idm47650183235728" class="indexterm"></a><div class="example"><a id="simplevfsreadprintnotcumulative">
</a><p class="title"><strong>Example 3.18. noncumulative-vfsreads.stp</strong></p><div class="example-contents"><pre class="programlisting">global reads
probe vfs.read
{
delete reads
}</pre></div></div><div class="para">
In <a class="xref" href="arrayops-deleting.html#simplevfsreadprintnotcumulative">Example 3.18, “noncumulative-vfsreads.stp”</a>, the second probe prints the number of VFS reads each process made <span class="emphasis"><em>within the probed 3-second period only</em></span>. The <code class="command">delete reads</code> statement clears the <code class="command">reads</code> array within the probe.
- </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><a id="idm47722994668608" class="indexterm"></a><a id="idm47722997607552" class="indexterm"></a><a id="idm47722960481440" class="indexterm"></a><a id="idm47722994311376" class="indexterm"></a><div class="para">
+ </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><a id="idm47650143593584" class="indexterm"></a><a id="idm47650154863840" class="indexterm"></a><a id="idm47650154861984" class="indexterm"></a><a id="idm47650199496960" class="indexterm"></a><div class="para">
You can have multiple array operations within the same probe. Using the examples from <a class="xref" href="arrayops-foreach.html">Section 3.5.4, “Processing Multiple Elements in an Array”</a> and <a class="xref" href="arrayops-deleting.html">Section 3.5.5, “Clearing/Deleting Arrays and Array Elements”</a> , you can track the number of VFS reads each process makes per 3-second period <span class="emphasis"><em>and</em></span> tally the cumulative VFS reads of those same processes. Consider the following example:
</div><pre class="screen">global reads, totalreads
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5.4. Processing Multiple Elements in an Array</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="prev" href="arrayops-increment.html" title="3.5.3. Incrementing Associated Values" /><link rel="next" href="arrayops-deleting.html" title="3.5.5. Clearing/Deleting Arrays and Array Elements" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayops-increment.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayops-deleting.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-foreach">
- </a>3.5.4. Processing Multiple Elements in an Array</h3></div></div></div><a id="idm47722999783984" class="indexterm"></a><a id="idm47722994408256" class="indexterm"></a><a id="idm47722995890112" class="indexterm"></a><a id="idm47722995888704" class="indexterm"></a><a id="idm47722990747760" class="indexterm"></a><a id="idm47722990746352" class="indexterm"></a><div class="para">
+ </a>3.5.4. Processing Multiple Elements in an Array</h3></div></div></div><a id="idm47650183702448" class="indexterm"></a><a id="idm47650183701040" class="indexterm"></a><a id="idm47650192763712" class="indexterm"></a><a id="idm47650187439632" class="indexterm"></a><a id="idm47650187438224" class="indexterm"></a><a id="idm47650193336336" class="indexterm"></a><div class="para">
Once you've collected enough information in an array, you will need to retrieve and process all elements in that array to make it useful. Consider <a class="xref" href="arrayops-increment.html#simplesimplevfsread">Example 3.16, “vfsreads.stp”</a>: the script collects information about how many VFS reads each process performs, but does not specify what to do with it. The obvious means for making <a class="xref" href="arrayops-increment.html#simplesimplevfsread">Example 3.16, “vfsreads.stp”</a> useful is to print the key pairs in the array <code class="command">reads</code>, but how?
- </div><a id="idm47723005625552" class="indexterm"></a><a id="idm47722987807008" class="indexterm"></a><a id="idm47723009159840" class="indexterm"></a><a id="idm47722990574880" class="indexterm"></a><a id="idm47722999343424" class="indexterm"></a><a id="idm47722999341568" class="indexterm"></a><a id="idm47722991065840" class="indexterm"></a><div class="para">
+ </div><a id="idm47650193031440" class="indexterm"></a><a id="idm47650185643936" class="indexterm"></a><a id="idm47650191037728" class="indexterm"></a><a id="idm47650191035840" class="indexterm"></a><a id="idm47650196239008" class="indexterm"></a><a id="idm47650183795472" class="indexterm"></a><a id="idm47650183134112" class="indexterm"></a><div class="para">
The best way to process all key pairs in an array (as an iteration) is to use the <code class="command">foreach</code> statement. Consider the following example:
- </div><a id="idm47723001306624" class="indexterm"></a><a id="idm47723001304768" class="indexterm"></a><a id="idm47722987816496" class="indexterm"></a><a id="idm47723001869728" class="indexterm"></a><a id="idm47722957122224" class="indexterm"></a><div class="example"><a id="simplevfsreadprint">
+ </div><a id="idm47650151132208" class="indexterm"></a><a id="idm47650151130352" class="indexterm"></a><a id="idm47650193628592" class="indexterm"></a><a id="idm47650190666848" class="indexterm"></a><a id="idm47650148492880" class="indexterm"></a><div class="example"><a id="simplevfsreadprint">
</a><p class="title"><strong>Example 3.17. cumulative-vfsreads.stp</strong></p><div class="example-contents"><pre class="programlisting">global reads
probe vfs.read
{
In the second probe of <a class="xref" href="arrayops-foreach.html#simplevfsreadprint">Example 3.17, “cumulative-vfsreads.stp”</a>, the <code class="command">foreach</code> statement uses the variable <code class="command">count</code> to reference each iteration of a unique key in the array <code class="command">reads</code>. The <code class="command">reads[count]</code> array statement in the same probe retrieves the associated value of each unique key.
</div><div class="para">
Given what we know about the first probe in <a class="xref" href="arrayops-foreach.html#simplevfsreadprint">Example 3.17, “cumulative-vfsreads.stp”</a>, the script prints VFS-read statistics every 3 seconds, displaying names of processes that performed a VFS-read along with a corresponding VFS-read count.
- </div><a id="idm47723005199872" class="indexterm"></a><a id="idm47722989120256" class="indexterm"></a><a id="idm47722989118400" class="indexterm"></a><a id="idm47722994452048" class="indexterm"></a><a id="idm47723002707424" class="indexterm"></a><a id="idm47722999415584" class="indexterm"></a><a id="idm47722999413728" class="indexterm"></a><a id="idm47722987339680" class="indexterm"></a><div class="para">
+ </div><a id="idm47650185616704" class="indexterm"></a><a id="idm47650196234816" class="indexterm"></a><a id="idm47650192788288" class="indexterm"></a><a id="idm47650191371328" class="indexterm"></a><a id="idm47650191369104" class="indexterm"></a><a id="idm47650186822992" class="indexterm"></a><a id="idm47650150801920" class="indexterm"></a><a id="idm47650148424672" class="indexterm"></a><div class="para">
Now, remember that the <code class="command">foreach</code> statement in <a class="xref" href="arrayops-foreach.html#simplevfsreadprint">Example 3.17, “cumulative-vfsreads.stp”</a> prints <span class="emphasis"><em>all</em></span> iterations of process names in the array, and in no particular order. You can instruct the script to process the iterations in a particular order by using <code class="command">+</code> (ascending) or <code class="command">-</code> (descending). In addition, you can also limit the number of iterations the script needs to process with the <code class="command">limit <em class="replaceable">value</em></code> option.
</div><div class="para">
For example, consider the following replacement probe:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5.3. Incrementing Associated Values</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="prev" href="arrayops-readvalues.html" title="3.5.2. Reading Values From Arrays" /><link rel="next" href="arrayops-foreach.html" title="3.5.4. Processing Multiple Elements in an Array" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayops-readvalues.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayops-foreach.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-increment">
- </a>3.5.3. Incrementing Associated Values</h3></div></div></div><a id="idm47722999345552" class="indexterm"></a><a id="idm47722999344144" class="indexterm"></a><a id="idm47722999654064" class="indexterm"></a><div class="para">
+ </a>3.5.3. Incrementing Associated Values</h3></div></div></div><a id="idm47650187970576" class="indexterm"></a><a id="idm47650183132528" class="indexterm"></a><a id="idm47650183131120" class="indexterm"></a><div class="para">
Use <code class="command">++</code> to increment the associated value of a unique key in an array, as in:
</div><pre class="screen"><em class="replaceable">array_name</em>[<em class="replaceable">index_expression</em>] ++</pre><div class="para">
Again, you can also use a handler function for your <code class="command"><em class="replaceable">index_expression</em></code>. For example, if you wanted to tally how many times a specific process performed a read to the virtual file system (using the event <code class="command">vfs.read</code>), you can use the following probe:
- </div><a id="idm47722998063056" class="indexterm"></a><a id="idm47722954533216" class="indexterm"></a><a id="idm47722990506944" class="indexterm"></a><a id="idm47722954558336" class="indexterm"></a><a id="idm47722999347888" class="indexterm"></a><div class="example"><a id="simplesimplevfsread">
+ </div><a id="idm47650143679328" class="indexterm"></a><a id="idm47650183876672" class="indexterm"></a><a id="idm47650182863008" class="indexterm"></a><a id="idm47650186863952" class="indexterm"></a><a id="idm47650192710528" class="indexterm"></a><div class="example"><a id="simplesimplevfsread">
</a><p class="title"><strong>Example 3.16. vfsreads.stp</strong></p><div class="example-contents"><pre class="programlisting">probe vfs.read
{
reads[execname()] ++
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5.2. Reading Values From Arrays</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="prev" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="next" href="arrayops-increment.html" title="3.5.3. Incrementing Associated Values" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayoperators.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayops-increment.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-readvalues">
- </a>3.5.2. Reading Values From Arrays</h3></div></div></div><a id="idm47723002762912" class="indexterm"></a><a id="idm47723002689584" class="indexterm"></a><a id="idm47723002688176" class="indexterm"></a><div class="para">
+ </a>3.5.2. Reading Values From Arrays</h3></div></div></div><a id="idm47650196185264" class="indexterm"></a><a id="idm47650143753104" class="indexterm"></a><a id="idm47650188663136" class="indexterm"></a><div class="para">
You can also read values from an array the same way you would read the value of a variable. To do so, include the <code class="command"><em class="replaceable">array_name</em>[<em class="replaceable">index_expression</em>]</code> statement as an element in a mathematical expression. For example:
- </div><a id="idm47722994337744" class="indexterm"></a><a id="idm47722995866944" class="indexterm"></a><a id="idm47722954359728" class="indexterm"></a><a id="idm47722995314624" class="indexterm"></a><a id="idm47722988872704" class="indexterm"></a><a id="idm47722960492048" class="indexterm"></a><a id="idm47722999309040" class="indexterm"></a><a id="idm47722951207472" class="indexterm"></a><a id="idm47722997585648" class="indexterm"></a><a id="idm47722997583792" class="indexterm"></a><div class="example"><a id="arrayreadingvaluesfrom">
+ </div><a id="idm47650186965776" class="indexterm"></a><a id="idm47650184870992" class="indexterm"></a><a id="idm47650193046320" class="indexterm"></a><a id="idm47650193023120" class="indexterm"></a><a id="idm47650188759104" class="indexterm"></a><a id="idm47650190403584" class="indexterm"></a><a id="idm47650188993376" class="indexterm"></a><a id="idm47650193399200" class="indexterm"></a><a id="idm47650193127888" class="indexterm"></a><a id="idm47650183705232" class="indexterm"></a><div class="example"><a id="arrayreadingvaluesfrom">
</a><p class="title"><strong>Example 3.15. Using Array Values in Simple Computations</strong></p><div class="example-contents"><pre class="screen">delta = gettimeofday_s() - foo[tid()]</pre></div></div><div class="para">
This example assumes that the array <code class="command">foo</code> was built using the construct in <a class="xref" href="arrayoperators.html#arrays-timestampprocessname">Example 3.14, “Associating Timestamps to Process Names”</a> (from <a class="xref" href="arrayoperators.html#arrayops-assignvalue">Section 3.5.1, “Assigning an Associated Value”</a>). This sets a timestamp that will serve as a <span class="emphasis"><em>reference point</em></span>, to be used in computing for <code class="literal">delta</code>.
</div><div class="para">
The construct in <a class="xref" href="arrayops-readvalues.html#arrayreadingvaluesfrom">Example 3.15, “Using Array Values in Simple Computations”</a> computes a value for the variable <code class="literal">delta</code> by subtracting the associated value of the key <code class="literal">tid()</code> from the current <code class="command">gettimeofday_s()</code>. The construct does this by <span class="emphasis"><em>reading</em></span> the value of <code class="literal">tid()</code> from the array. This particular construct is useful for determining the time between two events, such as the start and completion of a read operation.
- </div><a id="idm47723002750272" class="indexterm"></a><a id="idm47723003722848" class="indexterm"></a><a id="idm47722997943104" class="indexterm"></a><a id="idm47723001901568" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><div class="para">
+ </div><a id="idm47650189030944" class="indexterm"></a><a id="idm47650197283008" class="indexterm"></a><a id="idm47650154489296" class="indexterm"></a><a id="idm47650185636080" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><div class="para">
If the <code class="command"><em class="replaceable">index_expression</em></code> cannot find the unique key, it returns a value of 0 (for numerical operations, such as <a class="xref" href="arrayops-readvalues.html#arrayreadingvaluesfrom">Example 3.15, “Using Array Values in Simple Computations”</a>) or a null/empty string value (for string operations) by default.
</div></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="arrayoperators.html"><strong>Prev</strong>3.5. Array Operations in SystemTap</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="arrayops-increment.html"><strong>Next</strong>3.5.3. Incrementing Associated Values</a></li></ul></body></html>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.4. Associative Arrays</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /><link rel="prev" href="commandlineargssect.html" title="3.3.4. Command-Line Arguments" /><link rel="next" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="commandlineargssect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayoperators.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h2 class="title"><a id="associativearrays">
- </a>3.4. Associative Arrays</h2></div></div></div><a id="idm47722997411120" class="indexterm"></a><a id="idm47722998034512" class="indexterm"></a><div class="para">
+ </a>3.4. Associative Arrays</h2></div></div></div><a id="idm47650188955856" class="indexterm"></a><a id="idm47650186877520" class="indexterm"></a><div class="para">
SystemTap also supports the use of associative arrays. While an ordinary variable represents a single value, associative arrays can represent a collection of values. Simply put, an associative array is a collection of unique keys; each key in the array has a value associated with it.
- </div><a id="idm47723005870656" class="indexterm"></a><a id="idm47723005350752" class="indexterm"></a><a id="idm47722999402816" class="indexterm"></a><a id="idm47722990990128" class="indexterm"></a><a id="idm47722990514848" class="indexterm"></a><a id="idm47722999792896" class="indexterm"></a><a id="idm47722999424848" class="indexterm"></a><a id="idm47722994633360" class="indexterm"></a><div class="para">
+ </div><a id="idm47650189135616" class="indexterm"></a><a id="idm47650187313520" class="indexterm"></a><a id="idm47650191327136" class="indexterm"></a><a id="idm47650195657840" class="indexterm"></a><a id="idm47650196082560" class="indexterm"></a><a id="idm47650192471040" class="indexterm"></a><a id="idm47650183502480" class="indexterm"></a><a id="idm47650169121360" class="indexterm"></a><div class="para">
Since associative arrays are normally processed in multiple probes (as we will demonstrate later), they should be declared as <code class="command">global</code> variables in the SystemTap script. The syntax for accessing an element in an associative array is similar to that of <code class="command">awk</code>, and is as follows:
- </div><a id="idm47722949125248" class="indexterm"></a><a id="idm47722990544176" class="indexterm"></a><a id="idm47722997984048" class="indexterm"></a><pre class="screen"><em class="replaceable">array_name</em>[<em class="replaceable">index_expression</em>]</pre><div class="para">
+ </div><a id="idm47650188635904" class="indexterm"></a><a id="idm47650149566512" class="indexterm"></a><a id="idm47650196129232" class="indexterm"></a><pre class="screen"><em class="replaceable">array_name</em>[<em class="replaceable">index_expression</em>]</pre><div class="para">
Here, the <code class="command"><em class="replaceable">array_name</em></code> is any arbitrary name the array uses. The <code class="command"><em class="replaceable">index_expression</em></code> is used to refer to a specific unique key in the array. To illustrate, let us try to build an array named <code class="command">foo</code> that specifies the ages of three people <code class="command">tom</code>, <code class="command">dick</code>, and <code class="command">harry</code> (which are unique keys). To assign them the ages (associated values) of 23, 24, and 25 respectively, we'd use the following array statements:
- </div><a id="idm47722988141936" class="indexterm"></a><a id="idm47723004440864" class="indexterm"></a><div class="example"><a id="arraysimplestexample">
+ </div><a id="idm47650188733040" class="indexterm"></a><a id="idm47650187045856" class="indexterm"></a><div class="example"><a id="arraysimplestexample">
</a><p class="title"><strong>Example 3.13. Basic Array Statements</strong></p><div class="example-contents"><pre class="screen">foo["tom"] = 23
foo["dick"] = 24
foo["harry"] = 25</pre></div></div><div class="para">
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.3.4. Command-Line Arguments</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="scriptconstructions.html" title="3.3. Basic SystemTap Handler Constructs" /><link rel="prev" href="handlerconditionalstatements.html" title="3.3.3. Conditional Statements" /><link rel="next" href="associativearrays.html" title="3.4. Associative Arrays" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="handlerconditionalstatements.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="associativearrays.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="commandlineargssect">
- </a>3.3.4. Command-Line Arguments</h3></div></div></div><a id="idm47722993274960" class="indexterm"></a><a id="idm47722997353024" class="indexterm"></a><a id="idm47722995769280" class="indexterm"></a><div class="para">
+ </a>3.3.4. Command-Line Arguments</h3></div></div></div><a id="idm47650143801344" class="indexterm"></a><a id="idm47650191355216" class="indexterm"></a><a id="idm47650144707328" class="indexterm"></a><div class="para">
A SystemTap script can also accept simple command-line arguments using a <code class="command">$</code> or <code class="command">@</code> immediately followed by the number of the argument on the command line. Use <code class="command">$</code> if you are expecting the user to enter an integer as a command-line argument, and <code class="command">@</code> if you are expecting a string.
</div><div class="example"><a id="commandlineargs">
</a><p class="title"><strong>Example 3.12. commandlineargs.stp</strong></p><div class="example-contents"><pre class="programlisting">probe kernel.function(@1) { }
probe kernel.function(@1).return { }</pre></div></div><div class="para">
<a class="xref" href="commandlineargssect.html#commandlineargs">Example 3.12, “commandlineargs.stp”</a> is similar to <a class="xref" href="scripts.html#wildcards">Example 3.1, “wildcards.stp”</a>, except that it allows you to pass the kernel function to be probed as a command-line argument (as in <code class="command">stap commandlineargs.stp <em class="replaceable">kernel function</em></code>). You can also specify the script to accept multiple command-line arguments, noting them as <code class="command">@1</code>, <code class="command">@2</code>, and so on, in the order they are entered by the user.
- </div><a id="idm47722997255808" class="indexterm"></a><a id="idm47722987322656" class="indexterm"></a><a id="idm47723009280432" class="indexterm"></a></div><ul class="docnav"><li class="previous"><a accesskey="p" href="handlerconditionalstatements.html"><strong>Prev</strong>3.3.3. Conditional Statements</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="associativearrays.html"><strong>Next</strong>3.4. Associative Arrays</a></li></ul></body></html>
\ No newline at end of file
+ </div><a id="idm47650146510944" class="indexterm"></a><a id="idm47650148494256" class="indexterm"></a><a id="idm47650197502528" class="indexterm"></a></div><ul class="docnav"><li class="previous"><a accesskey="p" href="handlerconditionalstatements.html"><strong>Prev</strong>3.3.3. Conditional Statements</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="associativearrays.html"><strong>Next</strong>3.4. Associative Arrays</a></li></ul></body></html>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">2.2. Generating Instrumentation for Other Computers</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="using-systemtap.html" title="Chapter 2. Using SystemTap" /><link rel="prev" href="using-systemtap.html" title="Chapter 2. Using SystemTap" /><link rel="next" href="using-usage.html" title="2.3. Running SystemTap Scripts" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="using-systemtap.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="using-usage.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h2 class="title"><a id="cross-compiling">
- </a>2.2. Generating Instrumentation for Other Computers</h2></div></div></div><a id="idm47722952772880" class="indexterm"></a><a id="idm47722959798000" class="indexterm"></a><a id="idm47722950640416" class="indexterm"></a><a id="idm47722950873040" class="indexterm"></a><a id="idm47722954692624" class="indexterm"></a><a id="idm47722987436880" class="indexterm"></a><a id="idm47723004418064" class="indexterm"></a><a id="idm47722950861520" class="indexterm"></a><div class="para">
+ </a>2.2. Generating Instrumentation for Other Computers</h2></div></div></div><a id="idm47650199613072" class="indexterm"></a><a id="idm47650183649376" class="indexterm"></a><a id="idm47650146600848" class="indexterm"></a><a id="idm47650191179632" class="indexterm"></a><a id="idm47650184696336" class="indexterm"></a><a id="idm47650143521200" class="indexterm"></a><a id="idm47650144596672" class="indexterm"></a><a id="idm47650149598608" class="indexterm"></a><div class="para">
When users run a SystemTap script, SystemTap builds a kernel module out of that script. SystemTap then loads the module into the kernel, allowing it to extract the specified data directly from the kernel (refer to <a class="xref" href="understanding-how-systemtap-works.html#systemtapsession">Procedure 3.1, “SystemTap Session”</a> in <a class="xref" href="understanding-how-systemtap-works.html#understanding-architecture-tools">Section 3.1, “Architecture”</a> for more information).
</div><div class="para">
Normally, however, SystemTap scripts can only be run on systems where SystemTap is deployed (as in <a class="xref" href="using-systemtap.html#using-setup">Section 2.1, “Installation and Setup”</a>). This could mean that if you want to run SystemTap on ten systems, you would need to deploy SystemTap on <span class="emphasis"><em>all</em></span> those systems. In some cases, this may be neither feasible nor desired. For instance, corporate policy may prohibit an administrator from installing RPM packages that provide compilers or debug information on specific machines, and thus prevent the deployment of SystemTap. To work around this problem, SystemTap allows you to use <em class="firstterm">cross-instrumentation</em>.
</div><div class="para">
Cross-instrumentation is the process of generating SystemTap instrumentation module from a SystemTap script on one computer to be used on another computer. This process offers the following benefits:
- </div><a id="idm47722986165360" class="indexterm"></a><a id="idm47722957489696" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para">
+ </div><a id="idm47650189093648" class="indexterm"></a><a id="idm47650189071808" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para">
The kernel information packages for various machines can be installed on a single <span class="emphasis"><em>host machine</em></span>.
</div></li><li class="listitem"><div class="para">
Each <span class="emphasis"><em>target machine</em></span> only needs one RPM package to be installed in order to use the generated SystemTap instrumentation module: the <span class="package">systemtap-runtime</span> package.
</div></li></ul></div><div class="para">
For the sake of simplicity, the following terms are used throughout this section:
</div><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para">
- <a id="idm47722991071552" class="indexterm"></a> <a id="idm47722990984656" class="indexterm"></a> <span class="emphasis"><em>Instrumentation module</em></span> — the kernel module built from a SystemTap script. The <span class="emphasis"><em>SystemTap module</em></span> is built on the <span class="emphasis"><em>host system</em></span>, and will be loaded on the <span class="emphasis"><em>target kernel</em></span> of <span class="emphasis"><em>target system</em></span>.
+ <a id="idm47650189065616" class="indexterm"></a> <a id="idm47650199438912" class="indexterm"></a> <span class="emphasis"><em>Instrumentation module</em></span> — the kernel module built from a SystemTap script. The <span class="emphasis"><em>SystemTap module</em></span> is built on the <span class="emphasis"><em>host system</em></span>, and will be loaded on the <span class="emphasis"><em>target kernel</em></span> of <span class="emphasis"><em>target system</em></span>.
</div></li><li class="listitem"><div class="para">
- <a id="idm47723005319888" class="indexterm"></a> <a id="idm47722990693632" class="indexterm"></a> <span class="emphasis"><em>Host system</em></span> — the system on which you compile the <span class="emphasis"><em>instrumentation modules</em></span> from SystemTap scripts in order to load them on <span class="emphasis"><em>target systems</em></span>.
+ <a id="idm47650183057632" class="indexterm"></a> <a id="idm47650199463184" class="indexterm"></a> <span class="emphasis"><em>Host system</em></span> — the system on which you compile the <span class="emphasis"><em>instrumentation modules</em></span> from SystemTap scripts in order to load them on <span class="emphasis"><em>target systems</em></span>.
</div></li><li class="listitem"><div class="para">
- <a id="idm47723004386512" class="indexterm"></a> <a id="idm47723004385552" class="indexterm"></a> <span class="emphasis"><em>Target system</em></span> — the system for which you are building the <span class="emphasis"><em>instrumentation modules</em></span> from SystemTap scripts.
+ <a id="idm47650181187440" class="indexterm"></a> <a id="idm47650184906256" class="indexterm"></a> <span class="emphasis"><em>Target system</em></span> — the system for which you are building the <span class="emphasis"><em>instrumentation modules</em></span> from SystemTap scripts.
</div></li><li class="listitem"><div class="para">
- <a id="idm47722998150432" class="indexterm"></a> <a id="idm47722995828384" class="indexterm"></a> <span class="emphasis"><em>Target kernel</em></span> — the kernel of the <span class="emphasis"><em>target system</em></span>. This is the kernel on which you intend to load or run the <span class="emphasis"><em>instrumentation module</em></span>.
+ <a id="idm47650181276800" class="indexterm"></a> <a id="idm47650185685056" class="indexterm"></a> <span class="emphasis"><em>Target kernel</em></span> — the kernel of the <span class="emphasis"><em>target system</em></span>. This is the kernel on which you intend to load or run the <span class="emphasis"><em>instrumentation module</em></span>.
</div></li></ul></div><div class="para">
To configure a host system and target systems, complete the following steps:
</div><div xmlns:d="http://docbook.org/ns/docbook" class="procedure"><a id="preppingxcompile">
- </a><a id="idm47722988980608" class="indexterm"></a><a id="idm47722988982272" class="indexterm"></a><a id="idm47723009390752" class="indexterm"></a><ol class="1"><li class="step"><div class="para">
+ </a><a id="idm47650192721936" class="indexterm"></a><a id="idm47650187379984" class="indexterm"></a><a id="idm47650183188112" class="indexterm"></a><ol class="1"><li class="step"><div class="para">
Install the <span class="package">systemtap-runtime</span> package on each <span class="emphasis"><em>target system</em></span>.
</div></li><li class="step"><div class="para">
Determine the kernel running on each <span class="emphasis"><em>target system</em></span> by running the <code class="command">uname -r</code> command on each of these systems.
To build the <span class="emphasis"><em>instrumentation module</em></span>, run the following command on the <span class="emphasis"><em>host system</em></span> (be sure to specify the appropriate values):
</div><pre class="screen"><code class="command">stap -r <em class="replaceable">kernel_version</em> <em class="replaceable">script</em> -m <em class="replaceable">module_name</em></code></pre><div class="para">
Here, <em class="replaceable">kernel_version</em> refers to the version of the <span class="emphasis"><em>target kernel</em></span> (the output of the <code class="command">uname -r</code> command on the target machine), <em class="replaceable">script</em> refers to the script to be converted into the <span class="emphasis"><em>instrumentation module</em></span>, and <em class="replaceable">module_name</em> is the desired name of the <span class="emphasis"><em>instrumentation module</em></span>.
- </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><a id="idm47722995237440" class="indexterm"></a><a id="idm47722998251920" class="indexterm"></a><a id="idm47722998250992" class="indexterm"></a><div class="para">
+ </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><a id="idm47650188096256" class="indexterm"></a><a id="idm47650188095296" class="indexterm"></a><a id="idm47650193507584" class="indexterm"></a><div class="para">
To determine the architecture notation of a running kernel, you can run the following command:
</div><pre class="screen"><code class="command">uname -m</code></pre></div></div><div class="para">
Once the <span class="emphasis"><em>instrumentation module</em></span> is compiled, copy it to the <span class="emphasis"><em>target system</em></span> and then load it using:
</a>Chapter 6. Understanding SystemTap Errors</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="errors.html#parsetype">6.1. Parse and Semantic Errors</a></span></dt><dt><span class="section"><a href="runtimeerror.html">6.2. Runtime Errors and Warnings</a></span></dt></dl></div><div class="para">
This chapter explains the most common errors you may encounter while using SystemTap.
</div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="parsetype">
- </a>6.1. Parse and Semantic Errors</h2></div></div></div><a id="idm47722955856688" class="indexterm"></a><a id="idm47722986231360" class="indexterm"></a><a id="idm47723003334752" class="indexterm"></a><div class="para">
+ </a>6.1. Parse and Semantic Errors</h2></div></div></div><a id="idm47650195800176" class="indexterm"></a><a id="idm47650197638544" class="indexterm"></a><a id="idm47650168993984" class="indexterm"></a><div class="para">
Parse and semantic errors occur while SystemTap attempts to parse and translate the script into C, before converting it into a kernel module. For example, type errors result from operations that assign invalid values to variables or arrays.
- </div><h3><a id="idm47722955017808">
- </a>parse error: expected <em class="replaceable">foo</em>, saw <em class="replaceable">bar</em></h3><a id="idm47722952942688" class="indexterm"></a><a id="idm47722950870096" class="indexterm"></a><a id="idm47722956286176" class="indexterm"></a><a id="idm47722955461008" class="indexterm"></a><a id="idm47722956680880" class="indexterm"></a><a id="idm47722990888048" class="indexterm"></a><a id="idm47722990886160" class="indexterm"></a><a id="idm47722995443040" class="indexterm"></a><a id="idm47722995440896" class="indexterm"></a><div class="para">
+ </div><h3><a id="idm47650183678384">
+ </a>parse error: expected <em class="replaceable">foo</em>, saw <em class="replaceable">bar</em></h3><a id="idm47650184802720" class="indexterm"></a><a id="idm47650185622240" class="indexterm"></a><a id="idm47650193699664" class="indexterm"></a><a id="idm47650191223920" class="indexterm"></a><a id="idm47650192182688" class="indexterm"></a><a id="idm47650192868960" class="indexterm"></a><a id="idm47650192867072" class="indexterm"></a><a id="idm47650155650400" class="indexterm"></a><a id="idm47650155648256" class="indexterm"></a><div class="para">
The script contains a grammatical or typographical error. SystemTap detected the type of the construct that is incorrect, given the context of the probe.
</div><div class="para">
For example, the following invalid SystemTap script is missing its probe handlers:
<pre class="programlisting">parse error: expected one of '. , ( ? ! { = +='
saw: keyword at perror.stp:2:1
1 parse error(s).</pre>
- </div><h3><a id="idm47722994293552">
- </a>parse error: embedded code in unprivileged script</h3><a id="idm47722994292784" class="indexterm"></a><a id="idm47722994290928" class="indexterm"></a><a id="idm47722989135392" class="indexterm"></a><a id="idm47722989133536" class="indexterm"></a><a id="idm47722989131680" class="indexterm"></a><a id="idm47722989129824" class="indexterm"></a><div class="para">
+ </div><h3><a id="idm47650149223440">
+ </a>parse error: embedded code in unprivileged script</h3><a id="idm47650149222672" class="indexterm"></a><a id="idm47650190814048" class="indexterm"></a><a id="idm47650190812160" class="indexterm"></a><a id="idm47650190810304" class="indexterm"></a><a id="idm47650190808448" class="indexterm"></a><a id="idm47650145098928" class="indexterm"></a><div class="para">
The script contains unsafe embedded C code, that is, blocks of code surrounded by <code class="command">%{</code> and <code class="command">%}</code>. SystemTap allows you to embed C code in a script, which is useful if there are no tapsets to suit your purposes. However, embedded C constructs are not safe and SystemTap reports this error to warn you if such constructs appear in the script.
- </div><a id="idm47722990826816" class="indexterm"></a><a id="idm47722990824928" class="indexterm"></a><a id="idm47722990823008" class="indexterm"></a><a id="idm47722949352880" class="indexterm"></a><div class="para">
+ </div><a id="idm47650145095152" class="indexterm"></a><a id="idm47650145093264" class="indexterm"></a><a id="idm47650192570416" class="indexterm"></a><a id="idm47650192568528" class="indexterm"></a><div class="para">
If you are sure that any similar constructs in the script are safe <span class="emphasis"><em>and</em></span> you are a member of the <code class="systemitem">stapdev</code> group (or have root privileges), run the script in "guru" mode by using the <code class="option">-g</code> option:
- </div><pre class="screen"><code class="command">stap -g <em class="replaceable">script</em></code></pre><h3><a id="idm47722949348016">
- </a>semantic error: type mismatch for identifier '<em class="replaceable">foo</em>' ... string vs. long</h3><a id="idm47722949346768" class="indexterm"></a><a id="idm47723009143296" class="indexterm"></a><a id="idm47723009141408" class="indexterm"></a><a id="idm47723009139552" class="indexterm"></a><a id="idm47723009137696" class="indexterm"></a><div class="para">
+ </div><pre class="screen"><code class="command">stap -g <em class="replaceable">script</em></code></pre><h3><a id="idm47650192563664">
+ </a>semantic error: type mismatch for identifier '<em class="replaceable">foo</em>' ... string vs. long</h3><a id="idm47650190957792" class="indexterm"></a><a id="idm47650190955936" class="indexterm"></a><a id="idm47650190954048" class="indexterm"></a><a id="idm47650190952192" class="indexterm"></a><a id="idm47650180972608" class="indexterm"></a><div class="para">
The function <em class="replaceable">foo</em> in the script used the wrong type (such as <code class="literal">%s</code> or <code class="literal">%d</code>). In the following example, the format specifier should be <code class="literal">%s</code> and not <code class="literal">%d</code>, because the <code class="function">execname()</code> function returns a string:
</div><pre class="programlisting">probe syscall.open
{
printf ("%d(%d) open\n", execname(), pid())
-}</pre><h3><a id="idm47723005840048">
- </a>semantic error: unresolved type for identifier '<em class="replaceable">foo</em>'</h3><a id="idm47723005838800" class="indexterm"></a><a id="idm47723001409088" class="indexterm"></a><a id="idm47723001407200" class="indexterm"></a><a id="idm47723001405344" class="indexterm"></a><div class="para">
+}</pre><h3><a id="idm47650180967040">
+ </a>semantic error: unresolved type for identifier '<em class="replaceable">foo</em>'</h3><a id="idm47650180965792" class="indexterm"></a><a id="idm47650188002192" class="indexterm"></a><a id="idm47650188000304" class="indexterm"></a><a id="idm47650187998448" class="indexterm"></a><div class="para">
The identifier (variable) was used, but no type (integer or string) could be determined. This occurs, for instance, if you use a variable in a <code class="command">printf</code> statement while the script never assigns a value to the variable.
- </div><h3><a id="idm47723001402432">
- </a>semantic error: Expecting symbol or array index expression</h3><a id="idm47722993116896" class="indexterm"></a><a id="idm47722993115040" class="indexterm"></a><a id="idm47722993113152" class="indexterm"></a><a id="idm47722993111296" class="indexterm"></a><div class="para">
+ </div><h3><a id="idm47650145624448">
+ </a>semantic error: Expecting symbol or array index expression</h3><a id="idm47650145623600" class="indexterm"></a><a id="idm47650145621744" class="indexterm"></a><a id="idm47650145619856" class="indexterm"></a><a id="idm47650145618000" class="indexterm"></a><div class="para">
SystemTap could not assign a value to a variable or to a location in an array. The destination for the assignment is not a valid destination. The following example code would generate this error:
</div><pre class="programlisting">probe begin { printf("x") = 1 }
-</pre><h3><a id="idm47723005494576">
- </a>while searching for arity <em class="replaceable">N</em> function, semantic error: unresolved function call</h3><a id="idm47723005493360" class="indexterm"></a><a id="idm47723005491504" class="indexterm"></a><a id="idm47723005489616" class="indexterm"></a><a id="idm47723003280784" class="indexterm"></a><a id="idm47723003278928" class="indexterm"></a><div class="para">
+</pre><h3><a id="idm47650197236080">
+ </a>while searching for arity <em class="replaceable">N</em> function, semantic error: unresolved function call</h3><a id="idm47650197234864" class="indexterm"></a><a id="idm47650197233008" class="indexterm"></a><a id="idm47650197231120" class="indexterm"></a><a id="idm47650142114912" class="indexterm"></a><a id="idm47650142113056" class="indexterm"></a><div class="para">
A function call or array index expression in the script used an invalid number of arguments or parameters. In SystemTap, <em class="firstterm">arity</em> can either refer to the number of indices for an array, or the number of parameters to a function.
- </div><h3><a id="idm47723003276032">
- </a>semantic error: array locals not supported, missing global declaration?</h3><a id="idm47723003275104" class="indexterm"></a><a id="idm47722953557200" class="indexterm"></a><a id="idm47722953555312" class="indexterm"></a><a id="idm47722953553392" class="indexterm"></a><a id="idm47722953551504" class="indexterm"></a><div class="para">
+ </div><h3><a id="idm47650142110160">
+ </a>semantic error: array locals not supported, missing global declaration?</h3><a id="idm47650142109152" class="indexterm"></a><a id="idm47650193226000" class="indexterm"></a><a id="idm47650193224112" class="indexterm"></a><a id="idm47650193222192" class="indexterm"></a><a id="idm47650193220304" class="indexterm"></a><div class="para">
The script used an array operation without declaring the array as a global variable (global variables can be declared after their use in SystemTap scripts). Similar messages appear if an array is used, but with inconsistent arities.
- </div><h3><a id="idm47722995743712">
- </a>semantic error: variable '<em class="replaceable">foo</em>' modified during 'foreach' iteration</h3><a id="idm47722995742416" class="indexterm"></a><a id="idm47722995740560" class="indexterm"></a><a id="idm47722995738672" class="indexterm"></a><a id="idm47722953924896" class="indexterm"></a><div class="para">
+ </div><h3><a id="idm47650193563920">
+ </a>semantic error: variable '<em class="replaceable">foo</em>' modified during 'foreach' iteration</h3><a id="idm47650193562624" class="indexterm"></a><a id="idm47650193560768" class="indexterm"></a><a id="idm47650193558880" class="indexterm"></a><a id="idm47650192135008" class="indexterm"></a><div class="para">
The array <em class="replaceable">foo</em> is being modified (being assigned to or deleted from) within an active <code class="command">foreach</code> loop. This error also displays if an operation within the script performs a function call within the <code class="command">foreach</code> loop.
- </div><h3><a id="idm47722953921184">
- </a>semantic error: probe point mismatch at position <em class="replaceable">N</em>, while resolving probe point <em class="replaceable">foo</em></h3><a id="idm47722953919488" class="indexterm"></a><a id="idm47722994995600" class="indexterm"></a><a id="idm47722994993680" class="indexterm"></a><a id="idm47722994991792" class="indexterm"></a><div class="para">
+ </div><h3><a id="idm47650192131296">
+ </a>semantic error: probe point mismatch at position <em class="replaceable">N</em>, while resolving probe point <em class="replaceable">foo</em></h3><a id="idm47650192129600" class="indexterm"></a><a id="idm47650192307440" class="indexterm"></a><a id="idm47650192305520" class="indexterm"></a><a id="idm47650192303632" class="indexterm"></a><div class="para">
SystemTap did not understand what the event or SystemTap function <em class="replaceable">foo</em> refers to. This usually means that SystemTap could not find a match for <em class="replaceable">foo</em> in the tapset library. <em class="replaceable">N</em> refers to the line and column of the error.
- </div><h3><a id="idm47723002749232">
- </a>semantic error: no match for probe point, while resolving probe point <em class="replaceable">foo</em></h3><a id="idm47723002747904" class="indexterm"></a><a id="idm47723002746048" class="indexterm"></a><a id="idm47723002744160" class="indexterm"></a><a id="idm47722995731536" class="indexterm"></a><a id="idm47722995729680" class="indexterm"></a><div class="para">
+ </div><h3><a id="idm47650150949888">
+ </a>semantic error: no match for probe point, while resolving probe point <em class="replaceable">foo</em></h3><a id="idm47650150948560" class="indexterm"></a><a id="idm47650150946704" class="indexterm"></a><a id="idm47650150944816" class="indexterm"></a><a id="idm47650150942960" class="indexterm"></a><a id="idm47650180889456" class="indexterm"></a><div class="para">
SystemTap could not resolve the events or handler function <em class="replaceable">foo</em> for a variety of reasons. This error occurs when the script contains the event <code class="command">kernel.function("<em class="replaceable">something</em>")</code>, and <em class="replaceable">something</em> does not exist. In some cases, the error could also mean the script contains an invalid kernel file name or source line number.
- </div><h3><a id="idm47722995725296">
- </a>semantic error: unresolved target-symbol expression</h3><a id="idm47722995724448" class="indexterm"></a><a id="idm47723005177248" class="indexterm"></a><a id="idm47723005175360" class="indexterm"></a><a id="idm47723005173504" class="indexterm"></a><a id="idm47723005171648" class="indexterm"></a><div class="para">
+ </div><h3><a id="idm47650180885072">
+ </a>semantic error: unresolved target-symbol expression</h3><a id="idm47650180884224" class="indexterm"></a><a id="idm47650190223776" class="indexterm"></a><a id="idm47650190221888" class="indexterm"></a><a id="idm47650190220032" class="indexterm"></a><a id="idm47650190218176" class="indexterm"></a><div class="para">
A handler in the script references a target variable, but the value of the variable could not be resolved. This error could also mean that a handler is referencing a target variable that is not valid in the context when it was referenced. This may be a result of compiler optimization of the generated code.
- </div><h3><a id="idm47722960504288">
- </a>semantic error: libdwfl failure </h3><a id="idm47722960503360" class="indexterm"></a><a id="idm47722960501472" class="indexterm"></a><a id="idm47722960499552" class="indexterm"></a><a id="idm47722951592416" class="indexterm"></a><div class="para">
+ </div><h3><a id="idm47650188134688">
+ </a>semantic error: libdwfl failure </h3><a id="idm47650188133760" class="indexterm"></a><a id="idm47650188131872" class="indexterm"></a><a id="idm47650188129952" class="indexterm"></a><a id="idm47650188128064" class="indexterm"></a><div class="para">
There was a problem processing the debugging information. In most cases, this error results from the installation of a <span class="package">kernel-debuginfo</span> package whose version does not match the probed kernel exactly. The installed <span class="package">kernel-debuginfo</span> package itself may have some consistency or correctness problems.
- </div><h3><a id="idm47722951588960">
+ </div><h3><a id="idm47650184679440">
</a>semantic error: cannot find <em class="replaceable">foo</em> debuginfo</h3><div class="para">
SystemTap could not find a suitable <span class="package">kernel-debuginfo</span> package.
</div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="futexcontentionsect.html"><strong>Prev</strong>5.4. Identifying Contended User-Space Locks</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="runtimeerror.html"><strong>Next</strong>6.2. Runtime Errors and Warnings</a></li></ul></body></html>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.4. Identifying Contended User-Space Locks</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="useful-systemtap-scripts.html" title="Chapter 5. Useful SystemTap Scripts" /><link rel="prev" href="syscallsbyprocpidsect.html" title="5.3.6. Tracking System Call Volume Per Process" /><link rel="next" href="errors.html" title="Chapter 6. Understanding SystemTap Errors" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="syscallsbyprocpidsect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="errors.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h2 class="title"><a id="futexcontentionsect">
- </a>5.4. Identifying Contended User-Space Locks</h2></div></div></div><a id="idm47723009245584" class="indexterm"></a><a id="idm47722997199504" class="indexterm"></a><a id="idm47722990893216" class="indexterm"></a><a id="idm47723005881056" class="indexterm"></a><div class="para">
+ </a>5.4. Identifying Contended User-Space Locks</h2></div></div></div><a id="idm47650192988416" class="indexterm"></a><a id="idm47650146805328" class="indexterm"></a><a id="idm47650191389440" class="indexterm"></a><a id="idm47650183659296" class="indexterm"></a><div class="para">
This section describes how to identify contended user-space locks throughout the system within a specific time period. The ability to identify contended user-space locks can help you investigate poor program performance that you suspect may be caused by <code class="command">futex</code> contentions.
- </div><a id="idm47722999373344" class="indexterm"></a><a id="idm47722995665296" class="indexterm"></a><a id="idm47722999295728" class="indexterm"></a><a id="idm47722993160928" class="indexterm"></a><a id="idm47722993159552" class="indexterm"></a><div class="para">
+ </div><a id="idm47650200003536" class="indexterm"></a><a id="idm47650144410464" class="indexterm"></a><a id="idm47650195841296" class="indexterm"></a><a id="idm47650143441312" class="indexterm"></a><a id="idm47650190423072" class="indexterm"></a><div class="para">
Simply put, <code class="command">futex</code> contention occurs when multiple processes are trying to access the same lock variable at the same time. This can result in a poor performance because the lock serializes execution; one process obtains the lock while the other processes must wait for the lock variable to become available again.
- </div><a id="idm47722987638896" class="indexterm"></a><a id="idm47722951877984" class="indexterm"></a><a id="idm47723001271840" class="indexterm"></a><div class="para">
+ </div><a id="idm47650150825552" class="indexterm"></a><a id="idm47650145894592" class="indexterm"></a><a id="idm47650187837024" class="indexterm"></a><div class="para">
The <a class="xref" href="futexcontentionsect.html#futexcontention">futexes.stp</a> script probes the <code class="command">futex</code> system call to show lock contention.
</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">futexes.stp</div>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.3.3. Conditional Statements</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="scriptconstructions.html" title="3.3. Basic SystemTap Handler Constructs" /><link rel="prev" href="targetavailable.html" title="3.3.2.3. Checking Target Variable Availability" /><link rel="next" href="commandlineargssect.html" title="3.3.4. Command-Line Arguments" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="targetavailable.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="commandlineargssect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="handlerconditionalstatements">
- </a>3.3.3. Conditional Statements</h3></div></div></div><a id="idm47723005887088" class="indexterm"></a><a id="idm47723004474400" class="indexterm"></a><div class="para">
+ </a>3.3.3. Conditional Statements</h3></div></div></div><a id="idm47650183592400" class="indexterm"></a><a id="idm47650155616208" class="indexterm"></a><div class="para">
In some cases, the output of a SystemTap script may be too large. To address this, you need to further refine the script's logic in order to delimit the output into something more relevant or useful to your probe.
</div><div class="para">
Do this by using <span class="emphasis"><em>conditionals</em></span> in handlers. SystemTap accepts the following types of conditional statements:
- </div><div class="variablelist"><dl class="variablelist"><dt><span class="term">If/Else Statements</span></dt><dd><a id="idm47723005868704" class="indexterm"></a><a id="idm47722995690400" class="indexterm"></a><a id="idm47723004538656" class="indexterm"></a><div class="para">
+ </div><div class="variablelist"><dl class="variablelist"><dt><span class="term">If/Else Statements</span></dt><dd><a id="idm47650191399552" class="indexterm"></a><a id="idm47650183771104" class="indexterm"></a><a id="idm47650193346320" class="indexterm"></a><div class="para">
Format:
</div><pre class="programlisting">if (<em class="replaceable">condition</em>)
<em class="replaceable">statement1</em>
printf("VFS reads total %d\n VFS writes total %d\n", countread, countnonread)
}</pre></div></div><div class="para">
<a class="xref" href="handlerconditionalstatements.html#simpleifelseexample">Example 3.11, “ifelse.stp”</a> is a script that counts how many virtual file system reads (<code class="command">vfs_read</code>) and writes (<code class="command">vfs_write</code>) the system performs within a 5-second span. When run, the script increments the value of the variable <code class="command">countread</code> by 1 if the name of the function it probed matches <code class="command">vfs_read</code> (as noted by the condition <code class="command">if (probefunc()=="vfs_read")</code>); otherwise, it increments <code class="command">countnonread</code> (<code class="command">else {countnonread ++}</code>).
- </div></dd><dt><span class="term">While Loops</span></dt><dd><a id="idm47722987499200" class="indexterm"></a><a id="idm47722960493328" class="indexterm"></a><a id="idm47722949704720" class="indexterm"></a><div class="para">
+ </div></dd><dt><span class="term">While Loops</span></dt><dd><a id="idm47650190462144" class="indexterm"></a><a id="idm47650154812512" class="indexterm"></a><a id="idm47650183935152" class="indexterm"></a><div class="para">
Format:
</div><pre class="programlisting">while (<em class="replaceable">condition</em>)
<em class="replaceable">statement</em></pre><div class="para">
So long as <code class="command"><em class="replaceable">condition</em></code> is non-zero the block of statements in <code class="command"><em class="replaceable">statement</em></code> are executed. The <code class="command"><em class="replaceable">statement</em></code> is often a statement block and it must change a value so <code class="command"><em class="replaceable">condition</em></code> will eventually be zero.
- </div></dd><dt><span class="term">For Loops</span></dt><dd><a id="idm47723004361072" class="indexterm"></a><a id="idm47723004519952" class="indexterm"></a><a id="idm47722988659088" class="indexterm"></a><div class="para">
+ </div></dd><dt><span class="term">For Loops</span></dt><dd><a id="idm47650143756144" class="indexterm"></a><a id="idm47650148485168" class="indexterm"></a><a id="idm47650180860480" class="indexterm"></a><div class="para">
Format:
</div><pre class="programlisting">for (<em class="replaceable">initialization</em>; <em class="replaceable">conditional</em>; <em class="replaceable">increment</em>) <em class="replaceable">statement</em></pre><div class="para">
The <code class="command">for</code> loop is shorthand for a while loop. The following is the equivalent <code class="command">while</code> loop:
while (<em class="replaceable">conditional</em>) {
<em class="replaceable">statement</em>
<em class="replaceable">increment</em>
-}</pre></dd></dl></div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">Conditional Operators</div><a id="idm47722995895008" class="indexterm"></a><a id="idm47722997178368" class="indexterm"></a><a id="idm47722994631680" class="indexterm"></a>
+}</pre></dd></dl></div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">Conditional Operators</div><a id="idm47650193244512" class="indexterm"></a><a id="idm47650156526288" class="indexterm"></a><a id="idm47650187968160" class="indexterm"></a>
Aside from <code class="command">==</code> ("is equal to"), following operators can also be used in conditional statements:
</div><div class="variablelist"><dl class="variablelist"><dt><span class="term">>=</span></dt><dd><div class="para">
Greater than or equal to
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">SystemTap Beginners Guide</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><meta name="description" content="This guide provides basic instructions on how to use SystemTap to monitor different subsystems of a Linux system in finer detail." /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="next" href="SystemTap_Beginners_Guide-Preface.html" title="Preface" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="SystemTap_Beginners_Guide-Preface.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="book" lang="en-US"><div class="titlepage"><div><div class="producttitle"><span xmlns:d="http://docbook.org/ns/docbook" class="productname">SystemTap</span> <span xmlns:d="http://docbook.org/ns/docbook" class="productnumber">2.7</span></div><div><h1 class="title"><a id="idm47722958571072"></a>SystemTap Beginners Guide</h1></div><div><h2 class="subtitle">Introduction to SystemTap</h2></div><p xmlns:d="http://docbook.org/ns/docbook" class="edition">Edition 2.7</p><div><h3 class="corpauthor">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">SystemTap Beginners Guide</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><meta name="description" content="This guide provides basic instructions on how to use SystemTap to monitor different subsystems of a Linux system in finer detail." /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="next" href="SystemTap_Beginners_Guide-Preface.html" title="Preface" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="SystemTap_Beginners_Guide-Preface.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="book" lang="en-US"><div class="titlepage"><div><div class="producttitle"><span xmlns:d="http://docbook.org/ns/docbook" class="productname">SystemTap</span> <span xmlns:d="http://docbook.org/ns/docbook" class="productnumber">2.7</span></div><div><h1 class="title"><a id="idm47650150963712"></a>SystemTap Beginners Guide</h1></div><div><h2 class="subtitle">Introduction to SystemTap</h2></div><p xmlns:d="http://docbook.org/ns/docbook" class="edition">Edition 2.7</p><div><h3 class="corpauthor">
<span class="inlinemediaobject"><object data="Common_Content/images/title_logo.svg" type="image/svg+xml"><img src="Common_Content/images/title_logo.png" alt="Logo" /></object></span>
</h3></div><div><div xml:lang="en-US" class="authorgroup" lang="en-US"><h3 class="corpauthor">
Red Hat, Inc.
- </h3><div class="author"><h3 class="author"><span class="firstname">Don</span> <span class="surname">Domingo </span></h3><div class="affiliation"><span xmlns:d="http://docbook.org/ns/docbook" class="orgname">Engineering Services and Operations</span> <span xmlns:d="http://docbook.org/ns/docbook" class="orgdiv">Content Services</span></div><code class="email"><a class="email" href="mailto:ddomingo@redhat.com">ddomingo@redhat.com</a></code></div><div class="author"><h3 class="author"><span class="firstname">William</span> <span class="surname">Cohen</span></h3><div class="affiliation"><span xmlns:d="http://docbook.org/ns/docbook" class="orgname">Engineering Services and Operations</span> <span xmlns:d="http://docbook.org/ns/docbook" class="orgdiv">Performance Tools</span></div><code class="email"><a class="email" href="mailto:wcohen@redhat.com">wcohen@redhat.com</a></code></div></div></div><div><p class="copyright">Copyright © 2013 Red Hat, Inc</p></div><div><div class="legalnotice"><a id="idm47722950218288"></a><h1 class="legalnotice">Legal Notice</h1><div class="para">
+ </h3><div class="author"><h3 class="author"><span class="firstname">Don</span> <span class="surname">Domingo </span></h3><div class="affiliation"><span xmlns:d="http://docbook.org/ns/docbook" class="orgname">Engineering Services and Operations</span> <span xmlns:d="http://docbook.org/ns/docbook" class="orgdiv">Content Services</span></div><code class="email"><a class="email" href="mailto:ddomingo@redhat.com">ddomingo@redhat.com</a></code></div><div class="author"><h3 class="author"><span class="firstname">William</span> <span class="surname">Cohen</span></h3><div class="affiliation"><span xmlns:d="http://docbook.org/ns/docbook" class="orgname">Engineering Services and Operations</span> <span xmlns:d="http://docbook.org/ns/docbook" class="orgdiv">Performance Tools</span></div><code class="email"><a class="email" href="mailto:wcohen@redhat.com">wcohen@redhat.com</a></code></div></div></div><div><p class="copyright">Copyright © 2013 Red Hat, Inc</p></div><div><div class="legalnotice"><a id="idm47650149867808"></a><h1 class="legalnotice">Legal Notice</h1><div class="para">
This documentation is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.
</div><div class="para">
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
For more details see the file COPYING in the source distribution of Linux.
</div></div></div><div><div class="abstract"><p class="title"><strong>Abstract</strong></p><div class="para">
This guide provides basic instructions on how to use SystemTap to monitor different subsystems of a Linux system in finer detail.
- </div></div></div></div></div><div class="toc"><dl class="toc"><dt><span class="preface"><a href="SystemTap_Beginners_Guide-Preface.html">Preface</a></span></dt><dd><dl><dt><span class="section"><a href="SystemTap_Beginners_Guide-Preface.html#idm47723002008736">1. Document Conventions</a></span></dt><dd><dl><dt><span class="section"><a href="SystemTap_Beginners_Guide-Preface.html#idm47722993083520">1.1. Typographic Conventions</a></span></dt><dt><span class="section"><a href="SystemTap_Beginners_Guide-Preface.html#idm47722995926912">1.2. Pull-quote Conventions</a></span></dt><dt><span class="section"><a href="SystemTap_Beginners_Guide-Preface.html#idm47723003338560">1.3. Notes and Warnings</a></span></dt></dl></dd><dt><span class="section"><a href="pr01s02.html">2. We Need Feedback!</a></span></dt></dl></dd><dt><span class="chapter"><a href="introduction.html">1. Introduction</a></span></dt><dd><dl><dt><span class="section"><a href="introduction.html#goals">1.1. Documentation Goals</a></span></dt><dt><span class="section"><a href="intro-systemtap-vs-others.html">1.2. SystemTap Capabilities</a></span></dt><dt><span class="section"><a href="intro-systemtap-limitations.html">1.3. Limitations of SystemTap</a></span></dt></dl></dd><dt><span class="chapter"><a href="using-systemtap.html">2. Using SystemTap</a></span></dt><dd><dl><dt><span class="section"><a href="using-systemtap.html#using-setup">2.1. Installation and Setup</a></span></dt><dd><dl><dt><span class="section"><a href="using-systemtap.html#installproper">2.1.1. Installing SystemTap</a></span></dt><dt><span class="section"><a href="using-systemtap.html#install-kinfo">2.1.2. Installing Required Kernel Information Packages Manually</a></span></dt><dt><span class="section"><a href="using-systemtap.html#testing">2.1.3. Initial Testing</a></span></dt></dl></dd><dt><span class="section"><a href="cross-compiling.html">2.2. Generating Instrumentation for Other Computers</a></span></dt><dt><span class="section"><a href="using-usage.html">2.3. Running SystemTap Scripts</a></span></dt><dd><dl><dt><span class="section"><a href="using-usage.html#flight-recorder">2.3.1. SystemTap Flight Recorder Mode</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="understanding-how-systemtap-works.html">3. Understanding How SystemTap Works</a></span></dt><dd><dl><dt><span class="section"><a href="understanding-how-systemtap-works.html#understanding-architecture-tools">3.1. Architecture</a></span></dt><dt><span class="section"><a href="scripts.html">3.2. SystemTap Scripts</a></span></dt><dd><dl><dt><span class="section"><a href="scripts.html#systemtapscript-events">3.2.1. Event</a></span></dt><dt><span class="section"><a href="systemtapscript-handler.html">3.2.2. SystemTap Handler/Body</a></span></dt></dl></dd><dt><span class="section"><a href="scriptconstructions.html">3.3. Basic SystemTap Handler Constructs</a></span></dt><dd><dl><dt><span class="section"><a href="scriptconstructions.html#variablesconstructs">3.3.1. Variables</a></span></dt><dt><span class="section"><a href="targetvariables.html">3.3.2. Target Variables</a></span></dt><dt><span class="section"><a href="handlerconditionalstatements.html">3.3.3. Conditional Statements</a></span></dt><dt><span class="section"><a href="commandlineargssect.html">3.3.4. Command-Line Arguments</a></span></dt></dl></dd><dt><span class="section"><a href="associativearrays.html">3.4. Associative Arrays</a></span></dt><dt><span class="section"><a href="arrayoperators.html">3.5. Array Operations in SystemTap</a></span></dt><dd><dl><dt><span class="section"><a href="arrayoperators.html#arrayops-assignvalue">3.5.1. Assigning an Associated Value</a></span></dt><dt><span class="section"><a href="arrayops-readvalues.html">3.5.2. Reading Values From Arrays</a></span></dt><dt><span class="section"><a href="arrayops-increment.html">3.5.3. Incrementing Associated Values</a></span></dt><dt><span class="section"><a href="arrayops-foreach.html">3.5.4. Processing Multiple Elements in an Array</a></span></dt><dt><span class="section"><a href="arrayops-deleting.html">3.5.5. Clearing/Deleting Arrays and Array Elements</a></span></dt><dt><span class="section"><a href="arrayops-conditionals.html">3.5.6. Using Arrays in Conditional Statements</a></span></dt><dt><span class="section"><a href="arrayops-aggregates.html">3.5.7. Computing for Statistical Aggregates</a></span></dt></dl></dd><dt><span class="section"><a href="understanding-tapsets.html">3.6. Tapsets</a></span></dt></dl></dd><dt><span class="chapter"><a href="userspace-probing.html">4. User-space Probing</a></span></dt><dd><dl><dt><span class="section"><a href="userspace-probing.html#uevents">4.1. User-Space Events</a></span></dt><dt><span class="section"><a href="utargetvariable.html">4.2. Accessing User-Space Target Variables</a></span></dt><dt><span class="section"><a href="ustack.html">4.3. User-Space Stack Backtraces</a></span></dt></dl></dd><dt><span class="chapter"><a href="useful-systemtap-scripts.html">5. Useful SystemTap Scripts</a></span></dt><dd><dl><dt><span class="section"><a href="useful-systemtap-scripts.html#mainsect-network">5.1. Network</a></span></dt><dd><dl><dt><span class="section"><a href="useful-systemtap-scripts.html#nettopsect">5.1.1. Network Profiling</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#sockettracesect">5.1.2. Tracing Functions Called in Network Socket Code</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#tcpconnectionssect">5.1.3. Monitoring Incoming TCP Connections</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#tcpdumplikesect">5.1.4. Monitoring TCP Packets</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#dropwatchsect">5.1.5. Monitoring Network Packets Drops in Kernel</a></span></dt></dl></dd><dt><span class="section"><a href="mainsect-disk.html">5.2. Disk</a></span></dt><dd><dl><dt><span class="section"><a href="mainsect-disk.html#disktop">5.2.1. Summarizing Disk Read/Write Traffic</a></span></dt><dt><span class="section"><a href="iotimesect.html">5.2.2. Tracking I/O Time For Each File Read or Write</a></span></dt><dt><span class="section"><a href="traceiosect.html">5.2.3. Track Cumulative IO</a></span></dt><dt><span class="section"><a href="traceio2sect.html">5.2.4. I/O Monitoring (By Device)</a></span></dt><dt><span class="section"><a href="inodewatchsect.html">5.2.5. Monitoring Reads and Writes to a File</a></span></dt><dt><span class="section"><a href="inodewatch2sect.html">5.2.6. Monitoring Changes to File Attributes</a></span></dt><dt><span class="section"><a href="ioblktimesect.html">5.2.7. Periodically Print I/O Block Time</a></span></dt></dl></dd><dt><span class="section"><a href="mainsect-profiling.html">5.3. Profiling</a></span></dt><dd><dl><dt><span class="section"><a href="mainsect-profiling.html#countcallssect">5.3.1. Counting Function Calls Made</a></span></dt><dt><span class="section"><a href="paracallgraph.html">5.3.2. Call Graph Tracing</a></span></dt><dt><span class="section"><a href="threadtimessect.html">5.3.3. Determining Time Spent in Kernel and User Space</a></span></dt><dt><span class="section"><a href="timeoutssect.html">5.3.4. Monitoring Polling Applications</a></span></dt><dt><span class="section"><a href="topsyssect.html">5.3.5. Tracking Most Frequently Used System Calls</a></span></dt><dt><span class="section"><a href="syscallsbyprocpidsect.html">5.3.6. Tracking System Call Volume Per Process</a></span></dt></dl></dd><dt><span class="section"><a href="futexcontentionsect.html">5.4. Identifying Contended User-Space Locks</a></span></dt></dl></dd><dt><span class="chapter"><a href="errors.html">6. Understanding SystemTap Errors</a></span></dt><dd><dl><dt><span class="section"><a href="errors.html#parsetype">6.1. Parse and Semantic Errors</a></span></dt><dt><span class="section"><a href="runtimeerror.html">6.2. Runtime Errors and Warnings</a></span></dt></dl></dd><dt><span class="chapter"><a href="references.html">7. References</a></span></dt><dt><span class="appendix"><a href="appe-Publican-Revision_History.html">A. Revision History</a></span></dt><dt><span class="index"><a href="ix01.html">Index</a></span></dt></dl></div></div><ul class="docnav"><li class="previous"></li><li class="next"><a accesskey="n" href="SystemTap_Beginners_Guide-Preface.html"><strong>Next</strong>Preface</a></li></ul></body></html>
\ No newline at end of file
+ </div></div></div></div></div><div class="toc"><dl class="toc"><dt><span class="preface"><a href="SystemTap_Beginners_Guide-Preface.html">Preface</a></span></dt><dd><dl><dt><span class="section"><a href="SystemTap_Beginners_Guide-Preface.html#idm47650199603760">1. Document Conventions</a></span></dt><dd><dl><dt><span class="section"><a href="SystemTap_Beginners_Guide-Preface.html#idm47650146025328">1.1. Typographic Conventions</a></span></dt><dt><span class="section"><a href="SystemTap_Beginners_Guide-Preface.html#idm47650199533440">1.2. Pull-quote Conventions</a></span></dt><dt><span class="section"><a href="SystemTap_Beginners_Guide-Preface.html#idm47650183097296">1.3. Notes and Warnings</a></span></dt></dl></dd><dt><span class="section"><a href="pr01s02.html">2. We Need Feedback!</a></span></dt></dl></dd><dt><span class="chapter"><a href="introduction.html">1. Introduction</a></span></dt><dd><dl><dt><span class="section"><a href="introduction.html#goals">1.1. Documentation Goals</a></span></dt><dt><span class="section"><a href="intro-systemtap-vs-others.html">1.2. SystemTap Capabilities</a></span></dt><dt><span class="section"><a href="intro-systemtap-limitations.html">1.3. Limitations of SystemTap</a></span></dt></dl></dd><dt><span class="chapter"><a href="using-systemtap.html">2. Using SystemTap</a></span></dt><dd><dl><dt><span class="section"><a href="using-systemtap.html#using-setup">2.1. Installation and Setup</a></span></dt><dd><dl><dt><span class="section"><a href="using-systemtap.html#installproper">2.1.1. Installing SystemTap</a></span></dt><dt><span class="section"><a href="using-systemtap.html#install-kinfo">2.1.2. Installing Required Kernel Information Packages Manually</a></span></dt><dt><span class="section"><a href="using-systemtap.html#testing">2.1.3. Initial Testing</a></span></dt></dl></dd><dt><span class="section"><a href="cross-compiling.html">2.2. Generating Instrumentation for Other Computers</a></span></dt><dt><span class="section"><a href="using-usage.html">2.3. Running SystemTap Scripts</a></span></dt><dd><dl><dt><span class="section"><a href="using-usage.html#flight-recorder">2.3.1. SystemTap Flight Recorder Mode</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="understanding-how-systemtap-works.html">3. Understanding How SystemTap Works</a></span></dt><dd><dl><dt><span class="section"><a href="understanding-how-systemtap-works.html#understanding-architecture-tools">3.1. Architecture</a></span></dt><dt><span class="section"><a href="scripts.html">3.2. SystemTap Scripts</a></span></dt><dd><dl><dt><span class="section"><a href="scripts.html#systemtapscript-events">3.2.1. Event</a></span></dt><dt><span class="section"><a href="systemtapscript-handler.html">3.2.2. SystemTap Handler/Body</a></span></dt></dl></dd><dt><span class="section"><a href="scriptconstructions.html">3.3. Basic SystemTap Handler Constructs</a></span></dt><dd><dl><dt><span class="section"><a href="scriptconstructions.html#variablesconstructs">3.3.1. Variables</a></span></dt><dt><span class="section"><a href="targetvariables.html">3.3.2. Target Variables</a></span></dt><dt><span class="section"><a href="handlerconditionalstatements.html">3.3.3. Conditional Statements</a></span></dt><dt><span class="section"><a href="commandlineargssect.html">3.3.4. Command-Line Arguments</a></span></dt></dl></dd><dt><span class="section"><a href="associativearrays.html">3.4. Associative Arrays</a></span></dt><dt><span class="section"><a href="arrayoperators.html">3.5. Array Operations in SystemTap</a></span></dt><dd><dl><dt><span class="section"><a href="arrayoperators.html#arrayops-assignvalue">3.5.1. Assigning an Associated Value</a></span></dt><dt><span class="section"><a href="arrayops-readvalues.html">3.5.2. Reading Values From Arrays</a></span></dt><dt><span class="section"><a href="arrayops-increment.html">3.5.3. Incrementing Associated Values</a></span></dt><dt><span class="section"><a href="arrayops-foreach.html">3.5.4. Processing Multiple Elements in an Array</a></span></dt><dt><span class="section"><a href="arrayops-deleting.html">3.5.5. Clearing/Deleting Arrays and Array Elements</a></span></dt><dt><span class="section"><a href="arrayops-conditionals.html">3.5.6. Using Arrays in Conditional Statements</a></span></dt><dt><span class="section"><a href="arrayops-aggregates.html">3.5.7. Computing for Statistical Aggregates</a></span></dt></dl></dd><dt><span class="section"><a href="understanding-tapsets.html">3.6. Tapsets</a></span></dt></dl></dd><dt><span class="chapter"><a href="userspace-probing.html">4. User-space Probing</a></span></dt><dd><dl><dt><span class="section"><a href="userspace-probing.html#uevents">4.1. User-Space Events</a></span></dt><dt><span class="section"><a href="utargetvariable.html">4.2. Accessing User-Space Target Variables</a></span></dt><dt><span class="section"><a href="ustack.html">4.3. User-Space Stack Backtraces</a></span></dt></dl></dd><dt><span class="chapter"><a href="useful-systemtap-scripts.html">5. Useful SystemTap Scripts</a></span></dt><dd><dl><dt><span class="section"><a href="useful-systemtap-scripts.html#mainsect-network">5.1. Network</a></span></dt><dd><dl><dt><span class="section"><a href="useful-systemtap-scripts.html#nettopsect">5.1.1. Network Profiling</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#sockettracesect">5.1.2. Tracing Functions Called in Network Socket Code</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#tcpconnectionssect">5.1.3. Monitoring Incoming TCP Connections</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#tcpdumplikesect">5.1.4. Monitoring TCP Packets</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#dropwatchsect">5.1.5. Monitoring Network Packets Drops in Kernel</a></span></dt></dl></dd><dt><span class="section"><a href="mainsect-disk.html">5.2. Disk</a></span></dt><dd><dl><dt><span class="section"><a href="mainsect-disk.html#disktop">5.2.1. Summarizing Disk Read/Write Traffic</a></span></dt><dt><span class="section"><a href="iotimesect.html">5.2.2. Tracking I/O Time For Each File Read or Write</a></span></dt><dt><span class="section"><a href="traceiosect.html">5.2.3. Track Cumulative IO</a></span></dt><dt><span class="section"><a href="traceio2sect.html">5.2.4. I/O Monitoring (By Device)</a></span></dt><dt><span class="section"><a href="inodewatchsect.html">5.2.5. Monitoring Reads and Writes to a File</a></span></dt><dt><span class="section"><a href="inodewatch2sect.html">5.2.6. Monitoring Changes to File Attributes</a></span></dt><dt><span class="section"><a href="ioblktimesect.html">5.2.7. Periodically Print I/O Block Time</a></span></dt></dl></dd><dt><span class="section"><a href="mainsect-profiling.html">5.3. Profiling</a></span></dt><dd><dl><dt><span class="section"><a href="mainsect-profiling.html#countcallssect">5.3.1. Counting Function Calls Made</a></span></dt><dt><span class="section"><a href="paracallgraph.html">5.3.2. Call Graph Tracing</a></span></dt><dt><span class="section"><a href="threadtimessect.html">5.3.3. Determining Time Spent in Kernel and User Space</a></span></dt><dt><span class="section"><a href="timeoutssect.html">5.3.4. Monitoring Polling Applications</a></span></dt><dt><span class="section"><a href="topsyssect.html">5.3.5. Tracking Most Frequently Used System Calls</a></span></dt><dt><span class="section"><a href="syscallsbyprocpidsect.html">5.3.6. Tracking System Call Volume Per Process</a></span></dt></dl></dd><dt><span class="section"><a href="futexcontentionsect.html">5.4. Identifying Contended User-Space Locks</a></span></dt></dl></dd><dt><span class="chapter"><a href="errors.html">6. Understanding SystemTap Errors</a></span></dt><dd><dl><dt><span class="section"><a href="errors.html#parsetype">6.1. Parse and Semantic Errors</a></span></dt><dt><span class="section"><a href="runtimeerror.html">6.2. Runtime Errors and Warnings</a></span></dt></dl></dd><dt><span class="chapter"><a href="references.html">7. References</a></span></dt><dt><span class="appendix"><a href="appe-Publican-Revision_History.html">A. Revision History</a></span></dt><dt><span class="index"><a href="ix01.html">Index</a></span></dt></dl></div></div><ul class="docnav"><li class="previous"></li><li class="next"><a accesskey="n" href="SystemTap_Beginners_Guide-Preface.html"><strong>Next</strong>Preface</a></li></ul></body></html>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.2.6. Monitoring Changes to File Attributes</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-disk.html" title="5.2. Disk" /><link rel="prev" href="inodewatchsect.html" title="5.2.5. Monitoring Reads and Writes to a File" /><link rel="next" href="ioblktimesect.html" title="5.2.7. Periodically Print I/O Block Time" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="inodewatchsect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="ioblktimesect.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h3 class="title"><a id="inodewatch2sect">
- </a>5.2.6. Monitoring Changes to File Attributes</h3></div></div></div><a id="idm47722953178624" class="indexterm"></a><a id="idm47722991056864" class="indexterm"></a><a id="idm47722994685072" class="indexterm"></a><a id="idm47722952022048" class="indexterm"></a><a id="idm47722995763920" class="indexterm"></a><div class="para">
+ </a>5.2.6. Monitoring Changes to File Attributes</h3></div></div></div><a id="idm47650169029184" class="indexterm"></a><a id="idm47650186626256" class="indexterm"></a><a id="idm47650188746416" class="indexterm"></a><a id="idm47650183577712" class="indexterm"></a><a id="idm47650154793408" class="indexterm"></a><div class="para">
This section describes how to monitor if any processes are changing the attributes of a targeted file, in real time.
</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">inodewatch2.stp</div>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.2.5. Monitoring Reads and Writes to a File</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-disk.html" title="5.2. Disk" /><link rel="prev" href="traceio2sect.html" title="5.2.4. I/O Monitoring (By Device)" /><link rel="next" href="inodewatch2sect.html" title="5.2.6. Monitoring Changes to File Attributes" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="traceio2sect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="inodewatch2sect.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h3 class="title"><a id="inodewatchsect">
- </a>5.2.5. Monitoring Reads and Writes to a File</h3></div></div></div><a id="idm47722990928912" class="indexterm"></a><a id="idm47722999196416" class="indexterm"></a><a id="idm47722957334960" class="indexterm"></a><a id="idm47722999816272" class="indexterm"></a><a id="idm47722957211120" class="indexterm"></a><a id="idm47723005669424" class="indexterm"></a><div class="para">
+ </a>5.2.5. Monitoring Reads and Writes to a File</h3></div></div></div><a id="idm47650195627504" class="indexterm"></a><a id="idm47650154795184" class="indexterm"></a><a id="idm47650193394784" class="indexterm"></a><a id="idm47650169030752" class="indexterm"></a><a id="idm47650187714336" class="indexterm"></a><a id="idm47650189173056" class="indexterm"></a><div class="para">
This section describes how to monitor reads from and writes to a file in real time.
</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">inodewatch.stp</div>
</pre>
</div><div class="para">
<a class="xref" href="inodewatchsect.html#inodewatch">inodewatch.stp</a> takes the following information about the file as arguments on the command line:
- </div><a id="idm47722993138368" class="indexterm"></a><a id="idm47722987927056" class="indexterm"></a><a id="idm47722998277104" class="indexterm"></a><a id="idm47722999390400" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para">
+ </div><a id="idm47650180952464" class="indexterm"></a><a id="idm47650183253648" class="indexterm"></a><a id="idm47650183219872" class="indexterm"></a><a id="idm47650185530096" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para">
The file's major device number.
</div></li><li class="listitem"><div class="para">
The file's minor device number.
</div></li><li class="listitem"><div class="para">
The file's <code class="command">inode</code> number.
- </div></li></ul></div><a id="idm47722987774320" class="indexterm"></a><a id="idm47722951191152" class="indexterm"></a><a id="idm47723004363376" class="indexterm"></a><div class="para">
+ </div></li></ul></div><a id="idm47650188916640" class="indexterm"></a><a id="idm47650196344272" class="indexterm"></a><a id="idm47650183146720" class="indexterm"></a><div class="para">
To get this information, use <code class="command">stat -c '%D %i' <em class="replaceable">filename</em></code>, where <code class="command"><em class="replaceable">filename</em></code> is an absolute path.
</div><div class="para">
For instance: to monitor <code class="filename">/etc/crontab</code>, run <code class="command">stat -c '%D %i' /etc/crontab</code> first. This gives the following output:
- </div><pre class="screen">805 1078319</pre><a id="idm47723005590544" class="indexterm"></a><a id="idm47722954410768" class="indexterm"></a><a id="idm47722999838160" class="indexterm"></a><div class="para">
+ </div><pre class="screen">805 1078319</pre><a id="idm47650191184800" class="indexterm"></a><a id="idm47650145401424" class="indexterm"></a><a id="idm47650191458016" class="indexterm"></a><div class="para">
<code class="computeroutput">805</code> is the base-16 (hexadecimal) device number. The lower two digits are the minor device number and the upper digits are the major number. <code class="computeroutput">1078319</code> is the <code class="command">inode</code> number. To start monitoring <code class="filename">/etc/crontab</code>, run <code class="command">stap inodewatch.stp 0x8 0x05 1078319</code> (The <code class="command">0x</code> prefixes indicate base-16 values.
</div><div class="para">
The output of this command contains the name and ID of any process performing a read/write, the function it is performing (that is, <code class="command">vfs_read</code> or <code class="command">vfs_write</code>), the device number (in hex format), and the <code class="command">inode</code> number. <a class="xref" href="inodewatchsect.html#inodewatchoutput">Example 5.10, “inodewatch.stp Sample Output”</a> contains the output of <code class="command">stap inodewatch.stp 0x8 0x05 1078319</code> (when <code class="command">cat /etc/crontab</code> is executed while the script is running) :
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">1.3. Limitations of SystemTap</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="introduction.html" title="Chapter 1. Introduction" /><link rel="prev" href="intro-systemtap-vs-others.html" title="1.2. SystemTap Capabilities" /><link rel="next" href="using-systemtap.html" title="Chapter 2. Using SystemTap" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="intro-systemtap-vs-others.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="using-systemtap.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="intro-systemtap-limitations">
- </a>1.3. Limitations of SystemTap</h2></div></div></div><a id="idm47723004038720" class="indexterm"></a><a id="idm47723004037312" class="indexterm"></a><div class="para">
+ </a>1.3. Limitations of SystemTap</h2></div></div></div><a id="idm47650150072848" class="indexterm"></a><a id="idm47650150071440" class="indexterm"></a><div class="para">
The current iteration of SystemTap allows for a multitude of options when probing kernel-space events for a wide range of kernels. However, SystemTap's ability to probe user-space events depends on kernel support (the Utrace mechanism) that is not available in many kernels. As a consequence, only some kernel versions support user-space probing.
</div><div class="para">
At present, the developmental efforts of the SystemTap community are geared towards improving SystemTap's user-space probing capabilities.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">1.2. SystemTap Capabilities</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="introduction.html" title="Chapter 1. Introduction" /><link rel="prev" href="introduction.html" title="Chapter 1. Introduction" /><link rel="next" href="intro-systemtap-limitations.html" title="1.3. Limitations of SystemTap" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="introduction.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="intro-systemtap-limitations.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="intro-systemtap-vs-others">
- </a>1.2. SystemTap Capabilities</h2></div></div></div><a id="idm47722994154992" class="indexterm"></a><a id="idm47722994153584" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para">
+ </a>1.2. SystemTap Capabilities</h2></div></div></div><a id="idm47650146824976" class="indexterm"></a><a id="idm47650187592272" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para">
<span class="strong strong"><strong>Flexibility:</strong></span> SystemTap's framework allows users to develop simple scripts for investigating and monitoring a wide variety of kernel functions, system calls, and other events that occur in kernel space. As a result, SystemTap is not so much a <span class="emphasis"><em>tool</em></span> as it is a system that allows you to develop your own kernel-specific forensic and monitoring tools.
</div></li><li class="listitem"><div class="para">
<span class="strong strong"><strong>Ease of use</strong></span>: as mentioned earlier, SystemTap allows users to probe kernel-space events without having to resort to instrument, recompile, install, and reboot the kernel.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Chapter 1. Introduction</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="pr01s02.html" title="2. We Need Feedback!" /><link rel="next" href="intro-systemtap-vs-others.html" title="1.2. SystemTap Capabilities" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="pr01s02.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="intro-systemtap-vs-others.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="chapter" lang="en-US"><div class="titlepage"><div><div><h1 class="title"><a id="introduction">
- </a>Chapter 1. Introduction</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="introduction.html#goals">1.1. Documentation Goals</a></span></dt><dt><span class="section"><a href="intro-systemtap-vs-others.html">1.2. SystemTap Capabilities</a></span></dt><dt><span class="section"><a href="intro-systemtap-limitations.html">1.3. Limitations of SystemTap</a></span></dt></dl></div><a id="idm47722956220384" class="indexterm"></a><a id="idm47722951230960" class="indexterm"></a><div class="para">
+ </a>Chapter 1. Introduction</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="introduction.html#goals">1.1. Documentation Goals</a></span></dt><dt><span class="section"><a href="intro-systemtap-vs-others.html">1.2. SystemTap Capabilities</a></span></dt><dt><span class="section"><a href="intro-systemtap-limitations.html">1.3. Limitations of SystemTap</a></span></dt></dl></div><a id="idm47650143512080" class="indexterm"></a><a id="idm47650151535056" class="indexterm"></a><div class="para">
SystemTap is a tracing and probing tool that allows users to study and monitor the activities of the computer system (particularly, the kernel) in fine detail. It provides information similar to the output of tools like <code class="command">netstat</code>, <code class="command">ps</code>, <code class="command">top</code>, and <code class="command">iostat</code>, but is designed to provide more filtering and analysis options for collected information.
</div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="goals">
- </a>1.1. Documentation Goals</h2></div></div></div><a id="idm47722993492224" class="indexterm"></a><a id="idm47722951456384" class="indexterm"></a><a id="idm47722949379872" class="indexterm"></a><a id="idm47722997707056" class="indexterm"></a><div class="para">
+ </a>1.1. Documentation Goals</h2></div></div></div><a id="idm47650148050896" class="indexterm"></a><a id="idm47650192212032" class="indexterm"></a><a id="idm47650198747760" class="indexterm"></a><a id="idm47650192619040" class="indexterm"></a><div class="para">
SystemTap provides the infrastructure to monitor the running Linux kernel for detailed analysis. This can assist administrators and developers in identifying the underlying cause of a bug or performance problem.
</div><div class="para">
Without SystemTap, monitoring the activity of a running kernel would require a tedious instrument, recompile, install, and reboot sequence. SystemTap is designed to eliminate this and allows users to gather the same information by running user-written SystemTap scripts.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.2.7. Periodically Print I/O Block Time</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-disk.html" title="5.2. Disk" /><link rel="prev" href="inodewatch2sect.html" title="5.2.6. Monitoring Changes to File Attributes" /><link rel="next" href="mainsect-profiling.html" title="5.3. Profiling" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="inodewatch2sect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="mainsect-profiling.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h3 class="title"><a id="ioblktimesect">
- </a>5.2.7. Periodically Print I/O Block Time</h3></div></div></div><a id="idm47722988090192" class="indexterm"></a><a id="idm47723001459184" class="indexterm"></a><a id="idm47723001311568" class="indexterm"></a><a id="idm47723001835024" class="indexterm"></a><a id="idm47723001414592" class="indexterm"></a><div class="para">
+ </a>5.2.7. Periodically Print I/O Block Time</h3></div></div></div><a id="idm47650197157744" class="indexterm"></a><a id="idm47650186991552" class="indexterm"></a><a id="idm47650192345360" class="indexterm"></a><a id="idm47650196316192" class="indexterm"></a><a id="idm47650190327168" class="indexterm"></a><div class="para">
This section describes how to track the amount of time each block I/O requests spends waiting for completion. This is useful in determining whether there are too many outstanding block I/O operations at any given time.
</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">ioblktime.stp</div>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.2.2. Tracking I/O Time For Each File Read or Write</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-disk.html" title="5.2. Disk" /><link rel="prev" href="mainsect-disk.html" title="5.2. Disk" /><link rel="next" href="traceiosect.html" title="5.2.3. Track Cumulative IO" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="mainsect-disk.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="traceiosect.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h3 class="title"><a id="iotimesect">
- </a>5.2.2. Tracking I/O Time For Each File Read or Write</h3></div></div></div><a id="idm47722960582208" class="indexterm"></a><a id="idm47722949627776" class="indexterm"></a><a id="idm47722955124256" class="indexterm"></a><a id="idm47722990945856" class="indexterm"></a><a id="idm47723005372624" class="indexterm"></a><div class="para">
+ </a>5.2.2. Tracking I/O Time For Each File Read or Write</h3></div></div></div><a id="idm47650190456912" class="indexterm"></a><a id="idm47650187707856" class="indexterm"></a><a id="idm47650148428720" class="indexterm"></a><a id="idm47650196105200" class="indexterm"></a><a id="idm47650180951632" class="indexterm"></a><div class="para">
This section describes how to monitor the amount of time it takes for each process to read from or write to any file. This is useful to determine what files are slow to load on a given system.
</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">iotime.stp</div>
</pre>
</div><div class="para">
<a class="xref" href="iotimesect.html#iotime">iotime.stp</a> tracks each time a system call opens, closes, reads from, and writes to a file. For each file any system call accesses, <a class="xref" href="iotimesect.html#iotime">iotime.stp</a> counts the number of microseconds it takes for any reads or writes to finish and tracks the amount of data (in bytes) read from or written to the file.
- </div><a id="idm47722990821712" class="indexterm"></a><a id="idm47722951202160" class="indexterm"></a><a id="idm47722954907552" class="indexterm"></a><div class="para">
+ </div><a id="idm47650154845040" class="indexterm"></a><a id="idm47650197292288" class="indexterm"></a><a id="idm47650193547456" class="indexterm"></a><div class="para">
<a class="xref" href="iotimesect.html#iotime">iotime.stp</a> also uses the local variable <code class="command">$count</code> to track the amount of data (in bytes) that any system call <span class="emphasis"><em>attempts</em></span> to read or write. Note that <code class="command">$return</code> (as used in <a class="xref" href="mainsect-disk.html#scriptdisktop">disktop.stp</a> from <a class="xref" href="mainsect-disk.html#disktop">Section 5.2.1, “Summarizing Disk Read/Write Traffic”</a>) stores the <span class="emphasis"><em>actual</em></span> amount of data read/written. <code class="command">$count</code> can only be used on probes that track data reads or writes (that is, <code class="command">syscall.read</code> and <code class="command">syscall.write</code>).
</div><div class="example"><a id="iotimeoutput">
</a><p class="title"><strong>Example 5.7. <a class="xref" href="iotimesect.html#iotime">iotime.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen">[...]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Index</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="appe-Publican-Revision_History.html" title="Appendix A. Revision History" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="appe-Publican-Revision_History.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"></li></ul><div class="index"><div class="titlepage"><div><div><h1 class="title"><a id="idm47723009871504">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Index</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="appe-Publican-Revision_History.html" title="Appendix A. Revision History" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="appe-Publican-Revision_History.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"></li></ul><div class="index"><div class="titlepage"><div><div><h1 class="title"><a id="idm47650148145472">
</a>Index</h1></div></div></div><div class="index"><div class="indexdiv"><h3>Symbols</h3><dl><dt>$count</dt><dd><dl><dt>sample usage</dt><dd><dl><dt>local variables, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt></dl></dd></dl></dd><dt>$return</dt><dd><dl><dt>sample usage</dt><dd><dl><dt>local variables, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a>, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd></dl></dd><dt>@avg (integer extractor)</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>@count (integer extractor)</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>@max (integer extractor)</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>@min (integer extractor)</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>@sum (integer extractor)</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>A</h3><dl><dt>adding values to statistical aggregates</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>advantages of cross-instrumentation, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>aggregate element not found</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>aggregates (statistical)</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd><dt>aggregation overflow</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>algebraic formulas using arrays</dt><dd><dl><dt>reading values from arrays</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>architecture notation, determining, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>architecture of SystemTap, <a class="indexterm" href="understanding-how-systemtap-works.html#understanding-architecture-tools">Architecture</a></dt><dt>array locals not supported</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>array operations</dt><dd><dl><dt>assigning associated values, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt><dd><dl><dt>associating timestamps to process names, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd><dt>associative arrays, <a class="indexterm" href="arrayoperators.html">Array Operations in SystemTap</a></dt><dt>clearing arrays/array elements, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dd><dl><dt>delete operator, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>multiple array operations within the same probe, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>virtual file system reads (non-cumulative), tallying, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt></dl></dd><dt>computing for statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dd><dl><dt>@avg (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@count (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@max (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@min (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@sum (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>adding values to statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>count (operator), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>extracting data collected by statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd><dt>conditional statements, using arrays in, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt><dd><dl><dt>testing for array membership, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt></dl></dd><dt>deleting arrays and array elements, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>incrementing associated values, <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt><dd><dl><dt>tallying virtual file system reads (VFS reads), <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt></dl></dd><dt>multiple elements in an array, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>processing multiple elements in an array, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dd><dl><dt>cumulative virtual file system reads, tallying, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>foreach, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>iterations, processing elements in an array as, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>limiting the output of foreach, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>ordering the output of foreach, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd><dt>reading values from arrays, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dd><dl><dt>computing for timestamp deltas, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dt>empty unique keys, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dt>using arrays in simple computations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dd><dl><dt>(see also associative arrays)</dt></dl></dd><dt>assigning associated values</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt><dd><dl><dt>associating timestamps to process names, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd><dt>associating timestamps to process names</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd></dl></dd><dt>associated values</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>associating timestamps to process names</dt><dd><dl><dt>assigning associated values</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd></dl></dd><dt>associative arrays</dt><dd><dl><dt>introduction, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dd><dl><dt>associated values, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dt>example, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dt>index expression, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dt>key pairs, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dt>syntax, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dt>unique keys, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>asynchronous events</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>B</h3><dl><dt>begin</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>building instrumentation modules from SystemTap scripts, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>building kernel modules from SystemTap scripts, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></div><div class="indexdiv"><h3>C</h3><dl><dt>call graph tracing</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>capabilities of SystemTap</dt><dd><dl><dt>Introduction, <a class="indexterm" href="intro-systemtap-vs-others.html">SystemTap Capabilities</a></dt></dl></dd><dt>changes to file attributes, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatch2sect.html">Monitoring Changes to File Attributes</a></dt></dl></dd><dt>clearing arrays/array elements</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dd><dl><dt>delete operator, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>multiple array operations within the same probe, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>virtual file system reads (non-cumulative), tallying, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt></dl></dd></dl></dd><dt>command-line arguments</dt><dd><dl><dt>SystemTap handler constructs</dt><dd><dl><dt>handlers, <a class="indexterm" href="commandlineargssect.html">Command-Line Arguments</a></dt></dl></dd></dl></dd><dt>compiling instrumentation/kernel modules from SystemTap scripts, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>components</dt><dd><dl><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dd><dl><dt>@avg (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@count (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@max (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@min (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@sum (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>adding values to statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>count (operator), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>extracting data collected by statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>computing for timestamp deltas</dt><dd><dl><dt>reading values from arrays</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>conditional operators</dt><dd><dl><dt>conditional statements</dt><dd><dl><dt>handlers, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt></dl></dd></dl></dd><dt>conditional statements, using arrays in</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt><dd><dl><dt>testing for array membership, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt></dl></dd></dl></dd><dt>CONFIG_HZ, computing for, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt><dt>contended user-space locks (futex contentions), identifying</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt></dl></dd><dt>copy fault</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>count operator</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array (operator), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>counting function calls</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt></dl></dd><dt>CPU ticks</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt></dl></dd><dt>cpu()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>cross-compiling, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>cross-instrumentation</dt><dd><dl><dt>advantages of, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>building kernel modules from SystemTap scripts, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>configuration</dt><dd><dl><dt>host system and target system, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>generating instrumentation from SystemTap scripts, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>host system, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>instrumentation module, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>target kernel, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>target system, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>ctime()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>ctime(), example of usage</dt><dd><dl><dt>script examples, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt></dl></dd><dt>cumulative I/O, tracking</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd><dt>cumulative virtual file system reads, tallying</dt><dd><dl><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>D</h3><dl><dt>delete operator</dt><dd><dl><dt>clearing arrays/array elements</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt></dl></dd></dl></dd><dt>determining architecture notation, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>determining the kernel version, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>determining time spent in kernel and user space</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt></dl></dd><dt>device I/O, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>device number of a file (integer format)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>disk I/O traffic, summarizing</dt><dd><dl><dt>script examples, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt></dl></dd><dt>division by 0</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>documentation goals</dt><dd><dl><dt>Introduction, <a class="indexterm" href="introduction.html#goals">Documentation Goals</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>E</h3><dl><dt>embedded code in unprivileged script</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>empty unique keys</dt><dd><dl><dt>reading values from arrays</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>end</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>errors</dt><dd><dl><dt>parse/semantics error, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dd><dl><dt>embedded code in unprivileged script, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>expected symbol/array index expression, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>grammatical/typographical script error, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>guru mode, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>invalid values to variables/arrays, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>libdwfl failure, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>no match for probe point, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>non-global arrays, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>probe mismatch, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>type mismatch for identifier, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved function call, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved target-symbol expression, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved type for identifier, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>variable modified during 'foreach', <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd><dt>runtime errors/warnings, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dd><dl><dt>aggregate element not found, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>aggregation overflow, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>copy fault, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>division by 0, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>MAXACTION exceeded, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>MAXNESTING exceeded, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>number of errors: N, skipped probes: M, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>pointer dereference fault, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>event types</dt><dd><dl><dt>Understanding How SystemTap Works, <a class="indexterm" href="understanding-how-systemtap-works.html">Understanding How SystemTap Works</a></dt></dl></dd><dt>Events</dt><dd><dl><dt>asynchronous events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>begin, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>end, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>examples of synchronous and asynchronous events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>introduction, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>kernel.function("function"), <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>kernel.trace("tracepoint"), <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>module("module"), <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>synchronous events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>syscall.system_call, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>timer events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>user-space, <a class="indexterm" href="userspace-probing.html#uevents">User-Space Events</a></dt><dt>vfs.file_operation, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>wildcards, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>events and handlers, <a class="indexterm" href="understanding-how-systemtap-works.html">Understanding How SystemTap Works</a></dt><dt>events wildcards, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>example</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>example of multiple command-line arguments</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>examples of synchronous and asynchronous events</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html">Useful SystemTap Scripts</a></dt><dd><dl><dt>call graph tracing, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>CPU ticks, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt><dt>ctime(), example of usage, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt><dt>determining time spent in kernel and user space, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt><dt>file device number (integer format), <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>futex (lock) contentions, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt><dt>futex system call, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt><dt>identifying contended user-space locks (futex contentions), <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt><dt>if/else conditionals, alternative syntax, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a></dt><dt>inode number, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>monitoring changes to file attributes, <a class="indexterm" href="inodewatch2sect.html">Monitoring Changes to File Attributes</a></dt><dt>monitoring device I/O, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt><dt>monitoring I/O block time, <a class="indexterm" href="ioblktimesect.html">Periodically Print I/O Block Time</a></dt><dt>monitoring I/O time, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt><dt>monitoring incoming TCP connections, <a class="indexterm" href="useful-systemtap-scripts.html#tcpconnectionssect">Monitoring Incoming TCP Connections</a></dt><dt>monitoring polling applications, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a></dt><dt>monitoring reads and writes to a file, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>monitoring system calls, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt><dt>monitoring system calls (volume per process), <a class="indexterm" href="syscallsbyprocpidsect.html">Tracking System Call Volume Per Process</a></dt><dt>monitoring TCP packets, <a class="indexterm" href="useful-systemtap-scripts.html#tcpdumplikesect">Monitoring TCP Packets</a></dt><dt>multiple command-line arguments, example of, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>net/socket.c, tracing functions from, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt><dt>network profiling, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a>, <a class="indexterm" href="useful-systemtap-scripts.html#dropwatchsect">Monitoring Network Packets Drops in Kernel</a></dt><dt>stat -c, determining file device number (integer format), <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>stat -c, determining whole device number, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt><dt>summarizing disk I/O traffic, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt><dt>tallying function calls, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt><dt>thread_indent(), sample usage, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>timer.ms(), sample usage, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt><dt>timer.s(), sample usage, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a>, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt><dt>tracing functions called in network socket code, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt><dt>tracking cumulative I/O, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt><dt>trigger function, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>usrdev2kerndev(), <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt><dt>whole device number (usage as a command-line argument), <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>exceeded MAXACTION</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>exceeded MAXNESTING</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>exit()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>expected symbol/array index expression</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>extracting data collected by statistical aggregates</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>F</h3><dl><dt>feedback</dt><dd><dl><dt>contact information for this manual, <a class="indexterm" href="pr01s02.html">We Need Feedback!</a></dt></dl></dd><dt>file attributes, monitoring changes to</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatch2sect.html">Monitoring Changes to File Attributes</a></dt></dl></dd><dt>file device number (integer format)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>file reads/writes, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>flight recorder mode, <a class="indexterm" href="using-usage.html#flight-recorder">SystemTap Flight Recorder Mode</a></dt><dd><dl><dt>file mode, <a class="indexterm" href="using-usage.html#file-flight-recorder">File Flight Recorder</a></dt><dt>in-memory mode, <a class="indexterm" href="using-usage.html#memory-flight-recorder">In-memory Flight Recorder</a></dt></dl></dd><dt>for loops</dt><dd><dl><dt>conditional statements</dt><dd><dl><dt>handlers, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt></dl></dd></dl></dd><dt>foreach</dt><dd><dl><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd><dt>format</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>format and syntax</dt><dd><dl><dt>printf(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>SystemTap handler constructs</dt><dd><dl><dt>handlers, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt></dl></dd><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>format specifiers</dt><dd><dl><dt>printf(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>format strings</dt><dd><dl><dt>printf(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>function call (unresolved)</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>function calls (incoming/outgoing), tracing</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>function calls, tallying</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt></dl></dd><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dd><dl><dt>cpu(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>ctime(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>gettimeofday_s(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>pp(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd><dt>target(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>thread_indent(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>tid(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>uid(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>functions (used in handlers)</dt><dd><dl><dt>exit(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>functions called in network socket code, tracing</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt></dl></dd><dt>futex (lock) contentions</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt></dl></dd><dt>futex contention, definition</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt></dl></dd><dt>futex contentions, identifying</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt></dl></dd><dt>futex system call</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>G</h3><dl><dt>gettimeofday_s()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>global</dt><dd><dl><dt>SystemTap handler constructs</dt><dd><dl><dt>handlers, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt></dl></dd></dl></dd><dt>goals, documentation</dt><dd><dl><dt>Introduction, <a class="indexterm" href="introduction.html#goals">Documentation Goals</a></dt></dl></dd><dt>grammatical/typographical script error</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>guru mode</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>H</h3><dl><dt>handler functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>handlers</dt><dd><dl><dt>conditional statements, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dd><dl><dt>conditional operators, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dt>for loops, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dt>if/else, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dt>while loops, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt></dl></dd><dt>introduction, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>SystemTap handler constructs, <a class="indexterm" href="scriptconstructions.html">Basic SystemTap Handler Constructs</a></dt><dd><dl><dt>command-line arguments, <a class="indexterm" href="commandlineargssect.html">Command-Line Arguments</a></dt><dt>global, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt><dt>syntax and format, <a class="indexterm" href="scriptconstructions.html">Basic SystemTap Handler Constructs</a></dt><dt>variable notations, <a class="indexterm" href="commandlineargssect.html">Command-Line Arguments</a></dt><dt>variables, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt></dl></dd><dt>target variables, <a class="indexterm" href="targetvariables.html">Target Variables</a></dt></dl></dd><dt>handlers and events, <a class="indexterm" href="understanding-how-systemtap-works.html">Understanding How SystemTap Works</a></dt><dd><dl><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>heaviest disk reads/writes, identifying</dt><dd><dl><dt>script examples, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt></dl></dd><dt>host system</dt><dd><dl><dt>cross-instrumentation, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>host system and target system</dt><dd><dl><dt>cross-instrumentation</dt><dd><dl><dt>configuration, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>I</h3><dl><dt>I/O block time, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="ioblktimesect.html">Periodically Print I/O Block Time</a></dt></dl></dd><dt>I/O monitoring (by device)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>I/O time, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt></dl></dd><dt>I/O traffic, summarizing</dt><dd><dl><dt>script examples, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt></dl></dd><dt>identifier type mismatch</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>identifying contended user-space locks (futex contentions)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt></dl></dd><dt>identifying heaviest disk reads/writes</dt><dd><dl><dt>script examples, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt></dl></dd><dt>if/else</dt><dd><dl><dt>conditional statements</dt><dd><dl><dt>handlers, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt></dl></dd></dl></dd><dt>if/else conditionals, alternative syntax</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a></dt></dl></dd><dt>if/else statements, using arrays in</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt></dl></dd><dt>incoming TCP connections, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#tcpconnectionssect">Monitoring Incoming TCP Connections</a></dt></dl></dd><dt>incoming/outgoing function calls, tracing</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>incrementing associated values</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt><dd><dl><dt>tallying virtual file system reads (VFS reads), <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt></dl></dd></dl></dd><dt>index expression</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>initial testing, <a class="indexterm" href="using-systemtap.html#testing">Initial Testing</a></dt><dt>inode number</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>Installation</dt><dd><dl><dt>initial testing, <a class="indexterm" href="using-systemtap.html#testing">Initial Testing</a></dt><dt>kernel information packages, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>kernel version, determining the, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>required packages, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>Setup and Installation, <a class="indexterm" href="using-systemtap.html#using-setup">Installation and Setup</a></dt><dt>systemtap package, <a class="indexterm" href="using-systemtap.html#installproper">Installing SystemTap</a></dt><dt>systemtap-runtime package, <a class="indexterm" href="using-systemtap.html#installproper">Installing SystemTap</a></dt></dl></dd><dt>instrumentation module</dt><dd><dl><dt>cross-instrumentation, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>instrumentation modules from SystemTap scripts, building, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>integer extractors</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>Introduction</dt><dd><dl><dt>capabilities of SystemTap, <a class="indexterm" href="intro-systemtap-vs-others.html">SystemTap Capabilities</a></dt><dt>documentation goals, <a class="indexterm" href="introduction.html#goals">Documentation Goals</a></dt><dt>goals, documentation, <a class="indexterm" href="introduction.html#goals">Documentation Goals</a></dt><dt>limitations of SystemTap, <a class="indexterm" href="intro-systemtap-limitations.html">Limitations of SystemTap</a></dt><dt>performance monitoring, <a class="indexterm" href="introduction.html">Introduction</a></dt></dl></dd><dt>invalid division</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>invalid values to variables/arrays</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>iterations, processing elements in an array as</dt><dd><dl><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>K</h3><dl><dt>kernel and user space, determining time spent in</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt></dl></dd><dt>kernel information packages, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>kernel modules from SystemTap scripts, building, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>kernel version, determining the, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>kernel.function("function")</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>kernel.trace("tracepoint")</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>key pairs</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>L</h3><dl><dt>libdwfl failure</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>limitations of SystemTap</dt><dd><dl><dt>Introduction, <a class="indexterm" href="intro-systemtap-limitations.html">Limitations of SystemTap</a></dt></dl></dd><dt>limiting the output of foreach</dt><dd><dl><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd><dt>local variables</dt><dd><dl><dt>name, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>sample usage</dt><dd><dl><dt>$count, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt><dt>$return, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a>, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>M</h3><dl><dt>MAXACTION exceeded</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>MAXNESTING exceeded</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>membership (in array), testing for</dt><dd><dl><dt>conditional statements, using arrays in</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt></dl></dd></dl></dd><dt>module("module")</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>monitoring changes to file attributes</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatch2sect.html">Monitoring Changes to File Attributes</a></dt></dl></dd><dt>monitoring cumulative I/O</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd><dt>monitoring device I/O</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>monitoring I/O block time</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="ioblktimesect.html">Periodically Print I/O Block Time</a></dt></dl></dd><dt>monitoring I/O time</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt></dl></dd><dt>monitoring incoming TCP connections</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#tcpconnectionssect">Monitoring Incoming TCP Connections</a></dt></dl></dd><dt>monitoring polling applications</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a></dt></dl></dd><dt>monitoring reads and writes to a file</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>monitoring system calls</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt></dl></dd><dt>monitoring system calls (volume per process)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="syscallsbyprocpidsect.html">Tracking System Call Volume Per Process</a></dt></dl></dd><dt>monitoring TCP packets</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#tcpdumplikesect">Monitoring TCP Packets</a></dt></dl></dd><dt>multiple array operations within the same probe</dt><dd><dl><dt>clearing arrays/array elements</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt></dl></dd></dl></dd><dt>multiple command-line arguments, example of</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>N</h3><dl><dt>name</dt><dd><dl><dt>local variables, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>net/socket.c, tracing functions from</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt></dl></dd><dt>network profiling</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a>, <a class="indexterm" href="useful-systemtap-scripts.html#dropwatchsect">Monitoring Network Packets Drops in Kernel</a></dt></dl></dd><dt>network socket code, tracing functions called in</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt></dl></dd><dt>network traffic, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a>, <a class="indexterm" href="useful-systemtap-scripts.html#dropwatchsect">Monitoring Network Packets Drops in Kernel</a></dt></dl></dd><dt>no match for probe point</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>non-global arrays</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>number of errors: N, skipped probes: M</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>O</h3><dl><dt>operations</dt><dd><dl><dt>assigning associated values</dt><dd><dl><dt>associating timestamps to process names, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd><dt>associative arrays, <a class="indexterm" href="arrayoperators.html">Array Operations in SystemTap</a></dt><dt>clearing arrays/array elements, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dd><dl><dt>delete operator, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>multiple array operations within the same probe, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>virtual file system reads (non-cumulative), tallying, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt></dl></dd><dt>computing for statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dd><dl><dt>@avg (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@count (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@max (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@min (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@sum (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>adding values to statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>count (operator), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>extracting data collected by statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd><dt>conditional statements, using arrays in, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt><dd><dl><dt>testing for array membership, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt></dl></dd><dt>deleting arrays and array elements, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>incrementing associated values, <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt><dd><dl><dt>tallying virtual file system reads (VFS reads), <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt></dl></dd><dt>multiple elements in an array, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>processing multiple elements in an array, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dd><dl><dt>cumulative virtual file system reads, tallying, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>foreach, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>iterations, processing elements in an array as, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>limiting the output of foreach, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>ordering the output of foreach, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd><dt>reading values from arrays, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dd><dl><dt>computing for timestamp deltas, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dt>empty unique keys, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dt>using arrays in simple computations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>options, stap</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>ordering the output of foreach</dt><dd><dl><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd><dt>overflow of aggregation</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>P</h3><dl><dt>packages required to run SystemTap, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dd><dl><dt>embedded code in unprivileged script, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>expected symbol/array index expression, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>grammatical/typographical script error, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>guru mode, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>invalid values to variables/arrays, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>libdwfl failure, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>no match for probe point, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>non-global arrays, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>probe mismatch, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>type mismatch for identifier, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved function call, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved target-symbol expression, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved type for identifier, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>variable modified during 'foreach', <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>performance monitoring</dt><dd><dl><dt>Introduction, <a class="indexterm" href="introduction.html">Introduction</a></dt></dl></dd><dt>pointer dereference fault</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>polling applications, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a></dt></dl></dd><dt>pp()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>printf()</dt><dd><dl><dt>format specifiers, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>format strings, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>syntax and format, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>printing I/O activity (cumulative)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd><dt>printing I/O block time (periodically)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="ioblktimesect.html">Periodically Print I/O Block Time</a></dt></dl></dd><dt>probe mismatch</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>probe point (no match for)</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>probes</dt><dd><dl><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>cumulative virtual file system reads, tallying</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd><dt>foreach</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd><dt>limiting the output of foreach</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd><dt>ordering the output of foreach</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd><dt>profiling the network</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a>, <a class="indexterm" href="useful-systemtap-scripts.html#dropwatchsect">Monitoring Network Packets Drops in Kernel</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>R</h3><dl><dt>reading values from arrays</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dd><dl><dt>empty unique keys, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dt>using arrays in simple computations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd><dt>computing for timestamp deltas</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>reads/writes to a file, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>required packages, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>RPMs required to run SystemTap, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>running scripts from standard input, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>running SystemTap scripts</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dd><dl><dt>aggregate element not found, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>aggregation overflow, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>copy fault, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>division by 0, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>MAXACTION exceeded, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>MAXNESTING exceeded, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>number of errors: N, skipped probes: M, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>pointer dereference fault, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>S</h3><dl><dt>script examples</dt><dd><dl><dt>call graph tracing, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>CPU ticks, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt><dt>ctime(), example of usage, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt><dt>determining time spent in kernel and user space, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt><dt>file device number (integer format), <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>futex (lock) contentions, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt><dt>futex system call, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt><dt>identifying contended user-space locks (futex contentions), <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt><dt>if/else conditionals, alternative syntax, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a></dt><dt>inode number, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>monitoring changes to file attributes, <a class="indexterm" href="inodewatch2sect.html">Monitoring Changes to File Attributes</a></dt><dt>monitoring device I/O, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt><dt>monitoring I/O block time, <a class="indexterm" href="ioblktimesect.html">Periodically Print I/O Block Time</a></dt><dt>monitoring I/O time, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt><dt>monitoring incoming TCP connections, <a class="indexterm" href="useful-systemtap-scripts.html#tcpconnectionssect">Monitoring Incoming TCP Connections</a></dt><dt>monitoring polling applications, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a></dt><dt>monitoring reads and writes to a file, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>monitoring system calls, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt><dt>monitoring system calls (volume per process), <a class="indexterm" href="syscallsbyprocpidsect.html">Tracking System Call Volume Per Process</a></dt><dt>monitoring TCP packets, <a class="indexterm" href="useful-systemtap-scripts.html#tcpdumplikesect">Monitoring TCP Packets</a></dt><dt>multiple command-line arguments, example of, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>net/socket.c, tracing functions from, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt><dt>network profiling, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a>, <a class="indexterm" href="useful-systemtap-scripts.html#dropwatchsect">Monitoring Network Packets Drops in Kernel</a></dt><dt>stat -c, determining file device number (integer format), <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>stat -c, determining whole device number, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt><dt>summarizing disk I/O traffic, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt><dt>tallying function calls, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt><dt>thread_indent(), sample usage, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>timer.ms(), sample usage, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt><dt>timer.s(), sample usage, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a>, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt><dt>tracing functions called in network socket code, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt><dt>tracking cumulative I/O, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt><dt>trigger function, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>usrdev2kerndev(), <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt><dt>whole device number (usage as a command-line argument), <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dd><dl><dt>components, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>events and handlers, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>format and syntax, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>functions, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>probes, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>statement blocks, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>sessions, SystemTap, <a class="indexterm" href="understanding-how-systemtap-works.html#understanding-architecture-tools">Architecture</a></dt><dt>Setup and Installation, <a class="indexterm" href="using-systemtap.html#using-setup">Installation and Setup</a></dt><dt>Stack backtrace</dt><dd><dl><dt>user-space, <a class="indexterm" href="ustack.html">User-Space Stack Backtraces</a></dt></dl></dd><dt>standard input, running scripts from</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>stap</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>stap options, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>stapdev</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>staprun</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>stapusr</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>stat -c, determining file device number (integer format)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>stat -c, determining whole device number</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>statement blocks</dt><dd><dl><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd><dt>summarizing disk I/O traffic</dt><dd><dl><dt>script examples, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt></dl></dd><dt>synchronous events</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>syntax</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>syntax and format</dt><dd><dl><dt>printf(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>SystemTap handler constructs</dt><dd><dl><dt>handlers, <a class="indexterm" href="scriptconstructions.html">Basic SystemTap Handler Constructs</a></dt></dl></dd><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>syscall.system_call</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>system calls volume (per process), monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="syscallsbyprocpidsect.html">Tracking System Call Volume Per Process</a></dt></dl></dd><dt>system calls, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt></dl></dd><dt>SystemTap architecture, <a class="indexterm" href="understanding-how-systemtap-works.html#understanding-architecture-tools">Architecture</a></dt><dt>SystemTap handlers</dt><dd><dl><dt>SystemTap handler constructs, <a class="indexterm" href="scriptconstructions.html">Basic SystemTap Handler Constructs</a></dt><dd><dl><dt>syntax and format, <a class="indexterm" href="scriptconstructions.html">Basic SystemTap Handler Constructs</a></dt></dl></dd></dl></dd><dt>systemtap package, <a class="indexterm" href="using-systemtap.html#installproper">Installing SystemTap</a></dt><dt>SystemTap script functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dd><dl><dt>components, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>events and handlers, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>format and syntax, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>functions, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>probes, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>statement blocks, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd><dt>useful examples, <a class="indexterm" href="useful-systemtap-scripts.html">Useful SystemTap Scripts</a></dt></dl></dd><dt>SystemTap scripts, how to run, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>SystemTap sessions, <a class="indexterm" href="understanding-how-systemtap-works.html#understanding-architecture-tools">Architecture</a></dt><dt>SystemTap statements</dt><dd><dl><dt>conditional statements, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dd><dl><dt>conditional operators, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dt>for loops, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dt>if/else, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dt>while loops, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt></dl></dd><dt>SystemTap handler constructs</dt><dd><dl><dt>command-line arguments, <a class="indexterm" href="commandlineargssect.html">Command-Line Arguments</a></dt><dt>global, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt><dt>variable notations, <a class="indexterm" href="commandlineargssect.html">Command-Line Arguments</a></dt><dt>variables, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt></dl></dd></dl></dd><dt>systemtap-runtime package, <a class="indexterm" href="using-systemtap.html#installproper">Installing SystemTap</a></dt><dt>systemtap-testsuite package</dt><dd><dl><dt>sample scripts, <a class="indexterm" href="useful-systemtap-scripts.html">Useful SystemTap Scripts</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>T</h3><dl><dt>tallying function calls</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt></dl></dd><dt>tallying virtual file system reads (VFS reads)</dt><dd><dl><dt>incrementing associated values</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt></dl></dd></dl></dd><dt>Tapsets</dt><dd><dl><dt>definition of, <a class="indexterm" href="understanding-tapsets.html">Tapsets</a></dt></dl></dd><dt>target kernel</dt><dd><dl><dt>cross-instrumentation, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>target system</dt><dd><dl><dt>cross-instrumentation, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>target system and host system</dt><dd><dl><dt>configuration, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>target variables, <a class="indexterm" href="targetvariables.html">Target Variables</a></dt><dd><dl><dt>pretty printing, <a class="indexterm" href="targetvariables.html#targetprettyprinting">Pretty Printing Target Variables</a></dt><dt>typecasting, <a class="indexterm" href="typecasting.html">Typecasting</a></dt><dt>user-space, <a class="indexterm" href="utargetvariable.html">Accessing User-Space Target Variables</a></dt><dt>variable availability, <a class="indexterm" href="targetavailable.html">Checking Target Variable Availability</a></dt></dl></dd><dt>target()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>target-symbol expression, unresolved</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>TCP connections (incoming), monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#tcpconnectionssect">Monitoring Incoming TCP Connections</a></dt></dl></dd><dt>TCP packets, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#tcpdumplikesect">Monitoring TCP Packets</a></dt></dl></dd><dt>testing for array membership</dt><dd><dl><dt>conditional statements, using arrays in</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt></dl></dd></dl></dd><dt>testing, initial, <a class="indexterm" href="using-systemtap.html#testing">Initial Testing</a></dt><dt>thread_indent()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>thread_indent(), sample usage</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>tid()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>time of I/O </dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt></dl></dd><dt>time spent in kernel/user space, determining</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt></dl></dd><dt>timer events</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>timer.ms(), sample usage</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt></dl></dd><dt>timer.s(), sample usage</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a>, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt></dl></dd><dt>timestamp deltas, computing for</dt><dd><dl><dt>reading values from arrays</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>timestamps, association thereof to process names</dt><dd><dl><dt>assigning associated values</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd></dl></dd><dt>tracepoint, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a>, <a class="indexterm" href="useful-systemtap-scripts.html#dropwatchsect">Monitoring Network Packets Drops in Kernel</a></dt><dt>tracing call graph</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>tracing functions called in network socket code</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt></dl></dd><dt>tracing incoming/outgoing function calls</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>tracking cumulative I/O</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd><dt>trigger function</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>type mismatch for identifier</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>typographical script error</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>U</h3><dl><dt>uid()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>uname -m, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>uname -r, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>understainding SystemTap errors</dt><dd><dl><dt>runtime errors/warnings, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dd><dl><dt>aggregate element not found, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>aggregation overflow, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>copy fault, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>division by 0, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>MAXACTION exceeded, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>MAXNESTING exceeded, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>number of errors: N, skipped probes: M, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>pointer dereference fault, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>Understanding How SystemTap Works, <a class="indexterm" href="understanding-how-systemtap-works.html">Understanding How SystemTap Works</a></dt><dd><dl><dt>architecture, <a class="indexterm" href="understanding-how-systemtap-works.html#understanding-architecture-tools">Architecture</a></dt><dt>event types, <a class="indexterm" href="understanding-how-systemtap-works.html">Understanding How SystemTap Works</a></dt><dt>events and handlers, <a class="indexterm" href="understanding-how-systemtap-works.html">Understanding How SystemTap Works</a></dt><dt>SystemTap sessions, <a class="indexterm" href="understanding-how-systemtap-works.html#understanding-architecture-tools">Architecture</a></dt></dl></dd><dt>understanding SystemTap errors</dt><dd><dl><dt>parse/semantics error, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dd><dl><dt>embedded code in unprivileged script, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>expected symbol/array index expression, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>grammatical/typographical script error, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>guru mode, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>invalid values to variables/arrays, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>libdwfl failure, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>no match for probe point, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>non-global arrays, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>probe mismatch, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>type mismatch for identifier, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved function call, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved target-symbol expression, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved type for identifier, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>variable modified during 'foreach', <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>unique keys</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>unprivileged script, embedded code in</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>unresolved function call</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>unresolved target-symbol expression</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>unresolved type for identifier</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>unsafe embedded code in unprivileged script</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>Usage</dt><dd><dl><dt>options, stap, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>running SystemTap scripts, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>standard input, running scripts from, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>stap, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>stapdev, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>staprun, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>stapusr, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>useful examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html">Useful SystemTap Scripts</a></dt><dt>user and kernel space, determining time spent in</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt></dl></dd><dt>using arrays in simple computations</dt><dd><dl><dt>reading values from arrays</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>Using SystemTap, <a class="indexterm" href="using-systemtap.html">Using SystemTap</a></dt><dt>usrdev2kerndev()</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>V</h3><dl><dt>values, assignment of</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd><dt>variable modified during 'foreach'</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>variable notations</dt><dd><dl><dt>SystemTap handler constructs</dt><dd><dl><dt>handlers, <a class="indexterm" href="commandlineargssect.html">Command-Line Arguments</a></dt></dl></dd></dl></dd><dt>variables</dt><dd><dl><dt>SystemTap handler constructs</dt><dd><dl><dt>handlers, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt></dl></dd></dl></dd><dt>variables (local)</dt><dd><dl><dt>name, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>sample usage</dt><dd><dl><dt>$count, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt><dt>$return, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a>, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd></dl></dd><dt>VFS reads, tallying of</dt><dd><dl><dt>incrementing associated values</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt></dl></dd></dl></dd><dt>vfs.file_operation</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>virtual file system reads (cumulative), tallying</dt><dd><dl><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd><dt>virtual file system reads (non-cumulative), tallying</dt><dd><dl><dt>clearing arrays/array elements</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>W</h3><dl><dt>while loops</dt><dd><dl><dt>conditional statements</dt><dd><dl><dt>handlers, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt></dl></dd></dl></dd><dt>whole device number (usage as a command-line argument)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>wildcards in events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>writes/reads to a file, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd></dl></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="appe-Publican-Revision_History.html"><strong>Prev</strong>Appendix A. Revision History</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li></ul></body></html>
\ No newline at end of file
</a>5.2. Disk</h2></div></div></div><div class="para">
The following sections showcase scripts that monitor disk and I/O activity.
</div><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h3 class="title"><a id="disktop">
- </a>5.2.1. Summarizing Disk Read/Write Traffic</h3></div></div></div><a id="idm47723009183904" class="indexterm"></a><a id="idm47722987699392" class="indexterm"></a><a id="idm47723001254112" class="indexterm"></a><a id="idm47722949642640" class="indexterm"></a><a id="idm47722952884064" class="indexterm"></a><a id="idm47723001312992" class="indexterm"></a><a id="idm47723001754416" class="indexterm"></a><a id="idm47723009137360" class="indexterm"></a><div class="para">
+ </a>5.2.1. Summarizing Disk Read/Write Traffic</h3></div></div></div><a id="idm47650154486896" class="indexterm"></a><a id="idm47650169082832" class="indexterm"></a><a id="idm47650188694960" class="indexterm"></a><a id="idm47650190304528" class="indexterm"></a><a id="idm47650180912112" class="indexterm"></a><a id="idm47650196375904" class="indexterm"></a><a id="idm47650154527808" class="indexterm"></a><a id="idm47650191195344" class="indexterm"></a><div class="para">
This section describes how to identify which processes are performing the heaviest disk reads/writes to the system.
</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">disktop.stp</div>
<code class="computeroutput">T</code> — the type of action performed by the listed process; <code class="computeroutput">W</code> refers to write, while <code class="computeroutput">R</code> refers to read.
</div></li><li class="listitem"><div class="para">
<code class="computeroutput">BYTES</code> — the amount of data read to or written from disk.
- </div></li></ul></div><a id="idm47722950239424" class="indexterm"></a><a id="idm47722999783504" class="indexterm"></a><a id="idm47723005613872" class="indexterm"></a><div class="para">
+ </div></li></ul></div><a id="idm47650189275648" class="indexterm"></a><a id="idm47650143835440" class="indexterm"></a><a id="idm47650193263408" class="indexterm"></a><div class="para">
The time and date in the output of <a class="xref" href="mainsect-disk.html#scriptdisktop">disktop.stp</a> is returned by the functions <code class="command">ctime()</code> and <code class="command">gettimeofday_s()</code>. <code class="command">ctime()</code> derives calendar time in terms of seconds passed since the Unix epoch (January 1, 1970). <code class="command">gettimeofday_s()</code> counts the <span class="emphasis"><em>actual</em></span> number of seconds since Unix epoch, which gives a fairly accurate human-readable timestamp for the output.
- </div><a id="idm47722994136096" class="indexterm"></a><a id="idm47722949175088" class="indexterm"></a><a id="idm47722987896512" class="indexterm"></a><div class="para">
+ </div><a id="idm47650190491168" class="indexterm"></a><a id="idm47650143595200" class="indexterm"></a><a id="idm47650182840592" class="indexterm"></a><div class="para">
In this script, the <code class="command">$return</code> is a local variable that stores the actual number of bytes each process reads or writes from the virtual file system. <code class="command">$return</code> can only be used in return probes (for example, <code class="command">vfs.read.return</code> and <code class="command">vfs.read.return</code>).
</div><div class="example"><a id="disktopoutput">
</a><p class="title"><strong>Example 5.6. <a class="xref" href="mainsect-disk.html#scriptdisktop">disktop.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen">[...]
</a>5.3. Profiling</h2></div></div></div><div class="para">
The following sections showcase scripts that profile kernel activity by monitoring function calls.
</div><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h3 class="title"><a id="countcallssect">
- </a>5.3.1. Counting Function Calls Made</h3></div></div></div><a id="idm47722993321056" class="indexterm"></a><a id="idm47723003429200" class="indexterm"></a><a id="idm47723005488192" class="indexterm"></a><a id="idm47722987780784" class="indexterm"></a><a id="idm47722955093824" class="indexterm"></a><div class="para">
+ </a>5.3.1. Counting Function Calls Made</h3></div></div></div><a id="idm47650169060768" class="indexterm"></a><a id="idm47650150666560" class="indexterm"></a><a id="idm47650150626336" class="indexterm"></a><a id="idm47650187295920" class="indexterm"></a><a id="idm47650188814000" class="indexterm"></a><div class="para">
This section describes how to identify how many times the system called a specific kernel function in a 30-second sample. Depending on the use of wildcards, you can also use this script to target multiple kernel functions.
</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">functioncallcount.stp</div>
</pre>
</div><div class="para">
<a class="xref" href="mainsect-profiling.html#countcalls">functioncallcount.stp</a> takes the targeted kernel function as an argument. The argument supports wildcards, which enables you to target multiple kernel functions up to a certain extent.
- </div><a id="idm47723005503616" class="indexterm"></a><a id="idm47722990934576" class="indexterm"></a><a id="idm47723003308928" class="indexterm"></a><div class="para">
+ </div><a id="idm47650197298432" class="indexterm"></a><a id="idm47650149877296" class="indexterm"></a><a id="idm47650193143728" class="indexterm"></a><div class="para">
The output of <a class="xref" href="mainsect-profiling.html#countcalls">functioncallcount.stp</a> contains the name of the function called and how many times it was called during the sample time (in alphabetical order). <a class="xref" href="mainsect-profiling.html#countcallsoutput">Example 5.13, “functioncallcount.stp Sample Output”</a> contains an excerpt from the output of <code class="command">stap functioncallcount.stp "*@mm/*.c"</code>:
</div><div class="example"><a id="countcallsoutput">
</a><p class="title"><strong>Example 5.13. <a class="xref" href="mainsect-profiling.html#countcalls">functioncallcount.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen">[...]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.3.2. Call Graph Tracing</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-profiling.html" title="5.3. Profiling" /><link rel="prev" href="mainsect-profiling.html" title="5.3. Profiling" /><link rel="next" href="threadtimessect.html" title="5.3.3. Determining Time Spent in Kernel and User Space" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="mainsect-profiling.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="threadtimessect.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h3 class="title"><a id="paracallgraph">
- </a>5.3.2. Call Graph Tracing</h3></div></div></div><a id="idm47723001724816" class="indexterm"></a><a id="idm47722995805568" class="indexterm"></a><a id="idm47722952022912" class="indexterm"></a><a id="idm47723005498144" class="indexterm"></a><a id="idm47722988587600" class="indexterm"></a><a id="idm47722954482112" class="indexterm"></a><a id="idm47722953688992" class="indexterm"></a><div class="para">
+ </a>5.3.2. Call Graph Tracing</h3></div></div></div><a id="idm47650154797216" class="indexterm"></a><a id="idm47650145372304" class="indexterm"></a><a id="idm47650195584864" class="indexterm"></a><a id="idm47650189263728" class="indexterm"></a><a id="idm47650144408368" class="indexterm"></a><a id="idm47650183265616" class="indexterm"></a><a id="idm47650193380592" class="indexterm"></a><div class="para">
This section describes how to trace incoming and outgoing function calls.
</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">para-callgraph.stp</div>
probe $1.call { trace(1, $$parms) }
probe $1.return { trace(-1, $$return) }
</pre>
- </div><a id="idm47722994473136" class="indexterm"></a><a id="idm47722956353968" class="indexterm"></a><a id="idm47722951594144" class="indexterm"></a><a id="idm47722987631728" class="indexterm"></a><div class="para">
+ </div><a id="idm47650151152368" class="indexterm"></a><a id="idm47650193352224" class="indexterm"></a><a id="idm47650183854320" class="indexterm"></a><a id="idm47650147299424" class="indexterm"></a><div class="para">
<a class="xref" href="paracallgraph.html#scriptcallgraph">para-callgraph.stp</a> takes two command-line arguments:
- </div><a id="idm47722955556320" class="indexterm"></a><a id="idm47722994699280" class="indexterm"></a><a id="idm47722957309792" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para">
+ </div><a id="idm47650190405456" class="indexterm"></a><a id="idm47650154907856" class="indexterm"></a><a id="idm47650190992560" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para">
The function/s whose entry/exit call you'd like to trace (<code class="command">$1</code>).
</div></li><li class="listitem"><div class="para">
A second optional <em class="firstterm">trigger function</em> (<code class="command">$2</code>), which enables or disables tracing on a per-thread basis. Tracing in each thread will continue as long as the trigger function has not exited yet.
- </div></li></ul></div><a id="idm47722988605120" class="indexterm"></a><a id="idm47723004502208" class="indexterm"></a><a id="idm47722999823648" class="indexterm"></a><div class="para">
+ </div></li></ul></div><a id="idm47650183030768" class="indexterm"></a><a id="idm47650154837680" class="indexterm"></a><a id="idm47650193122288" class="indexterm"></a><div class="para">
<a class="xref" href="paracallgraph.html#scriptcallgraph">para-callgraph.stp</a> uses <code class="command">thread_indent()</code>; as such, its output contains the timestamp, process name, and thread ID of <code class="command">$1</code> (that is, the probe function you are tracing). For more information about <code class="command">thread_indent()</code>, refer to its entry in <a class="xref" href="systemtapscript-handler.html#systemtapscript-functions">SystemTap Functions</a>.
</div><div class="para">
The following example contains an excerpt from the output for <code class="command">stap para-callgraph.stp 'kernel.function("*@fs/*.c")' 'kernel.function("sys_read")'</code>:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">2. We Need Feedback!</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="SystemTap_Beginners_Guide-Preface.html" title="Preface" /><link rel="prev" href="SystemTap_Beginners_Guide-Preface.html" title="Preface" /><link rel="next" href="introduction.html" title="Chapter 1. Introduction" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="SystemTap_Beginners_Guide-Preface.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="introduction.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h2 class="title"><a id="idm47722957303024">
- </a>2. We Need Feedback!</h2></div></div></div><a id="idm47722957302032" class="indexterm"></a><div class="para">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">2. We Need Feedback!</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="SystemTap_Beginners_Guide-Preface.html" title="Preface" /><link rel="prev" href="SystemTap_Beginners_Guide-Preface.html" title="Preface" /><link rel="next" href="introduction.html" title="Chapter 1. Introduction" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="SystemTap_Beginners_Guide-Preface.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="introduction.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h2 class="title"><a id="idm47650146483136">
+ </a>2. We Need Feedback!</h2></div></div></div><a id="idm47650146482144" class="indexterm"></a><div class="para">
If you find a typographical error in this manual, or if you have thought of a way to make this manual better, we would love to hear from you! Please submit a report in Bugzilla: <a href="http://sourceware.org/bugzilla/">http://sourceware.org/bugzilla/</a> against the product <span class="application"><strong>systemtap</strong></span>.
</div><div class="para">
When submitting a report, be sure to include the specific file or URL the report refers to and the manual's identifier: <em class="citetitle">SystemTap_Beginners_Guide</em>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">6.2. Runtime Errors and Warnings</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="errors.html" title="Chapter 6. Understanding SystemTap Errors" /><link rel="prev" href="errors.html" title="Chapter 6. Understanding SystemTap Errors" /><link rel="next" href="references.html" title="Chapter 7. References" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="errors.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="references.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="runtimeerror">
- </a>6.2. Runtime Errors and Warnings</h2></div></div></div><a id="idm47722997837344" class="indexterm"></a><a id="idm47722997835936" class="indexterm"></a><a id="idm47722997834496" class="indexterm"></a><div class="para">
+ </a>6.2. Runtime Errors and Warnings</h2></div></div></div><a id="idm47650184675840" class="indexterm"></a><a id="idm47650154505168" class="indexterm"></a><a id="idm47650154503728" class="indexterm"></a><div class="para">
Runtime errors and warnings occur when the SystemTap instrumentation has been installed and is collecting data on the system.
- </div><h3><a id="idm47722997832496">
- </a>WARNING: Number of errors: <em class="replaceable">N</em>, skipped probes: <em class="replaceable">M</em></h3><a id="idm47722997830928" class="indexterm"></a><a id="idm47722997550048" class="indexterm"></a><a id="idm47722997548160" class="indexterm"></a><a id="idm47722997546304" class="indexterm"></a><div class="para">
+ </div><h3><a id="idm47650154501728">
+ </a>WARNING: Number of errors: <em class="replaceable">N</em>, skipped probes: <em class="replaceable">M</em></h3><a id="idm47650154500080" class="indexterm"></a><a id="idm47650154498224" class="indexterm"></a><a id="idm47650196231216" class="indexterm"></a><a id="idm47650196229360" class="indexterm"></a><div class="para">
Errors and/or skipped probes occurred during this run. Both <em class="replaceable">N</em> and <em class="replaceable">M</em> are the counts of the number of probes that were not executed due to conditions such as too much time required to execute event handlers over an interval of time.
- </div><h3><a id="idm47722951269168">
- </a>division by 0</h3><a id="idm47722951268368" class="indexterm"></a><a id="idm47722951266480" class="indexterm"></a><a id="idm47722951264560" class="indexterm"></a><a id="idm47722951262672" class="indexterm"></a><a id="idm47722999521040" class="indexterm"></a><div class="para">
+ </div><h3><a id="idm47650196225872">
+ </a>division by 0</h3><a id="idm47650196225072" class="indexterm"></a><a id="idm47650186819792" class="indexterm"></a><a id="idm47650186817872" class="indexterm"></a><a id="idm47650186815984" class="indexterm"></a><a id="idm47650186814096" class="indexterm"></a><div class="para">
The script code performed an invalid division.
- </div><h3><a id="idm47722999518704">
- </a>aggregate element not found</h3><a id="idm47722999517936" class="indexterm"></a><a id="idm47722999516080" class="indexterm"></a><a id="idm47722999514192" class="indexterm"></a><a id="idm47722962526064" class="indexterm"></a><div class="para">
+ </div><h3><a id="idm47650184769776">
+ </a>aggregate element not found</h3><a id="idm47650184769008" class="indexterm"></a><a id="idm47650184767152" class="indexterm"></a><a id="idm47650184765264" class="indexterm"></a><a id="idm47650184763408" class="indexterm"></a><div class="para">
A statistics extractor function other than <code class="command">@count</code> was invoked on an aggregate that has not had any values accumulated yet. This is similar to a division by zero.
- </div><h3><a id="idm47722962523184">
- </a>aggregation overflow</h3><a id="idm47722962522384" class="indexterm"></a><a id="idm47722962520496" class="indexterm"></a><a id="idm47723001761648" class="indexterm"></a><a id="idm47723001759760" class="indexterm"></a><a id="idm47723001757872" class="indexterm"></a><div class="para">
+ </div><h3><a id="idm47650189281312">
+ </a>aggregation overflow</h3><a id="idm47650189280512" class="indexterm"></a><a id="idm47650189278624" class="indexterm"></a><a id="idm47650189276704" class="indexterm"></a><a id="idm47650145698640" class="indexterm"></a><a id="idm47650145696752" class="indexterm"></a><div class="para">
An array containing aggregate values contains too many distinct key pairs at this time.
- </div><h3><a id="idm47722987831808">
- </a>MAXNESTING exceeded</h3><a id="idm47722987831136" class="indexterm"></a><a id="idm47722987829248" class="indexterm"></a><a id="idm47722987827328" class="indexterm"></a><a id="idm47722987825440" class="indexterm"></a><a id="idm47722956810960" class="indexterm"></a><div class="para">
+ </div><h3><a id="idm47650145694000">
+ </a>MAXNESTING exceeded</h3><a id="idm47650145693328" class="indexterm"></a><a id="idm47650187951760" class="indexterm"></a><a id="idm47650187949840" class="indexterm"></a><a id="idm47650187947952" class="indexterm"></a><a id="idm47650187946064" class="indexterm"></a><div class="para">
Too many levels of function call nesting were attempted. The default nesting of function calls allowed is 10.
- </div><h3><a id="idm47722956808496">
- </a>MAXACTION exceeded</h3><a id="idm47722956807696" class="indexterm"></a><a id="idm47722956805808" class="indexterm"></a><a id="idm47722956803888" class="indexterm"></a><a id="idm47722960397440" class="indexterm"></a><a id="idm47722960395552" class="indexterm"></a><div class="para">
+ </div><h3><a id="idm47650193008640">
+ </a>MAXACTION exceeded</h3><a id="idm47650193007840" class="indexterm"></a><a id="idm47650193005952" class="indexterm"></a><a id="idm47650193004032" class="indexterm"></a><a id="idm47650193002144" class="indexterm"></a><a id="idm47650192109088" class="indexterm"></a><div class="para">
The probe handler attempted to execute too many statements in the probe handler. The default number of actions allowed in a probe handler is 1000.
- </div><h3><a id="idm47722960393040">
- </a>kernel/user string copy fault at <em class="replaceable">ADDR</em></h3><a id="idm47722960391952" class="indexterm"></a><a id="idm47722987444656" class="indexterm"></a><a id="idm47722987442736" class="indexterm"></a><a id="idm47722987440848" class="indexterm"></a><div class="para">
+ </div><h3><a id="idm47650192106576">
+ </a>kernel/user string copy fault at <em class="replaceable">ADDR</em></h3><a id="idm47650192105488" class="indexterm"></a><a id="idm47650192103600" class="indexterm"></a><a id="idm47650150070000" class="indexterm"></a><a id="idm47650150068112" class="indexterm"></a><div class="para">
The probe handler attempted to copy a string from kernel or user space at an invalid address (<em class="replaceable">ADDR</em>).
- </div><h3><a id="idm47722987438032">
- </a>pointer dereference fault</h3><a id="idm47722957118864" class="indexterm"></a><a id="idm47722957117008" class="indexterm"></a><a id="idm47722957115120" class="indexterm"></a><a id="idm47722957113264" class="indexterm"></a><div class="para">
+ </div><h3><a id="idm47650150065296">
+ </a>pointer dereference fault</h3><a id="idm47650150064368" class="indexterm"></a><a id="idm47650150062512" class="indexterm"></a><a id="idm47650183172352" class="indexterm"></a><a id="idm47650183170496" class="indexterm"></a><div class="para">
There was a fault encountered during a pointer dereference operation such as a target variable evaluation.
</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="errors.html"><strong>Prev</strong>Chapter 6. Understanding SystemTap Errors</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="references.html"><strong>Next</strong>Chapter 7. References</a></li></ul></body></html>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.3. Basic SystemTap Handler Constructs</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /><link rel="prev" href="systemtapscript-handler.html" title="3.2.2. SystemTap Handler/Body" /><link rel="next" href="targetvariables.html" title="3.3.2. Target Variables" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="systemtapscript-handler.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="targetvariables.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h2 class="title"><a id="scriptconstructions">
- </a>3.3. Basic SystemTap Handler Constructs</h2></div></div></div><a id="idm47722957071200" class="indexterm"></a><a id="idm47722987935968" class="indexterm"></a><a id="idm47722956916464" class="indexterm"></a><a id="idm47722956917232" class="indexterm"></a><a id="idm47722956919152" class="indexterm"></a><div class="para">
+ </a>3.3. Basic SystemTap Handler Constructs</h2></div></div></div><a id="idm47650182891728" class="indexterm"></a><a id="idm47650182893680" class="indexterm"></a><a id="idm47650187327232" class="indexterm"></a><a id="idm47650187329600" class="indexterm"></a><a id="idm47650187331520" class="indexterm"></a><div class="para">
SystemTap supports the use of several basic constructs in handlers. The syntax for most of these handler constructs are mostly based on C and <code class="command">awk</code> syntax. This section describes several of the most useful SystemTap handler constructs, which should provide you with enough information to write simple yet useful SystemTap scripts.
</div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="variablesconstructs">
- </a>3.3.1. Variables</h3></div></div></div><a id="idm47722949708208" class="indexterm"></a><a id="idm47723005081072" class="indexterm"></a><a id="idm47722993511904" class="indexterm"></a><a id="idm47722954960688" class="indexterm"></a><div class="para">
+ </a>3.3.1. Variables</h3></div></div></div><a id="idm47650188659344" class="indexterm"></a><a id="idm47650191131472" class="indexterm"></a><a id="idm47650144168064" class="indexterm"></a><a id="idm47650142533056" class="indexterm"></a><div class="para">
Variables can be used freely throughout a handler; simply choose a name, assign a value from a function or expression to it, and use it in an expression. SystemTap automatically identifies whether a variable should be typed as a string or integer, based on the type of the values assigned to it. For instance, if you use set the variable <code class="command">foo</code> to <code class="command">gettimeofday_s()</code> (as in <code class="command">foo = gettimeofday_s()</code>), then <code class="command">foo</code> is typed as a number and can be printed in a <code class="command">printf()</code> with the integer format specifier (<code class="command">%d</code>).
- </div><a id="idm47722957070720" class="indexterm"></a><a id="idm47723004465712" class="indexterm"></a><a id="idm47723004029456" class="indexterm"></a><div class="para">
+ </div><a id="idm47650192226304" class="indexterm"></a><a id="idm47650143388896" class="indexterm"></a><a id="idm47650187333312" class="indexterm"></a><div class="para">
Note, however, that by default variables are only local to the probe they are used in. This means that variables are initialized, used and disposed at each probe handler invocation. To share a variable between probes, declare the variable name using <code class="command">global</code> outside of the probes. Consider the following example:
</div><div class="example"><a id="timerjiffies">
</a><p class="title"><strong>Example 3.8. timer-jiffies.stp</strong></p><div class="example-contents"><pre class="programlisting">global count_jiffies, count_ms
printf ("jiffies:ms ratio %d:%d => CONFIG_HZ=%d\n",
count_jiffies, count_ms, hz)
exit ()
-}</pre></div></div><a id="idm47723001581120" class="indexterm"></a><div class="para">
+}</pre></div></div><a id="idm47650151493632" class="indexterm"></a><div class="para">
<a class="xref" href="scriptconstructions.html#timerjiffies">Example 3.8, “timer-jiffies.stp”</a> computes the <code class="command">CONFIG_HZ</code> setting of the kernel using timers that count jiffies and milliseconds, then computing accordingly. The <code class="command">global</code> statement allows the script to use the variables <code class="command">count_jiffies</code> and <code class="command">count_ms</code> (set in their own respective probes) to be shared with <code class="command">probe timer.ms(12345)</code>.
</div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><div class="para">
The <code class="command">++</code> notation in <a class="xref" href="scriptconstructions.html#timerjiffies">Example 3.8, “timer-jiffies.stp”</a> (that is, <code class="command">count_jiffies ++</code> and <code class="command">count_ms ++</code>) is used to increment the value of a variable by 1. In the following probe, <code class="command">count_jiffies</code> is incremented by 1 every 100 jiffies:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.2. SystemTap Scripts</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /><link rel="prev" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /><link rel="next" href="systemtapscript-handler.html" title="3.2.2. SystemTap Handler/Body" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="understanding-how-systemtap-works.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="systemtapscript-handler.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h2 class="title"><a id="scripts">
- </a>3.2. SystemTap Scripts</h2></div></div></div><a id="idm47722995123200" class="indexterm"></a><a id="idm47722995125008" class="indexterm"></a><div class="para">
+ </a>3.2. SystemTap Scripts</h2></div></div></div><a id="idm47650154650000" class="indexterm"></a><a id="idm47650154651152" class="indexterm"></a><div class="para">
For the most part, SystemTap scripts are the foundation of each SystemTap session. SystemTap scripts instruct SystemTap on what type of information to collect, and what to do once that information is collected.
- </div><a id="idm47722995126976" class="indexterm"></a><a id="idm47722995129040" class="indexterm"></a><a id="idm47722995130512" class="indexterm"></a><a id="idm47722995132640" class="indexterm"></a><a id="idm47722995134624" class="indexterm"></a><a id="idm47722995136592" class="indexterm"></a><div class="para">
+ </div><a id="idm47650154654432" class="indexterm"></a><a id="idm47650154655360" class="indexterm"></a><a id="idm47650154657312" class="indexterm"></a><a id="idm47650154659440" class="indexterm"></a><a id="idm47650154661424" class="indexterm"></a><a id="idm47650154663392" class="indexterm"></a><div class="para">
As stated in <a class="xref" href="understanding-how-systemtap-works.html">Chapter 3, <em>Understanding How SystemTap Works</em></a>, SystemTap scripts are made up of two components: <span class="emphasis"><em>events</em></span> and <span class="emphasis"><em>handlers</em></span>. Once a SystemTap session is underway, SystemTap monitors the operating system for the specified events and executes the handlers as they occur.
- </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><a id="idm47722995141840" class="indexterm"></a><a id="idm47722995143776" class="indexterm"></a><a id="idm47722995145680" class="indexterm"></a><div class="para">
+ </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><a id="idm47650154670096" class="indexterm"></a><a id="idm47650154672000" class="indexterm"></a><a id="idm47650154673904" class="indexterm"></a><div class="para">
An event and its corresponding handler is collectively called a <span class="emphasis"><em>probe</em></span>. A SystemTap script can have multiple probes.
</div><div class="para">
A probe's handler is commonly referred to as a <span class="emphasis"><em>probe body</em></span>.
In terms of application development, using events and handlers is similar to instrumenting the code by inserting diagnostic print statements in a program's sequence of commands. These diagnostic print statements allow you to view a history of commands executed once the program is run.
</div><div class="para">
SystemTap scripts allow insertion of the instrumentation code without recompilation of the code and allows more flexibility with regard to handlers. Events serve as the triggers for handlers to run; handlers can be specified to record specified data and print it in a certain manner.
- </div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">Format</div><a id="idm47722995153872" class="indexterm"></a><a id="idm47722995152944" class="indexterm"></a><a id="idm47722995154512" class="indexterm"></a><a id="idm47722995156032" class="indexterm"></a>
+ </div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">Format</div><a id="idm47650154678512" class="indexterm"></a><a id="idm47650154679296" class="indexterm"></a><a id="idm47650154680832" class="indexterm"></a><a id="idm47650154682256" class="indexterm"></a>
SystemTap scripts use the file extension <code class="filename">.stp</code>, and contains probes written in the following format:
</div><pre class="screen">probe <em class="replaceable">event</em> {<em class="replaceable">statements</em>}</pre><div class="para">
SystemTap supports multiple events per probe; multiple events are delimited by a comma (<code class="command">,</code>). If multiple events are specified in a single probe, SystemTap will execute the handler when any of the specified events occur.
- </div><a id="idm47722995161216" class="indexterm"></a><a id="idm47722995163152" class="indexterm"></a><a id="idm47722995165088" class="indexterm"></a><div class="para">
+ </div><a id="idm47650154687440" class="indexterm"></a><a id="idm47650154689360" class="indexterm"></a><a id="idm47650154691312" class="indexterm"></a><div class="para">
Each probe has a corresponding <em class="firstterm">statement block</em>. This statement block is enclosed in braces (<code class="command">{ }</code>) and contains the statements to be executed per event. SystemTap executes these statements in sequence; special separators or terminators are generally not necessary between multiple statements.
</div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><div class="para">
Statement blocks in SystemTap scripts follow the same syntax and semantics as the C programming language. A statement block can be nested within another statement block.
- </div></div></div><a id="idm47722995170240" class="indexterm"></a><a id="idm47722995171808" class="indexterm"></a><a id="idm47722995173776" class="indexterm"></a><div class="para">
+ </div></div></div><a id="idm47650154696464" class="indexterm"></a><a id="idm47650154698512" class="indexterm"></a><a id="idm47650154700480" class="indexterm"></a><div class="para">
SystemTap allows you to write functions to factor out code to be used by a number of probes. Thus, rather than repeatedly writing the same series of statements in multiple probes, you can just place the instructions in a <em class="firstterm">function</em>, as in:
</div><pre class="screen">function <em class="replaceable">function_name</em>(<em class="replaceable">arguments</em>) {<em class="replaceable">statements</em>}
probe <em class="replaceable">event</em> {<em class="replaceable">function_name</em>(<em class="replaceable">arguments</em>)}</pre><div class="para">
</div><div xmlns:d="http://docbook.org/ns/docbook" class="important"><div class="admonition_header"><p><strong>Important</strong></p></div><div class="admonition"><div class="para">
<a class="xref" href="scripts.html">Section 3.2, “SystemTap Scripts”</a> is designed to introduce readers to the basics of SystemTap scripts. To understand SystemTap scripts better, it is advisable that you refer to <a class="xref" href="useful-systemtap-scripts.html">Chapter 5, <em>Useful SystemTap Scripts</em></a>; each section therein provides a detailed explanation of the script, its events, handlers, and expected output.
</div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="systemtapscript-events">
- </a>3.2.1. Event</h3></div></div></div><a id="idm47722995187280" class="indexterm"></a><div class="para">
+ </a>3.2.1. Event</h3></div></div></div><a id="idm47650154713504" class="indexterm"></a><div class="para">
SystemTap events can be broadly classified into two types: <em class="firstterm">synchronous</em> and <em class="firstterm">asynchronous</em>.
- </div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">Synchronous Events</div><a id="idm47722995190848" class="indexterm"></a><a id="idm47722995192208" class="indexterm"></a>
+ </div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">Synchronous Events</div><a id="idm47650154717552" class="indexterm"></a><a id="idm47650154718192" class="indexterm"></a>
A <em class="firstterm">synchronous</em> event occurs when any process executes an instruction at a particular location in kernel code. This gives other events a reference point from which more contextual data may be available.
- </div><a id="idm47722995195408" class="indexterm"></a><a id="idm47722995196368" class="indexterm"></a><div class="para">
+ </div><a id="idm47650154721632" class="indexterm"></a><a id="idm47650154723072" class="indexterm"></a><div class="para">
Examples of synchronous events include:
- </div><div class="variablelist"><dl class="variablelist"><dt><span class="term">syscall.<em class="replaceable">system_call</em></span></dt><dd><a id="idm47722988990064" class="indexterm"></a><a id="idm47722988991872" class="indexterm"></a><div class="para">
+ </div><div class="variablelist"><dl class="variablelist"><dt><span class="term">syscall.<em class="replaceable">system_call</em></span></dt><dd><a id="idm47650148987344" class="indexterm"></a><a id="idm47650148988512" class="indexterm"></a><div class="para">
The entry to the system call <em class="replaceable">system_call</em>. If the exit from a syscall is desired, appending a <code class="command">.return</code> to the event monitor the exit of the system call instead. For example, to specify the entry and exit of the system call <code class="command">close</code>, use <code class="command">syscall.close</code> and <code class="command">syscall.close.return</code> respectively.
- </div></dd><dt><span class="term">vfs.<em class="replaceable">file_operation</em></span></dt><dd><a id="idm47722988999136" class="indexterm"></a><a id="idm47722989001088" class="indexterm"></a><div class="para">
+ </div></dd><dt><span class="term">vfs.<em class="replaceable">file_operation</em></span></dt><dd><a id="idm47650148995968" class="indexterm"></a><a id="idm47650148999344" class="indexterm"></a><div class="para">
The entry to the <em class="replaceable">file_operation</em> event for Virtual File System (VFS). Similar to <code class="command">syscall</code> event, appending a <code class="command">.return</code> to the event monitors the exit of the <em class="replaceable">file_operation</em> operation.
- </div></dd><dt><span class="term">kernel.function("<em class="replaceable">function</em>")</span></dt><dd><a id="idm47722989006928" class="indexterm"></a><a id="idm47722989008736" class="indexterm"></a><div class="para">
+ </div></dd><dt><span class="term">kernel.function("<em class="replaceable">function</em>")</span></dt><dd><a id="idm47650149004208" class="indexterm"></a><a id="idm47650149005536" class="indexterm"></a><div class="para">
The entry to the kernel function <em class="replaceable">function</em>. For example, <code class="command">kernel.function("sys_open")</code> refers to the "event" that occurs when the kernel function <code class="command">sys_open</code> is called by any thread in the system. To specify the <span class="emphasis"><em>return</em></span> of the kernel function <code class="command">sys_open</code>, append the <code class="command">return</code> string to the event statement; that is, <code class="command">kernel.function("sys_open").return</code>.
- </div><a id="idm47722989015184" class="indexterm"></a><a id="idm47722989016112" class="indexterm"></a><a id="idm47722989016560" class="indexterm"></a><div class="para">
+ </div><a id="idm47650149011968" class="indexterm"></a><a id="idm47650149012912" class="indexterm"></a><a id="idm47650149013392" class="indexterm"></a><div class="para">
When defining probe events, you can use asterisk (<code class="literal">*</code>) for wildcards. You can also trace the entry or exit of a function in a kernel source file. Consider the following example:
</div><div class="example"><a id="wildcards">
</a><p class="title"><strong>Example 3.1. wildcards.stp</strong></p><div class="example-contents"><pre class="programlisting">probe kernel.function("*@net/socket.c") { }
probe kernel.function("*@net/socket.c").return { }</pre></div></div><div class="para">
In the previous example, the first probe's event specifies the entry of ALL functions in the kernel source file <code class="filename">net/socket.c</code>. The second probe specifies the exit of all those functions. Note that in this example, there are no statements in the handler; as such, no information will be collected or displayed.
- </div></dd><dt><span class="term">kernel.trace("<em class="replaceable">tracepoint</em>")</span></dt><dd><a id="idm47722989023504" class="indexterm"></a><a id="idm47722989023984" class="indexterm"></a><a id="idm47722989025680" class="indexterm"></a><div class="para">
+ </div></dd><dt><span class="term">kernel.trace("<em class="replaceable">tracepoint</em>")</span></dt><dd><a id="idm47650149020304" class="indexterm"></a><a id="idm47650149020784" class="indexterm"></a><a id="idm47650149023408" class="indexterm"></a><div class="para">
The static probe for <em class="replaceable">tracepoint</em>. Recent kernels (2.6.30 and newer) include instrumentation for specific events in the kernel. These events are statically marked with tracepoints. One example of a tracepoint available in systemtap is <code class="command">kernel.trace("kfree_skb")</code> which indicates each time a network buffer is freed in the kernel.
- </div></dd><dt><span class="term">module("<em class="replaceable">module</em>").function("<em class="replaceable">function</em>")</span></dt><dd><a id="idm47722989031952" class="indexterm"></a><a id="idm47722989033696" class="indexterm"></a><div class="para">
+ </div></dd><dt><span class="term">module("<em class="replaceable">module</em>").function("<em class="replaceable">function</em>")</span></dt><dd><a id="idm47650149028752" class="indexterm"></a><a id="idm47650149030496" class="indexterm"></a><div class="para">
Allows you to probe functions within modules. For example:
</div><div class="example"><a id="eventsmodules">
</a><p class="title"><strong>Example 3.2. moduleprobe.stp</strong></p><div class="example-contents"><pre class="programlisting">probe module("ext3").function("*") { }
The first probe in <a class="xref" href="scripts.html#eventsmodules">Example 3.2, “moduleprobe.stp”</a> points to the entry of <span class="emphasis"><em>all</em></span> functions for the <code class="filename">ext3</code> module. The second probe points to the exits of all functions for that same module; the use of the <code class="command">.return</code> suffix is similar to <code class="command">kernel.function()</code>. Note that the probes in <a class="xref" href="scripts.html#eventsmodules">Example 3.2, “moduleprobe.stp”</a> do not contain statements in the probe handlers, and as such will not print any useful data (as in <a class="xref" href="scripts.html#wildcards">Example 3.1, “wildcards.stp”</a>).
</div><div class="para">
A system's kernel modules are typically located in <code class="filename">/lib/modules/<em class="replaceable">kernel_version</em></code>, where <em class="replaceable">kernel_version</em> refers to the currently loaded kernel version. Modules use the file name extension <code class="filename">.ko</code>.
- </div></dd></dl></div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">Asynchronous Events</div><a id="idm47722989044640" class="indexterm"></a><a id="idm47722989046240" class="indexterm"></a>
+ </div></dd></dl></div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">Asynchronous Events</div><a id="idm47650149041440" class="indexterm"></a><a id="idm47650149042656" class="indexterm"></a>
<em class="firstterm">Asynchronous</em> events are not tied to a particular instruction or location in code. This family of probe points consists mainly of counters, timers, and similar constructs.
</div><div class="para">
Examples of asynchronous events include:
- </div><div class="variablelist"><dl class="variablelist"><dt><span class="term">begin</span></dt><dd><a id="idm47722989050976" class="indexterm"></a><a id="idm47722989053232" class="indexterm"></a><div class="para">
+ </div><div class="variablelist"><dl class="variablelist"><dt><span class="term">begin</span></dt><dd><a id="idm47650149047760" class="indexterm"></a><a id="idm47650149049056" class="indexterm"></a><div class="para">
The startup of a SystemTap session; that is, as soon as the SystemTap script is run.
- </div></dd><dt><span class="term">end</span></dt><dd><a id="idm47722989054976" class="indexterm"></a><a id="idm47722989056400" class="indexterm"></a><div class="para">
+ </div></dd><dt><span class="term">end</span></dt><dd><a id="idm47650149052256" class="indexterm"></a><a id="idm47650149055616" class="indexterm"></a><div class="para">
The end of a SystemTap session.
- </div></dd><dt><span class="term">timer events</span></dt><dd><a id="idm47722989059344" class="indexterm"></a><a id="idm47722989059984" class="indexterm"></a><div class="para">
+ </div></dd><dt><span class="term">timer events</span></dt><dd><a id="idm47650149056624" class="indexterm"></a><a id="idm47650149057264" class="indexterm"></a><div class="para">
An event that specifies a handler to be executed periodically. For example:
</div><div class="example"><a id="timer">
</a><p class="title"><strong>Example 3.3. timer-s.stp</strong></p><div class="example-contents"><pre class="programlisting">probe timer.s(4)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.3.6. Tracking System Call Volume Per Process</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-profiling.html" title="5.3. Profiling" /><link rel="prev" href="topsyssect.html" title="5.3.5. Tracking Most Frequently Used System Calls" /><link rel="next" href="futexcontentionsect.html" title="5.4. Identifying Contended User-Space Locks" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="topsyssect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="futexcontentionsect.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h3 class="title"><a id="syscallsbyprocpidsect">
- </a>5.3.6. Tracking System Call Volume Per Process</h3></div></div></div><a id="idm47722987893248" class="indexterm"></a><a id="idm47722957254320" class="indexterm"></a><a id="idm47722957252944" class="indexterm"></a><a id="idm47722994433072" class="indexterm"></a><div class="para">
+ </a>5.3.6. Tracking System Call Volume Per Process</h3></div></div></div><a id="idm47650145902736" class="indexterm"></a><a id="idm47650188946400" class="indexterm"></a><a id="idm47650188945024" class="indexterm"></a><a id="idm47650187062336" class="indexterm"></a><div class="para">
This section illustrates how to determine which processes are performing the highest volume of system calls. In previous sections, we've described how to monitor the top system calls used by the system over time (<a class="xref" href="topsyssect.html">Section 5.3.5, “Tracking Most Frequently Used System Calls”</a>). We've also described how to identify which applications use a specific set of "polling suspect" system calls the most (<a class="xref" href="timeoutssect.html">Section 5.3.4, “Monitoring Polling Applications”</a>). Monitoring the volume of system calls made by each process provides more data in investigating your system for polling processes and other resource hogs.
</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">syscalls_by_proc.stp</div>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.2.2. SystemTap Handler/Body</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="scripts.html" title="3.2. SystemTap Scripts" /><link rel="prev" href="scripts.html" title="3.2. SystemTap Scripts" /><link rel="next" href="scriptconstructions.html" title="3.3. Basic SystemTap Handler Constructs" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="scripts.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="scriptconstructions.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="systemtapscript-handler">
- </a>3.2.2. SystemTap Handler/Body</h3></div></div></div><a id="idm47722989081744" class="indexterm"></a><div class="para">
+ </a>3.2.2. SystemTap Handler/Body</h3></div></div></div><a id="idm47650149078944" class="indexterm"></a><div class="para">
Consider the following sample script:
</div><div class="example"><a id="helloworld">
</a><p class="title"><strong>Example 3.4. helloworld.stp</strong></p><div class="example-contents"><pre class="programlisting">probe begin
exit ()
}</pre></div></div><div class="para">
In <a class="xref" href="systemtapscript-handler.html#helloworld">Example 3.4, “helloworld.stp”</a>, the event <code class="command">begin</code> (that is, the start of the session) triggers the handler enclosed in <code class="command">{ }</code>, which simply prints <code class="command">hello world</code> followed by a new-line, then exits.
- </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><a id="idm47723005009584" class="indexterm"></a><a id="idm47723005010832" class="indexterm"></a><div class="para">
+ </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><a id="idm47650187169312" class="indexterm"></a><a id="idm47650187171008" class="indexterm"></a><div class="para">
SystemTap scripts continue to run until the <code class="command">exit()</code> function executes. If the users wants to stop the execution of the script, it can interrupted manually with <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>C</strong></span>.
- </div></div></div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">printf ( ) Statements</div><a id="idm47723005015760" class="indexterm"></a>
+ </div></div></div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">printf ( ) Statements</div><a id="idm47650187175648" class="indexterm"></a>
The <code class="command">printf ()</code> statement is one of the simplest functions for printing data. <code class="command">printf ()</code> can also be used to display data using a wide variety of SystemTap functions in the following format:
</div><pre class="programlisting"> printf ("<em class="replaceable">format string</em>\n", <em class="replaceable">arguments</em>)
-</pre><a id="idm47723005019952" class="indexterm"></a><a id="idm47723005021680" class="indexterm"></a><div class="para">
+</pre><a id="idm47650187180224" class="indexterm"></a><a id="idm47650187181472" class="indexterm"></a><div class="para">
The <em class="replaceable">format string</em> specifies how <em class="replaceable">arguments</em> should be printed. The format string of <a class="xref" href="systemtapscript-handler.html#helloworld">Example 3.4, “helloworld.stp”</a> instructs SystemTap to print <code class="command">hello world</code>, and contains no format specifiers.
- </div><a id="idm47723005025424" class="indexterm"></a><a id="idm47723005027152" class="indexterm"></a><div class="para">
+ </div><a id="idm47650187185696" class="indexterm"></a><a id="idm47650187188832" class="indexterm"></a><div class="para">
You can use the format specifiers <code class="command">%s</code> (for strings) and <code class="command">%d</code> (for numbers) in format strings, depending on your list of arguments. Format strings can have multiple format specifiers, each matching a corresponding argument; multiple arguments are delimited by a comma (<code class="command">,</code>).
- </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><a id="idm47723005031600" class="indexterm"></a><a id="idm47723005033952" class="indexterm"></a><a id="idm47723005035520" class="indexterm"></a><div class="para">
+ </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><a id="idm47650187191424" class="indexterm"></a><a id="idm47650187193936" class="indexterm"></a><a id="idm47650187195312" class="indexterm"></a><div class="para">
Semantically, the SystemTap <code class="command">printf</code> function is very similar to its C language counterpart. The aforementioned syntax and format for SystemTap's <code class="command">printf</code> function is identical to that of the C-style <code class="command">printf</code>.
</div></div></div><div class="para">
To illustrate this, consider the following probe example:
df(3433) open
df(3433) open
df(3433) open
-hald(2360) open</pre><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">SystemTap Functions</div><a id="idm47723005046240" class="indexterm"></a><a id="idm47723005046576" class="indexterm"></a><a id="idm47723005047696" class="indexterm"></a>
+hald(2360) open</pre><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">SystemTap Functions</div><a id="idm47650187206032" class="indexterm"></a><a id="idm47650187206816" class="indexterm"></a><a id="idm47650187207344" class="indexterm"></a>
SystemTap supports a wide variety of functions that can be used as <code class="command">printf ()</code> arguments. <a class="xref" href="systemtapscript-handler.html#syscall-open">Example 3.5, “variables-in-printf-statements.stp”</a> uses the SystemTap functions <code class="command">execname()</code> (name of the process that called a kernel function/performed a system call) and <code class="command">pid()</code> (current process ID).
</div><div class="para">
The following is a list of commonly-used SystemTap functions:
- </div><div class="variablelist"><dl class="variablelist"><dt><span class="term">tid()</span></dt><dd><a id="idm47723005055376" class="indexterm"></a><a id="idm47723005054896" class="indexterm"></a><a id="idm47723005056320" class="indexterm"></a><div class="para">
+ </div><div class="variablelist"><dl class="variablelist"><dt><span class="term">tid()</span></dt><dd><a id="idm47650187213744" class="indexterm"></a><a id="idm47650187215168" class="indexterm"></a><a id="idm47650187216592" class="indexterm"></a><div class="para">
The ID of the current thread.
- </div></dd><dt><span class="term">uid()</span></dt><dd><a id="idm47723005059808" class="indexterm"></a><a id="idm47723005061808" class="indexterm"></a><div class="para">
+ </div></dd><dt><span class="term">uid()</span></dt><dd><a id="idm47650187221280" class="indexterm"></a><a id="idm47650187221600" class="indexterm"></a><div class="para">
The ID of the current user.
- </div></dd><dt><span class="term">cpu()</span></dt><dd><a id="idm47723005066288" class="indexterm"></a><a id="idm47723005066944" class="indexterm"></a><div class="para">
+ </div></dd><dt><span class="term">cpu()</span></dt><dd><a id="idm47650187225104" class="indexterm"></a><a id="idm47650187226720" class="indexterm"></a><div class="para">
The current CPU number.
- </div></dd><dt><span class="term">gettimeofday_s()</span></dt><dd><a id="idm47723005070720" class="indexterm"></a><a id="idm47723005072480" class="indexterm"></a><div class="para">
+ </div></dd><dt><span class="term">gettimeofday_s()</span></dt><dd><a id="idm47650187230352" class="indexterm"></a><a id="idm47650187232272" class="indexterm"></a><div class="para">
The number of seconds since UNIX epoch (January 1, 1970).
- </div></dd><dt><span class="term">ctime()</span></dt><dd><a id="idm47723005075872" class="indexterm"></a><a id="idm47723005077488" class="indexterm"></a><div class="para">
+ </div></dd><dt><span class="term">ctime()</span></dt><dd><a id="idm47650187235664" class="indexterm"></a><a id="idm47650187237280" class="indexterm"></a><div class="para">
Convert number of seconds since UNIX epoch to date.
- </div></dd><dt><span class="term">pp()</span></dt><dd><a id="idm47723005082176" class="indexterm"></a><a id="idm47723005083968" class="indexterm"></a><div class="para">
+ </div></dd><dt><span class="term">pp()</span></dt><dd><a id="idm47650187241952" class="indexterm"></a><a id="idm47650187244384" class="indexterm"></a><div class="para">
A string describing the probe point currently being handled.
- </div></dd><dt><span class="term">thread_indent()</span></dt><dd><a id="idm47723005088400" class="indexterm"></a><a id="idm47723005090352" class="indexterm"></a><div class="para">
+ </div></dd><dt><span class="term">thread_indent()</span></dt><dd><a id="idm47650187249680" class="indexterm"></a><a id="idm47650187250624" class="indexterm"></a><div class="para">
This particular function is quite useful in providing you with a way to better organize your print results. The function takes one argument, an indentation delta, which indicates how many spaces to add or remove from a thread's "indentation counter". It then returns a string with some generic trace data along with an appropriate number of indentation spaces.
</div><div class="para">
The generic data included in the returned string includes a timestamp (number of microseconds since the first call to <code class="command">thread_indent()</code> by the thread), a process name, and the thread ID. This allows you to identify what functions were called, who called them, and the duration of each function call.
An arrow signifying whether the call was an entry (<code class="computeroutput"><-</code>) or an exit (<code class="computeroutput">-></code>); the indentations help you match specific function call entries with their corresponding exits.
</div></li><li class="listitem"><div class="para">
The name of the function called by the process.
- </div></li></ul></div></dd><dt><span class="term">name</span></dt><dd><a id="idm47722987873392" class="indexterm"></a><a id="idm47722987874368" class="indexterm"></a><a id="idm47722987875744" class="indexterm"></a><div class="para">
+ </div></li></ul></div></dd><dt><span class="term">name</span></dt><dd><a id="idm47650190830992" class="indexterm"></a><a id="idm47650190831968" class="indexterm"></a><a id="idm47650143461104" class="indexterm"></a><div class="para">
Identifies the name of a specific system call. This variable can only be used in probes that use the event <code class="command">syscall.<em class="replaceable">system_call</em></code>.
- </div></dd><dt><span class="term">target()</span></dt><dd><a id="idm47722995324592" class="indexterm"></a><a id="idm47722995325888" class="indexterm"></a><div class="para">
+ </div></dd><dt><span class="term">target()</span></dt><dd><a id="idm47650143463376" class="indexterm"></a><a id="idm47650143465152" class="indexterm"></a><div class="para">
Used in conjunction with <code class="command">stap <em class="replaceable">script</em> -x <em class="replaceable">process ID</em></code> or <code class="command">stap <em class="replaceable">script</em> -c <em class="replaceable">command</em></code>. If you want to specify a script to take an argument of a process ID or command, use <code class="command">target()</code> as the variable in the script to refer to it. For example:
</div><div class="example"><a id="targetexample">
</a><p class="title"><strong>Example 3.7. targetexample.stp</strong></p><div class="example-contents"><pre class="programlisting">probe syscall.* {
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.3.2.3. Checking Target Variable Availability</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="targetvariables.html" title="3.3.2. Target Variables" /><link rel="prev" href="typecasting.html" title="3.3.2.2. Typecasting" /><link rel="next" href="handlerconditionalstatements.html" title="3.3.3. Conditional Statements" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="typecasting.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="handlerconditionalstatements.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="targetavailable">
- </a>3.3.2.3. Checking Target Variable Availability</h4></div></div></div><a id="idm47722990651712" class="indexterm"></a><div class="para">
+ </a>3.3.2.3. Checking Target Variable Availability</h4></div></div></div><a id="idm47650189182448" class="indexterm"></a><div class="para">
As code evolves the target variables available may change. The <code class="command">@defined</code> makes it easier to handle those variations in the available target variables. The <code class="command">@defined</code> provides a test to see if a particular target variable is available. The result of this test can be used to select the appropriate expression.
</div><div class="para">
The <a class="xref" href="targetavailable.html#available">Example 3.10, “Testing target variable available Example”</a> from the <code class="command">memory.stp</code> tapset provides an probe event alias. Some version of the kernel functions being probed have an argument <code class="command">$flags</code>. When available, the <code class="command">$flags</code> argument is used to generate the local variable <code class="command">write_access</code>. The versions of the probed functions that do not have the <code class="command">$flags</code> argument have a <code class="command">$write</code> argument and that is used instead for the local variable <code class="command">write_access</code>.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.3.2. Target Variables</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="scriptconstructions.html" title="3.3. Basic SystemTap Handler Constructs" /><link rel="prev" href="scriptconstructions.html" title="3.3. Basic SystemTap Handler Constructs" /><link rel="next" href="typecasting.html" title="3.3.2.2. Typecasting" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="scriptconstructions.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="typecasting.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="targetvariables">
- </a>3.3.2. Target Variables</h3></div></div></div><a id="idm47722997408864" class="indexterm"></a><a id="idm47722997177584" class="indexterm"></a><div class="para">
+ </a>3.3.2. Target Variables</h3></div></div></div><a id="idm47650188965968" class="indexterm"></a><a id="idm47650193397808" class="indexterm"></a><div class="para">
The probe events that map to actual locations in the code (for example <code class="command">kernel.function("<em class="replaceable">function</em>")</code> and <code class="command">kernel.statement("<em class="replaceable">statement</em>")</code>) allow the use of <span class="emphasis"><em>target variables</em></span> to obtain the value of variables visible at that location in the code. You can use the <code class="command">-L</code> option to list the target variable available at a probe point. If the debug information is installed for the running kernel, you can run the following command to find out what target variables are available for the <code class="command">vfs_read</code> function:
</div><pre class="screen">stap -L 'kernel.function("vfs_read")'</pre><div class="para">
This will yield something similar to the following:
</div></dd><dt><span class="term">kernel_string_n(<em class="replaceable">address</em>, <em class="replaceable">n</em>)</span></dt><dd><div class="para">
Obtain the string at <em class="replaceable">address</em> from the kernel memory and limits the string to <em class="replaceable">n</em> bytes.
</div></dd></dl></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="targetprettyprinting">
- </a>3.3.2.1. Pretty Printing Target Variables</h4></div></div></div><a id="idm47722994103248" class="indexterm"></a><div class="para">
+ </a>3.3.2.1. Pretty Printing Target Variables</h4></div></div></div><a id="idm47650199495728" class="indexterm"></a><div class="para">
SystemTap scripts are often used to observe what is happening within the code. In many cases just printing the values of the various context variables is sufficient. SystemTap makes a number operations available that can generate printable strings for target variables:
</div><div class="variablelist"><dl class="variablelist"><dt><span class="term">$$vars</span></dt><dd><div class="para">
Expands to a character string that is equivalent to <code class="command">sprintf("parm1=%x ... parmN=%x var1=%x ... varN=%x", parm1, ..., parmN, var1, ..., varN)</code> for each variable in scope at the probe point. Some values may be printed as <span class="quote">“<span class="quote"><code class="command">=?</code></span>”</span> if their run-time location cannot be found.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.3.3. Determining Time Spent in Kernel and User Space</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-profiling.html" title="5.3. Profiling" /><link rel="prev" href="paracallgraph.html" title="5.3.2. Call Graph Tracing" /><link rel="next" href="timeoutssect.html" title="5.3.4. Monitoring Polling Applications" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="paracallgraph.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="timeoutssect.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h3 class="title"><a id="threadtimessect">
- </a>5.3.3. Determining Time Spent in Kernel and User Space</h3></div></div></div><a id="idm47722990877808" class="indexterm"></a><a id="idm47723005446736" class="indexterm"></a><a id="idm47722988712144" class="indexterm"></a><a id="idm47723001297200" class="indexterm"></a><a id="idm47722990800416" class="indexterm"></a><a id="idm47722999144112" class="indexterm"></a><div class="para">
+ </a>5.3.3. Determining Time Spent in Kernel and User Space</h3></div></div></div><a id="idm47650191053984" class="indexterm"></a><a id="idm47650187922336" class="indexterm"></a><a id="idm47650191275936" class="indexterm"></a><a id="idm47650183483104" class="indexterm"></a><a id="idm47650191378336" class="indexterm"></a><a id="idm47650145370832" class="indexterm"></a><div class="para">
This section illustrates how to determine the amount of time any given thread is spending in either kernel or user-space.
</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">thread-times.stp</div>
delete tids
}
</pre>
- </div><a id="idm47723009119936" class="indexterm"></a><a id="idm47722995213632" class="indexterm"></a><a id="idm47722951181136" class="indexterm"></a><div class="para">
+ </div><a id="idm47650180862528" class="indexterm"></a><a id="idm47650183346960" class="indexterm"></a><a id="idm47650154336912" class="indexterm"></a><div class="para">
<a class="xref" href="threadtimessect.html#threadtimes">thread-times.stp</a> lists the top 20 processes currently taking up CPU time within a 5-second sample, along with the total number of CPU ticks made during the sample. The output of this script also notes the percentage of CPU time each process used, as well as whether that time was spent in kernel space or user space.
</div><div class="para">
<a class="xref" href="threadtimessect.html#threadtimesoutput">Example 5.15, “thread-times.stp Sample Output”</a> contains a 5-second sample of the output for <a class="xref" href="threadtimessect.html#threadtimes">thread-times.stp</a>:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.3.4. Monitoring Polling Applications</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-profiling.html" title="5.3. Profiling" /><link rel="prev" href="threadtimessect.html" title="5.3.3. Determining Time Spent in Kernel and User Space" /><link rel="next" href="topsyssect.html" title="5.3.5. Tracking Most Frequently Used System Calls" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="threadtimessect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="topsyssect.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h3 class="title"><a id="timeoutssect">
- </a>5.3.4. Monitoring Polling Applications</h3></div></div></div><a id="idm47723003516912" class="indexterm"></a><a id="idm47722993219552" class="indexterm"></a><a id="idm47723002024848" class="indexterm"></a><a id="idm47722988840688" class="indexterm"></a><div class="para">
+ </a>5.3.4. Monitoring Polling Applications</h3></div></div></div><a id="idm47650193327776" class="indexterm"></a><a id="idm47650197460960" class="indexterm"></a><a id="idm47650183513440" class="indexterm"></a><a id="idm47650197216288" class="indexterm"></a><div class="para">
This section describes how to identify and monitor which applications are polling. Doing so allows you to track unnecessary or excessive polling, which can help you pinpoint areas for improvement in terms of CPU usage and power savings.
</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">timeout.stp</div>
<code class="command">nanosleep</code>
</div></li><li class="listitem"><div class="para">
<code class="command">signal</code>
- </div></li></ul></div><a id="idm47722989102048" class="indexterm"></a><a id="idm47722955184752" class="indexterm"></a><a id="idm47722988887776" class="indexterm"></a><div class="example"><a id="timeoutsoutput">
+ </div></li></ul></div><a id="idm47650183896752" class="indexterm"></a><a id="idm47650151041696" class="indexterm"></a><a id="idm47650183174080" class="indexterm"></a><div class="example"><a id="timeoutsoutput">
</a><p class="title"><strong>Example 5.16. <a class="xref" href="timeoutssect.html#timeouts">timeout.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen"> uid | poll select epoll itimer futex nanosle signal| process
28937 | 148793 0 0 4727 37288 0 0| firefox
22945 | 0 56949 0 1 0 0 0| scim-bridge
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.3.5. Tracking Most Frequently Used System Calls</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-profiling.html" title="5.3. Profiling" /><link rel="prev" href="timeoutssect.html" title="5.3.4. Monitoring Polling Applications" /><link rel="next" href="syscallsbyprocpidsect.html" title="5.3.6. Tracking System Call Volume Per Process" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="timeoutssect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="syscallsbyprocpidsect.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h3 class="title"><a id="topsyssect">
- </a>5.3.5. Tracking Most Frequently Used System Calls</h3></div></div></div><a id="idm47723001763888" class="indexterm"></a><a id="idm47722999756032" class="indexterm"></a><a id="idm47722991006944" class="indexterm"></a><a id="idm47722999772400" class="indexterm"></a><div class="para">
+ </a>5.3.5. Tracking Most Frequently Used System Calls</h3></div></div></div><a id="idm47650186638528" class="indexterm"></a><a id="idm47650192688528" class="indexterm"></a><a id="idm47650188823216" class="indexterm"></a><a id="idm47650190862512" class="indexterm"></a><div class="para">
<a class="xref" href="timeoutssect.html#timeouts">timeout.stp</a> from <a class="xref" href="timeoutssect.html">Section 5.3.4, “Monitoring Polling Applications”</a> helps you identify which applications are polling by examining a small subset of system calls ( <code class="command">poll</code>, <code class="command">select</code>, <code class="command">epoll</code>, <code class="command">itimer</code>, <code class="command">futex</code>, <code class="command">nanosleep</code>, and <code class="command">signal</code>). However, in some systems, an excessive number of system calls outside that small subset might be responsible for time spent in the kernel. If you suspect that an application is using system calls excessively, you need to identify the most frequently used system calls on the system. To do this, use <a class="xref" href="topsyssect.html#topsys">topsys.stp</a>.
</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">topsys.stp</div>
</pre>
</div><div class="para">
<a class="xref" href="topsyssect.html#topsys">topsys.stp</a> lists the top 20 system calls used by the system per 5-second interval. It also lists how many times each system call was used during that period. Refer to <a class="xref" href="topsyssect.html#topsysoutput">Example 5.17, “topsys.stp Sample Output”</a> for a sample output.
- </div><a id="idm47722995626832" class="indexterm"></a><a id="idm47722987953536" class="indexterm"></a><a id="idm47723003734896" class="indexterm"></a><div class="example"><a id="topsysoutput">
+ </div><a id="idm47650193535152" class="indexterm"></a><a id="idm47650189294160" class="indexterm"></a><a id="idm47650190856640" class="indexterm"></a><div class="example"><a id="topsysoutput">
</a><p class="title"><strong>Example 5.17. <a class="xref" href="topsyssect.html#topsys">topsys.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen">--------------------------------------------------------------
SYSCALL COUNT
gettimeofday 1857
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.2.4. I/O Monitoring (By Device)</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-disk.html" title="5.2. Disk" /><link rel="prev" href="traceiosect.html" title="5.2.3. Track Cumulative IO" /><link rel="next" href="inodewatchsect.html" title="5.2.5. Monitoring Reads and Writes to a File" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="traceiosect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="inodewatchsect.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h3 class="title"><a id="traceio2sect">
- </a>5.2.4. I/O Monitoring (By Device)</h3></div></div></div><a id="idm47722952843008" class="indexterm"></a><a id="idm47722949157568" class="indexterm"></a><a id="idm47722988782144" class="indexterm"></a><a id="idm47722997356320" class="indexterm"></a><a id="idm47723005445584" class="indexterm"></a><div class="para">
+ </a>5.2.4. I/O Monitoring (By Device)</h3></div></div></div><a id="idm47650169018336" class="indexterm"></a><a id="idm47650193303728" class="indexterm"></a><a id="idm47650193622400" class="indexterm"></a><a id="idm47650195661008" class="indexterm"></a><a id="idm47650199522576" class="indexterm"></a><div class="para">
This section describes how to monitor I/O activity on a specific device.
</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">traceio2.stp</div>
execname(), pid(), ppfunc(), dev)
}
</pre>
- </div><a id="idm47722994683296" class="indexterm"></a><a id="idm47722957095264" class="indexterm"></a><a id="idm47722954335152" class="indexterm"></a><a id="idm47722997572880" class="indexterm"></a><a id="idm47723005201008" class="indexterm"></a><a id="idm47722953178288" class="indexterm"></a><div class="para">
+ </div><a id="idm47650154978528" class="indexterm"></a><a id="idm47650190470240" class="indexterm"></a><a id="idm47650187266576" class="indexterm"></a><a id="idm47650185728624" class="indexterm"></a><a id="idm47650144741056" class="indexterm"></a><a id="idm47650190921008" class="indexterm"></a><div class="para">
<a class="xref" href="traceio2sect.html#traceio2">traceio2.stp</a> takes 1 argument: the whole device number. To get this number, use <code class="command">stat -c "0x%D" <em class="replaceable">directory</em></code>, where <code class="command"><em class="replaceable">directory</em></code> is located in the device to be monitored.
- </div><a id="idm47723005821744" class="indexterm"></a><a id="idm47722998046544" class="indexterm"></a><a id="idm47722986255120" class="indexterm"></a><div class="para">
+ </div><a id="idm47650188680000" class="indexterm"></a><a id="idm47650200005936" class="indexterm"></a><a id="idm47650190347696" class="indexterm"></a><div class="para">
The <code class="command">usrdev2kerndev()</code> function converts the whole device number into the format understood by the kernel. The output produced by <code class="command">usrdev2kerndev()</code> is used in conjunction with the <code class="command">MKDEV()</code>, <code class="command">MINOR()</code>, and <code class="command">MAJOR()</code> functions to determine the major and minor numbers of a specific device.
</div><div class="para">
The output of <a class="xref" href="traceio2sect.html#traceio2">traceio2.stp</a> includes the name and ID of any process performing a read/write, the function it is performing (that is, <code class="command">vfs_read</code> or <code class="command">vfs_write</code>), and the kernel device number.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.2.3. Track Cumulative IO</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-disk.html" title="5.2. Disk" /><link rel="prev" href="iotimesect.html" title="5.2.2. Tracking I/O Time For Each File Read or Write" /><link rel="next" href="traceio2sect.html" title="5.2.4. I/O Monitoring (By Device)" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="iotimesect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="traceio2sect.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h3 class="title"><a id="traceiosect">
- </a>5.2.3. Track Cumulative IO</h3></div></div></div><a id="idm47723004464752" class="indexterm"></a><a id="idm47722990995088" class="indexterm"></a><a id="idm47722949179520" class="indexterm"></a><a id="idm47723009167904" class="indexterm"></a><a id="idm47722951203216" class="indexterm"></a><a id="idm47722997995520" class="indexterm"></a><div class="para">
+ </a>5.2.3. Track Cumulative IO</h3></div></div></div><a id="idm47650186606304" class="indexterm"></a><a id="idm47650185813488" class="indexterm"></a><a id="idm47650193228528" class="indexterm"></a><a id="idm47650193009664" class="indexterm"></a><a id="idm47650193555712" class="indexterm"></a><a id="idm47650155655808" class="indexterm"></a><div class="para">
This section describes how to track the cumulative amount of I/O to the system.
</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">traceio.stp</div>
</pre>
</div><div class="para">
<a class="xref" href="traceiosect.html#traceio">traceio.stp</a> prints the top ten executables generating I/O traffic over time. In addition, it also tracks the cumulative amount of I/O reads and writes done by those ten executables. This information is tracked and printed out in 1-second intervals, and in descending order.
- </div><a id="idm47722999692544" class="indexterm"></a><a id="idm47722998171952" class="indexterm"></a><a id="idm47722995799600" class="indexterm"></a><div class="para">
+ </div><a id="idm47650192555152" class="indexterm"></a><a id="idm47650191401200" class="indexterm"></a><a id="idm47650180891792" class="indexterm"></a><div class="para">
Note that <a class="xref" href="traceiosect.html#traceio">traceio.stp</a> also uses the local variable <code class="command">$return</code>, which is also used by <a class="xref" href="mainsect-disk.html#scriptdisktop">disktop.stp</a> from <a class="xref" href="mainsect-disk.html#disktop">Section 5.2.1, “Summarizing Disk Read/Write Traffic”</a>.
</div><div class="example"><a id="traceiooutput">
</a><p class="title"><strong>Example 5.8. <a class="xref" href="traceiosect.html#traceio">traceio.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen">[...]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.3.2.2. Typecasting</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="targetvariables.html" title="3.3.2. Target Variables" /><link rel="prev" href="targetvariables.html" title="3.3.2. Target Variables" /><link rel="next" href="targetavailable.html" title="3.3.2.3. Checking Target Variable Availability" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="targetvariables.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="targetavailable.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="typecasting">
- </a>3.3.2.2. Typecasting</h4></div></div></div><a id="idm47723005408528" class="indexterm"></a><div class="para">
+ </a>3.3.2.2. Typecasting</h4></div></div></div><a id="idm47650185675472" class="indexterm"></a><div class="para">
In most cases SystemTap can determine a variable's type from the debug information. However, code may use void pointers for variables (for example memory allocation routines) and typing information is not available. Also the typing information available within a probe handler is not available within a function; SystemTap functions arguments use a long in place of a typed pointer. SystemTap's <code class="command">@cast</code> operator (first available in SystemTap 0.9) can be used to indicate the correct type of the object.
</div><div class="para">
The <a class="xref" href="typecasting.html#casting">Example 3.9, “Casting Example”</a> is from the <code class="command">task.stp</code> tapset. The function returns the value of the <code class="command">state</code> field from a <code class="command">task_struct</code> pointed to by the long <code class="command">task</code>. The first argument of the <code class="command">@cast</code> operator, <code class="command">task</code>, is the pointer to the object. The second argument is the type to cast the object to, <code class="command">task_struct</code>. The third argument lists what file that the type definition information comes from and is optional. With the <code class="command">@cast</code> operator the various fields of this particular <code class="command">task_struct</code> <code class="command">task</code> can be accessed; in this example the <code class="command">state</code> field is obtained.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Chapter 3. Understanding How SystemTap Works</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="using-usage.html" title="2.3. Running SystemTap Scripts" /><link rel="next" href="scripts.html" title="3.2. SystemTap Scripts" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="using-usage.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="scripts.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="chapter" lang="en-US"><div class="titlepage"><div><div><h1 class="title"><a id="understanding-how-systemtap-works">
- </a>Chapter 3. Understanding How SystemTap Works</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="understanding-how-systemtap-works.html#understanding-architecture-tools">3.1. Architecture</a></span></dt><dt><span class="section"><a href="scripts.html">3.2. SystemTap Scripts</a></span></dt><dd><dl><dt><span class="section"><a href="scripts.html#systemtapscript-events">3.2.1. Event</a></span></dt><dt><span class="section"><a href="systemtapscript-handler.html">3.2.2. SystemTap Handler/Body</a></span></dt></dl></dd><dt><span class="section"><a href="scriptconstructions.html">3.3. Basic SystemTap Handler Constructs</a></span></dt><dd><dl><dt><span class="section"><a href="scriptconstructions.html#variablesconstructs">3.3.1. Variables</a></span></dt><dt><span class="section"><a href="targetvariables.html">3.3.2. Target Variables</a></span></dt><dt><span class="section"><a href="handlerconditionalstatements.html">3.3.3. Conditional Statements</a></span></dt><dt><span class="section"><a href="commandlineargssect.html">3.3.4. Command-Line Arguments</a></span></dt></dl></dd><dt><span class="section"><a href="associativearrays.html">3.4. Associative Arrays</a></span></dt><dt><span class="section"><a href="arrayoperators.html">3.5. Array Operations in SystemTap</a></span></dt><dd><dl><dt><span class="section"><a href="arrayoperators.html#arrayops-assignvalue">3.5.1. Assigning an Associated Value</a></span></dt><dt><span class="section"><a href="arrayops-readvalues.html">3.5.2. Reading Values From Arrays</a></span></dt><dt><span class="section"><a href="arrayops-increment.html">3.5.3. Incrementing Associated Values</a></span></dt><dt><span class="section"><a href="arrayops-foreach.html">3.5.4. Processing Multiple Elements in an Array</a></span></dt><dt><span class="section"><a href="arrayops-deleting.html">3.5.5. Clearing/Deleting Arrays and Array Elements</a></span></dt><dt><span class="section"><a href="arrayops-conditionals.html">3.5.6. Using Arrays in Conditional Statements</a></span></dt><dt><span class="section"><a href="arrayops-aggregates.html">3.5.7. Computing for Statistical Aggregates</a></span></dt></dl></dd><dt><span class="section"><a href="understanding-tapsets.html">3.6. Tapsets</a></span></dt></dl></div><a id="idm47722995088960" class="indexterm"></a><div class="para">
+ </a>Chapter 3. Understanding How SystemTap Works</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="understanding-how-systemtap-works.html#understanding-architecture-tools">3.1. Architecture</a></span></dt><dt><span class="section"><a href="scripts.html">3.2. SystemTap Scripts</a></span></dt><dd><dl><dt><span class="section"><a href="scripts.html#systemtapscript-events">3.2.1. Event</a></span></dt><dt><span class="section"><a href="systemtapscript-handler.html">3.2.2. SystemTap Handler/Body</a></span></dt></dl></dd><dt><span class="section"><a href="scriptconstructions.html">3.3. Basic SystemTap Handler Constructs</a></span></dt><dd><dl><dt><span class="section"><a href="scriptconstructions.html#variablesconstructs">3.3.1. Variables</a></span></dt><dt><span class="section"><a href="targetvariables.html">3.3.2. Target Variables</a></span></dt><dt><span class="section"><a href="handlerconditionalstatements.html">3.3.3. Conditional Statements</a></span></dt><dt><span class="section"><a href="commandlineargssect.html">3.3.4. Command-Line Arguments</a></span></dt></dl></dd><dt><span class="section"><a href="associativearrays.html">3.4. Associative Arrays</a></span></dt><dt><span class="section"><a href="arrayoperators.html">3.5. Array Operations in SystemTap</a></span></dt><dd><dl><dt><span class="section"><a href="arrayoperators.html#arrayops-assignvalue">3.5.1. Assigning an Associated Value</a></span></dt><dt><span class="section"><a href="arrayops-readvalues.html">3.5.2. Reading Values From Arrays</a></span></dt><dt><span class="section"><a href="arrayops-increment.html">3.5.3. Incrementing Associated Values</a></span></dt><dt><span class="section"><a href="arrayops-foreach.html">3.5.4. Processing Multiple Elements in an Array</a></span></dt><dt><span class="section"><a href="arrayops-deleting.html">3.5.5. Clearing/Deleting Arrays and Array Elements</a></span></dt><dt><span class="section"><a href="arrayops-conditionals.html">3.5.6. Using Arrays in Conditional Statements</a></span></dt><dt><span class="section"><a href="arrayops-aggregates.html">3.5.7. Computing for Statistical Aggregates</a></span></dt></dl></dd><dt><span class="section"><a href="understanding-tapsets.html">3.6. Tapsets</a></span></dt></dl></div><a id="idm47650188571408" class="indexterm"></a><div class="para">
SystemTap allows users to write and reuse simple scripts to deeply examine the activities of a running Linux system. These scripts can be designed to extract data, filter it, and summarize it quickly (and safely), enabling the diagnosis of complex performance (or even functional) problems.
- </div><a id="idm47722995090304" class="indexterm"></a><a id="idm47722995092208" class="indexterm"></a><a id="idm47722995095200" class="indexterm"></a><div class="para">
+ </div><a id="idm47650188572816" class="indexterm"></a><a id="idm47650188574512" class="indexterm"></a><a id="idm47650188578272" class="indexterm"></a><div class="para">
The essential idea behind a SystemTap script is to name <span class="emphasis"><em>events</em></span>, and to give them <span class="emphasis"><em>handlers</em></span>. When SystemTap runs the script, SystemTap monitors for the event; once the event occurs, the Linux kernel then runs the handler as a quick sub-routine, then resumes.
- </div><a id="idm47722995096992" class="indexterm"></a><a id="idm47722995098192" class="indexterm"></a><div class="para">
+ </div><a id="idm47650188579504" class="indexterm"></a><a id="idm47650154625664" class="indexterm"></a><div class="para">
There are several kind of events; entering/exiting a function, timer expiration, session termination, etc. A handler is a series of script language statements that specify the work to be done whenever the event occurs. This work normally includes extracting data from the event context, storing them into internal variables, and printing results.
</div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="understanding-architecture-tools">
- </a>3.1. Architecture</h2></div></div></div><a id="idm47722995102320" class="indexterm"></a><a id="idm47722995104208" class="indexterm"></a><a id="idm47722995105248" class="indexterm"></a><div class="para">
+ </a>3.1. Architecture</h2></div></div></div><a id="idm47650154629120" class="indexterm"></a><a id="idm47650154630528" class="indexterm"></a><a id="idm47650154631488" class="indexterm"></a><div class="para">
A SystemTap session begins when you run a SystemTap script. This session occurs in the following fashion:
</div><div xmlns:d="http://docbook.org/ns/docbook" class="procedure"><a id="systemtapsession">
- </a><p class="title"><strong>Procedure 3.1. SystemTap Session</strong></p><a id="idm47722995107712" class="indexterm"></a><a id="idm47722995108864" class="indexterm"></a><a id="idm47722995109856" class="indexterm"></a><ol class="1"><li class="step"><div class="para">
+ </a><p class="title"><strong>Procedure 3.1. SystemTap Session</strong></p><a id="idm47650154633856" class="indexterm"></a><a id="idm47650154635664" class="indexterm"></a><a id="idm47650154636656" class="indexterm"></a><ol class="1"><li class="step"><div class="para">
First, SystemTap checks the script against the existing tapset library (normally in <code class="filename">/usr/share/systemtap/tapset/</code> for any tapsets used. SystemTap will then substitute any located tapsets with their corresponding definitions in the tapset library.
</div></li><li class="step"><div class="para">
SystemTap then translates the script to C, running the system C compiler to create a kernel module from it. The tools that perform this step are contained in the <code class="filename">systemtap</code> package (refer to <a class="xref" href="using-systemtap.html#installproper">Section 2.1.1, “Installing SystemTap”</a> for more information).
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.6. Tapsets</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /><link rel="prev" href="arrayops-aggregates.html" title="3.5.7. Computing for Statistical Aggregates" /><link rel="next" href="userspace-probing.html" title="Chapter 4. User-space Probing" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayops-aggregates.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="userspace-probing.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="understanding-tapsets">
- </a>3.6. Tapsets</h2></div></div></div><a id="idm47722990780720" class="indexterm"></a><div class="para">
+ </a>3.6. Tapsets</h2></div></div></div><a id="idm47650196242992" class="indexterm"></a><div class="para">
<em class="firstterm">Tapsets</em> are scripts that form a library of pre-written probes and functions to be used in SystemTap scripts. When a user runs a SystemTap script, SystemTap checks the script's probe events and handlers against the tapset library; SystemTap then loads the corresponding probes and functions before translating the script to C (refer to <a class="xref" href="understanding-how-systemtap-works.html#understanding-architecture-tools">Section 3.1, “Architecture”</a> for information on what transpires in a SystemTap session).
</div><div class="para">
Like SystemTap scripts, tapsets use the file name extension <code class="filename">.stp</code>. The standard library of tapsets is located in <code class="filename">/usr/share/systemtap/tapset/</code> by default. However, unlike SystemTap scripts, tapsets are not meant for direct execution; rather, they constitute the library from which other scripts can pull definitions.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Chapter 5. Useful SystemTap Scripts</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="ustack.html" title="4.3. User-Space Stack Backtraces" /><link rel="next" href="mainsect-disk.html" title="5.2. Disk" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="ustack.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="mainsect-disk.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="chapter" lang="en-US"><div class="titlepage"><div><div><h1 class="title"><a id="useful-systemtap-scripts">
- </a>Chapter 5. Useful SystemTap Scripts</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="useful-systemtap-scripts.html#mainsect-network">5.1. Network</a></span></dt><dd><dl><dt><span class="section"><a href="useful-systemtap-scripts.html#nettopsect">5.1.1. Network Profiling</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#sockettracesect">5.1.2. Tracing Functions Called in Network Socket Code</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#tcpconnectionssect">5.1.3. Monitoring Incoming TCP Connections</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#tcpdumplikesect">5.1.4. Monitoring TCP Packets</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#dropwatchsect">5.1.5. Monitoring Network Packets Drops in Kernel</a></span></dt></dl></dd><dt><span class="section"><a href="mainsect-disk.html">5.2. Disk</a></span></dt><dd><dl><dt><span class="section"><a href="mainsect-disk.html#disktop">5.2.1. Summarizing Disk Read/Write Traffic</a></span></dt><dt><span class="section"><a href="iotimesect.html">5.2.2. Tracking I/O Time For Each File Read or Write</a></span></dt><dt><span class="section"><a href="traceiosect.html">5.2.3. Track Cumulative IO</a></span></dt><dt><span class="section"><a href="traceio2sect.html">5.2.4. I/O Monitoring (By Device)</a></span></dt><dt><span class="section"><a href="inodewatchsect.html">5.2.5. Monitoring Reads and Writes to a File</a></span></dt><dt><span class="section"><a href="inodewatch2sect.html">5.2.6. Monitoring Changes to File Attributes</a></span></dt><dt><span class="section"><a href="ioblktimesect.html">5.2.7. Periodically Print I/O Block Time</a></span></dt></dl></dd><dt><span class="section"><a href="mainsect-profiling.html">5.3. Profiling</a></span></dt><dd><dl><dt><span class="section"><a href="mainsect-profiling.html#countcallssect">5.3.1. Counting Function Calls Made</a></span></dt><dt><span class="section"><a href="paracallgraph.html">5.3.2. Call Graph Tracing</a></span></dt><dt><span class="section"><a href="threadtimessect.html">5.3.3. Determining Time Spent in Kernel and User Space</a></span></dt><dt><span class="section"><a href="timeoutssect.html">5.3.4. Monitoring Polling Applications</a></span></dt><dt><span class="section"><a href="topsyssect.html">5.3.5. Tracking Most Frequently Used System Calls</a></span></dt><dt><span class="section"><a href="syscallsbyprocpidsect.html">5.3.6. Tracking System Call Volume Per Process</a></span></dt></dl></dd><dt><span class="section"><a href="futexcontentionsect.html">5.4. Identifying Contended User-Space Locks</a></span></dt></dl></div><a id="idm47722994623920" class="indexterm"></a><a id="idm47722994625328" class="indexterm"></a><a id="idm47722994626256" class="indexterm"></a><a id="idm47722994627184" class="indexterm"></a><div class="para">
+ </a>Chapter 5. Useful SystemTap Scripts</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="useful-systemtap-scripts.html#mainsect-network">5.1. Network</a></span></dt><dd><dl><dt><span class="section"><a href="useful-systemtap-scripts.html#nettopsect">5.1.1. Network Profiling</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#sockettracesect">5.1.2. Tracing Functions Called in Network Socket Code</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#tcpconnectionssect">5.1.3. Monitoring Incoming TCP Connections</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#tcpdumplikesect">5.1.4. Monitoring TCP Packets</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#dropwatchsect">5.1.5. Monitoring Network Packets Drops in Kernel</a></span></dt></dl></dd><dt><span class="section"><a href="mainsect-disk.html">5.2. Disk</a></span></dt><dd><dl><dt><span class="section"><a href="mainsect-disk.html#disktop">5.2.1. Summarizing Disk Read/Write Traffic</a></span></dt><dt><span class="section"><a href="iotimesect.html">5.2.2. Tracking I/O Time For Each File Read or Write</a></span></dt><dt><span class="section"><a href="traceiosect.html">5.2.3. Track Cumulative IO</a></span></dt><dt><span class="section"><a href="traceio2sect.html">5.2.4. I/O Monitoring (By Device)</a></span></dt><dt><span class="section"><a href="inodewatchsect.html">5.2.5. Monitoring Reads and Writes to a File</a></span></dt><dt><span class="section"><a href="inodewatch2sect.html">5.2.6. Monitoring Changes to File Attributes</a></span></dt><dt><span class="section"><a href="ioblktimesect.html">5.2.7. Periodically Print I/O Block Time</a></span></dt></dl></dd><dt><span class="section"><a href="mainsect-profiling.html">5.3. Profiling</a></span></dt><dd><dl><dt><span class="section"><a href="mainsect-profiling.html#countcallssect">5.3.1. Counting Function Calls Made</a></span></dt><dt><span class="section"><a href="paracallgraph.html">5.3.2. Call Graph Tracing</a></span></dt><dt><span class="section"><a href="threadtimessect.html">5.3.3. Determining Time Spent in Kernel and User Space</a></span></dt><dt><span class="section"><a href="timeoutssect.html">5.3.4. Monitoring Polling Applications</a></span></dt><dt><span class="section"><a href="topsyssect.html">5.3.5. Tracking Most Frequently Used System Calls</a></span></dt><dt><span class="section"><a href="syscallsbyprocpidsect.html">5.3.6. Tracking System Call Volume Per Process</a></span></dt></dl></dd><dt><span class="section"><a href="futexcontentionsect.html">5.4. Identifying Contended User-Space Locks</a></span></dt></dl></div><a id="idm47650147747024" class="indexterm"></a><a id="idm47650147748880" class="indexterm"></a><a id="idm47650147749808" class="indexterm"></a><a id="idm47650147750736" class="indexterm"></a><div class="para">
This chapter enumerates several SystemTap scripts you can use to monitor and investigate different subsystems. All of these scripts are available at <code class="filename">/usr/share/systemtap/testsuite/systemtap.examples/</code> once you install the <code class="filename">systemtap-testsuite</code> RPM.
</div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="mainsect-network">
</a>5.1. Network</h2></div></div></div><div class="para">
The following sections showcase scripts that trace network-related functions and build a profile of network activity.
</div><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h3 class="title"><a id="nettopsect">
- </a>5.1.1. Network Profiling</h3></div></div></div><a id="idm47722994045808" class="indexterm"></a><a id="idm47722994047264" class="indexterm"></a><a id="idm47722994048704" class="indexterm"></a><a id="idm47723004351808" class="indexterm"></a><a id="idm47723004353280" class="indexterm"></a><div class="para">
+ </a>5.1.1. Network Profiling</h3></div></div></div><a id="idm47650144404048" class="indexterm"></a><a id="idm47650144405488" class="indexterm"></a><a id="idm47650144405776" class="indexterm"></a><a id="idm47650169076368" class="indexterm"></a><a id="idm47650169077840" class="indexterm"></a><div class="para">
This section describes how to profile network activity. <a class="xref" href="useful-systemtap-scripts.html#nettop">nettop.stp</a> provides a glimpse into how much network traffic each process is generating on a machine.
</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">nettop.stp</div>
print_activity()
}
</pre>
- </div><a id="idm47723009371904" class="indexterm"></a><a id="idm47722988598352" class="indexterm"></a><a id="idm47723005353072" class="indexterm"></a><div class="para">
+ </div><a id="idm47650184985408" class="indexterm"></a><a id="idm47650197474112" class="indexterm"></a><a id="idm47650184995264" class="indexterm"></a><div class="para">
Note that <code class="command">function print_activity()</code> uses the following expressions:
</div><pre class="screen">n_xmit ? @sum(ifxmit[pid, dev, exec, uid])/1024 : 0
n_recv ? @sum(ifrecv[pid, dev, exec, uid])/1024 : 0</pre><div class="para">
11362 0 eth0 0 7 0 0 firefox
3897 0 eth0 0 1 0 0 multiload-apple
[...]</pre></div></div></div><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h3 class="title"><a id="sockettracesect">
- </a>5.1.2. Tracing Functions Called in Network Socket Code</h3></div></div></div><a id="idm47722987701520" class="indexterm"></a><a id="idm47723001513968" class="indexterm"></a><a id="idm47722954958784" class="indexterm"></a><a id="idm47722990541600" class="indexterm"></a><a id="idm47722995464416" class="indexterm"></a><a id="idm47722994042528" class="indexterm"></a><a id="idm47723004460096" class="indexterm"></a><a id="idm47723003847504" class="indexterm"></a><div class="para">
+ </a>5.1.2. Tracing Functions Called in Network Socket Code</h3></div></div></div><a id="idm47650144257488" class="indexterm"></a><a id="idm47650150928688" class="indexterm"></a><a id="idm47650185668240" class="indexterm"></a><a id="idm47650143696224" class="indexterm"></a><a id="idm47650193498080" class="indexterm"></a><a id="idm47650154439360" class="indexterm"></a><a id="idm47650146434656" class="indexterm"></a><a id="idm47650184836800" class="indexterm"></a><div class="para">
This section describes how to trace functions called from the kernel's <code class="filename">net/socket.c</code> file. This task helps you identify, in finer detail, how each process interacts with the network at the kernel level.
</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">socket-trace.stp</div>
[...]</pre></div></div><div class="para">
<a class="xref" href="useful-systemtap-scripts.html#sockettraceoutput">Example 5.2, “socket-trace.stp Sample Output”</a> contains a 3-second excerpt of the output for <a class="xref" href="useful-systemtap-scripts.html#sockettrace">socket-trace.stp</a>. For more information about the output of this script as provided by <code class="command">thread_indent()</code>, refer to <a class="xref" href="systemtapscript-handler.html#systemtapscript-functions">SystemTap Functions</a> <a class="xref" href="systemtapscript-handler.html#thread_indent">Example 3.6, “thread_indent.stp”</a>.
</div></div><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h3 class="title"><a id="tcpconnectionssect">
- </a>5.1.3. Monitoring Incoming TCP Connections</h3></div></div></div><a id="idm47722997599296" class="indexterm"></a><a id="idm47722960498400" class="indexterm"></a><a id="idm47723005007504" class="indexterm"></a><a id="idm47722957257248" class="indexterm"></a><a id="idm47722995371152" class="indexterm"></a><div class="para">
+ </a>5.1.3. Monitoring Incoming TCP Connections</h3></div></div></div><a id="idm47650193145008" class="indexterm"></a><a id="idm47650144690064" class="indexterm"></a><a id="idm47650187016512" class="indexterm"></a><a id="idm47650147600432" class="indexterm"></a><a id="idm47650196268144" class="indexterm"></a><div class="para">
This section illustrates how to monitor incoming TCP connections. This task is useful in identifying any unauthorized, suspicious, or otherwise unwanted network access requests in real time.
</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">tcp_connections.stp</div>
</a><p class="title"><strong>Example 5.3. <a class="xref" href="useful-systemtap-scripts.html#tcpconnections">tcp_connections.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen">UID CMD PID PORT IP_SOURCE
0 sshd 3165 22 10.64.0.227
0 sshd 3165 22 10.64.0.227</pre></div></div></div><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h3 class="title"><a id="tcpdumplikesect">
- </a>5.1.4. Monitoring TCP Packets</h3></div></div></div><a id="idm47723004525712" class="indexterm"></a><a id="idm47722999951600" class="indexterm"></a><a id="idm47722999611664" class="indexterm"></a><a id="idm47722987962128" class="indexterm"></a><a id="idm47723004350832" class="indexterm"></a><div class="para">
+ </a>5.1.4. Monitoring TCP Packets</h3></div></div></div><a id="idm47650188765376" class="indexterm"></a><a id="idm47650196094576" class="indexterm"></a><a id="idm47650182902208" class="indexterm"></a><a id="idm47650180892384" class="indexterm"></a><a id="idm47650183780016" class="indexterm"></a><div class="para">
This section illustrates how to monitor TCP packets received by the system. This is useful in analyzing network traffic generated by applications running on the system.
</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">tcpdumplike.stp</div>
209.85.229.147 10.0.2.15 80 21141 0 1 1 0 0 0
209.85.229.118 10.0.2.15 80 63433 0 1 1 0 0 0
[...]</pre></div></div></div><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h3 class="title"><a id="dropwatchsect">
- </a>5.1.5. Monitoring Network Packets Drops in Kernel</h3></div></div></div><a id="idm47723001884560" class="indexterm"></a><a id="idm47722959399696" class="indexterm"></a><a id="idm47722957318496" class="indexterm"></a><a id="idm47722960379840" class="indexterm"></a><a id="idm47722988875760" class="indexterm"></a><div class="para">
- <a id="idm47722998003424" class="indexterm"></a> The network stack in Linux can discard packets for various reasons. Some Linux kernels include a tracepoint, <code class="command">kernel.trace("kfree_skb")</code>, which easily tracks where packets are discarded. <a class="xref" href="useful-systemtap-scripts.html#dropwatch">dropwatch.stp</a> uses <code class="command">kernel.trace("kfree_skb")</code> to trace packet discards; the script summarizes which locations discard packets every five-second interval.
+ </a>5.1.5. Monitoring Network Packets Drops in Kernel</h3></div></div></div><a id="idm47650151382448" class="indexterm"></a><a id="idm47650150763200" class="indexterm"></a><a id="idm47650182839616" class="indexterm"></a><a id="idm47650150610992" class="indexterm"></a><a id="idm47650180829552" class="indexterm"></a><div class="para">
+ <a id="idm47650196207360" class="indexterm"></a> The network stack in Linux can discard packets for various reasons. Some Linux kernels include a tracepoint, <code class="command">kernel.trace("kfree_skb")</code>, which easily tracks where packets are discarded. <a class="xref" href="useful-systemtap-scripts.html#dropwatch">dropwatch.stp</a> uses <code class="command">kernel.trace("kfree_skb")</code> to trace packet discards; the script summarizes which locations discard packets every five-second interval.
</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">dropwatch.stp</div>
<pre class="programlisting">#! /usr/bin/env stap
</div><pre class="screen"><code class="command">grep CONFIG_UTRACE /boot/config-`uname -r`</code></pre><div class="para">
If the Linux kernel supports user-space probing, the command produces the following output:
</div><pre class="screen">CONFIG_UTRACE=y</pre><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="uevents">
- </a>4.1. User-Space Events</h2></div></div></div><a id="idm47722997948480" class="indexterm"></a><div class="para">
+ </a>4.1. User-Space Events</h2></div></div></div><a id="idm47650190962384" class="indexterm"></a><div class="para">
All user-space event probes begin with <span class="emphasis"><em>process</em></span>. You can limit the process events to a specific running process by specifying the process ID. You can also limit the process events to monitor a particular executable by specifying the path to the executable (PATH). SystemTap makes use of the <code class="envar">PATH</code> environment variable, which allows you to use both the name used on the command-line to start the executable and the absolute path to the executable.
</div><div class="para">
Several of the user-space probe events limit their scope to a particular executable name (PATH), because SystemTap must use debug information to statically analyze where to place the probes. But for many user-space probe events, the process ID and executable name are optional. Any <code class="command">process</code> event in the list below that include process ID or the path to the executable must include those arguments. The process ID and path to the executable are optional for the <code class="command">process</code> events that do not list them:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Chapter 2. Using SystemTap</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="intro-systemtap-limitations.html" title="1.3. Limitations of SystemTap" /><link rel="next" href="cross-compiling.html" title="2.2. Generating Instrumentation for Other Computers" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="intro-systemtap-limitations.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="cross-compiling.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="chapter" lang="en-US"><div class="titlepage"><div><div><h1 class="title"><a id="using-systemtap">
- </a>Chapter 2. Using SystemTap</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="using-systemtap.html#using-setup">2.1. Installation and Setup</a></span></dt><dd><dl><dt><span class="section"><a href="using-systemtap.html#installproper">2.1.1. Installing SystemTap</a></span></dt><dt><span class="section"><a href="using-systemtap.html#install-kinfo">2.1.2. Installing Required Kernel Information Packages Manually</a></span></dt><dt><span class="section"><a href="using-systemtap.html#testing">2.1.3. Initial Testing</a></span></dt></dl></dd><dt><span class="section"><a href="cross-compiling.html">2.2. Generating Instrumentation for Other Computers</a></span></dt><dt><span class="section"><a href="using-usage.html">2.3. Running SystemTap Scripts</a></span></dt><dd><dl><dt><span class="section"><a href="using-usage.html#flight-recorder">2.3.1. SystemTap Flight Recorder Mode</a></span></dt></dl></dd></dl></div><a id="idm47722952742112" class="indexterm"></a><div class="para">
+ </a>Chapter 2. Using SystemTap</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="using-systemtap.html#using-setup">2.1. Installation and Setup</a></span></dt><dd><dl><dt><span class="section"><a href="using-systemtap.html#installproper">2.1.1. Installing SystemTap</a></span></dt><dt><span class="section"><a href="using-systemtap.html#install-kinfo">2.1.2. Installing Required Kernel Information Packages Manually</a></span></dt><dt><span class="section"><a href="using-systemtap.html#testing">2.1.3. Initial Testing</a></span></dt></dl></dd><dt><span class="section"><a href="cross-compiling.html">2.2. Generating Instrumentation for Other Computers</a></span></dt><dt><span class="section"><a href="using-usage.html">2.3. Running SystemTap Scripts</a></span></dt><dd><dl><dt><span class="section"><a href="using-usage.html#flight-recorder">2.3.1. SystemTap Flight Recorder Mode</a></span></dt></dl></dd></dl></div><a id="idm47650181106160" class="indexterm"></a><div class="para">
This chapter documents how to install SystemTap in the system and explains how to use the <code class="command">stap</code> utility to run SystemTap scripts.
</div><div xml:lang="en-US" class="section" lang="en-US"><div class="titlepage"><div><div><h2 class="title"><a id="using-setup">
- </a>2.1. Installation and Setup</h2></div></div></div><a id="idm47722952747344" class="indexterm"></a><a id="idm47722952748576" class="indexterm"></a><div class="para">
+ </a>2.1. Installation and Setup</h2></div></div></div><a id="idm47650181110944" class="indexterm"></a><a id="idm47650181112656" class="indexterm"></a><div class="para">
To deploy SystemTap, install the SystemTap packages along with the corresponding set of <span class="package">-devel</span>, <span class="package">-debuginfo</span>, and <span class="package">-debuginfo-common</span> packages for your kernel. If your system has multiple kernels installed and you intend to use SystemTap on more than one of them, also install the <span class="package">-devel</span> and <span class="package">-debuginfo</span> packages for <span class="emphasis"><em>each</em></span> of those kernel versions.
</div><div class="para">
The following sections discuss the installation procedures in greater detail.
</div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="installproper">
</a>2.1.1. Installing SystemTap</h3></div></div></div><div class="para">
To deploy SystemTap, install the following RPM packages:
- </div><a id="idm47722952758512" class="indexterm"></a><a id="idm47722952759968" class="indexterm"></a><a id="idm47722952761072" class="indexterm"></a><a id="idm47722952763968" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para">
+ </div><a id="idm47650181125968" class="indexterm"></a><a id="idm47650181123568" class="indexterm"></a><a id="idm47650181125152" class="indexterm"></a><a id="idm47650181126448" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para">
<span class="package">systemtap</span>
</div></li><li class="listitem"><div class="para">
<span class="package">systemtap-runtime</span>
</div><pre class="screen"><code class="command">stap-prep</code></pre><div class="para">
If this command does not work, try manual installation as described below.
</div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="install-kinfo">
- </a>2.1.2. Installing Required Kernel Information Packages Manually</h3></div></div></div><a id="idm47722952770640" class="indexterm"></a><a id="idm47722952772064" class="indexterm"></a><a id="idm47722952773376" class="indexterm"></a><a id="idm47722952774304" class="indexterm"></a><a id="idm47722952775280" class="indexterm"></a><a id="idm47722952776752" class="indexterm"></a><div class="para">
+ </a>2.1.2. Installing Required Kernel Information Packages Manually</h3></div></div></div><a id="idm47650181134240" class="indexterm"></a><a id="idm47650181136144" class="indexterm"></a><a id="idm47650181136832" class="indexterm"></a><a id="idm47650181137904" class="indexterm"></a><a id="idm47650181138880" class="indexterm"></a><a id="idm47650181140352" class="indexterm"></a><div class="para">
SystemTap needs information about the kernel in order to place instrumentation in it (in other words, probe it). This information also allows SystemTap to generate the code for the instrumentation.
</div><div class="para">
The required information is contained in the matching <span class="package">-devel</span>, <span class="package">-debuginfo</span>, and <span class="package">-debuginfo-common</span> packages for your kernel. The necessary <span class="package">-devel</span> and <span class="package">-debuginfo</span> packages for the ordinary "vanilla" kernel are as follows:
<span class="package">kernel-devel</span>
</div></li></ul></div><div class="para">
Likewise, the necessary packages for the PAE kernel are <span class="package">kernel-PAE-debuginfo</span>, <span class="package">kernel-PAE-debuginfo-common</span>, and <span class="package">kernel-PAE-devel</span>.
- </div><a id="idm47722989138656" class="indexterm"></a><a id="idm47722989139936" class="indexterm"></a><a id="idm47722989140896" class="indexterm"></a><a id="idm47722989145312" class="indexterm"></a><div class="para">
+ </div><a id="idm47650183654928" class="indexterm"></a><a id="idm47650183652432" class="indexterm"></a><a id="idm47650183653392" class="indexterm"></a><a id="idm47650183654512" class="indexterm"></a><div class="para">
To determine what kernel your system is currently using, use:
</div><pre class="screen">uname -r</pre><div class="para">
For example, if you intend to use SystemTap on kernel version <span class="emphasis"><em>2.6.18-53.el5</em></span> on an <span class="emphasis"><em>i686</em></span> machine, download and install the following RPM packages:
<code class="command">debuginfo-install kernel-PAE-2.6.18-53.1.13.el5</code></pre><div class="para">
Once you have manually downloaded the required packages to the machine, run the following command as root to install them:
</div><pre class="screen"><code class="command">rpm --force -ivh <em class="replaceable">package_names</em></code></pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="testing">
- </a>2.1.3. Initial Testing</h3></div></div></div><a id="idm47722987369712" class="indexterm"></a><a id="idm47722987370160" class="indexterm"></a><a id="idm47722987371088" class="indexterm"></a><div class="para">
+ </a>2.1.3. Initial Testing</h3></div></div></div><a id="idm47650187092160" class="indexterm"></a><a id="idm47650188091024" class="indexterm"></a><a id="idm47650188091952" class="indexterm"></a><div class="para">
If you are currently using the kernel you intend to probe with SystemTap, you can immediately test whether the deployment was successful. If not, you restart the system and load the appropriate kernel.
</div><div class="para">
To start the test, run the following command:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">2.3. Running SystemTap Scripts</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="using-systemtap.html" title="Chapter 2. Using SystemTap" /><link rel="prev" href="cross-compiling.html" title="2.2. Generating Instrumentation for Other Computers" /><link rel="next" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="cross-compiling.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="understanding-how-systemtap-works.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="using-usage">
- </a>2.3. Running SystemTap Scripts</h2></div></div></div><a id="idm47722994281296" class="indexterm"></a><a id="idm47722991070672" class="indexterm"></a><a id="idm47722991069264" class="indexterm"></a><a id="idm47722991067824" class="indexterm"></a><a id="idm47723005330624" class="indexterm"></a><a id="idm47723005329184" class="indexterm"></a><div class="para">
+ </a>2.3. Running SystemTap Scripts</h2></div></div></div><a id="idm47650183681376" class="indexterm"></a><a id="idm47650199427408" class="indexterm"></a><a id="idm47650199426000" class="indexterm"></a><a id="idm47650154346512" class="indexterm"></a><a id="idm47650151205968" class="indexterm"></a><a id="idm47650151204528" class="indexterm"></a><div class="para">
SystemTap is distributed with a number of command line tools that allow you to monitor the activities of the system. The <code class="command">stap</code> command reads probing instructions from a SystemTap script, translates these instructions into C code, builds a kernel module, and loads it into the running Linux kernel. The <code class="command">staprun</code> command runs SystemTap instrumentation, that is, a kernel module built from SystemTap scripts during a cross-instrumentation.
- </div><a id="idm47723003893008" class="indexterm"></a><div class="para">
+ </div><a id="idm47650151217280" class="indexterm"></a><div class="para">
Running <code class="command">stap</code> and <code class="command">staprun</code> requires elevated privileges to the system. Because not all users can be granted root access just to run SystemTap, you can allow a non-privileged user to run SystemTap instrumentation on their machine by adding them to one of the following user groups:
- </div><div class="variablelist"><dl class="variablelist"><dt><span class="term">stapdev</span></dt><dd><a id="idm47723005300368" class="indexterm"></a><a id="idm47723005299408" class="indexterm"></a><div class="para">
+ </div><div class="variablelist"><dl class="variablelist"><dt><span class="term">stapdev</span></dt><dd><a id="idm47650191474048" class="indexterm"></a><a id="idm47650197246528" class="indexterm"></a><div class="para">
Members of this group can use the <code class="command">stap</code> command to run SystemTap scripts, or <code class="command">staprun</code> to run SystemTap instrumentation modules.
</div><div class="para">
Running the <code class="command">stap</code> command involves compiling SystemTap scripts into kernel modules and loading them into the kernel. This operation requires elevated privileges to the system, which are granted to <code class="systemitem">stapdev</code> members. Unfortunately, such privileges also grant effective root access to <code class="systemitem">stapdev</code> members. As a consequence, only grant <code class="systemitem">stapdev</code> group membership to users whom you can trust with root access.
- </div></dd><dt><span class="term">stapusr</span></dt><dd><a id="idm47722995649952" class="indexterm"></a><a id="idm47722995648992" class="indexterm"></a><div class="para">
+ </div></dd><dt><span class="term">stapusr</span></dt><dd><a id="idm47650191423376" class="indexterm"></a><a id="idm47650191422416" class="indexterm"></a><div class="para">
Members of this group can only use the <code class="command">staprun</code> command to run SystemTap instrumentation modules. In addition, they can only run modules from the <code class="filename">/lib/modules/<em class="replaceable">kernel_version</em>/systemtap/</code> directory. Note that this directory must be owned only by the root user, and must only be writable by the root user.
</div></dd></dl></div><div class="para">
The <code class="command">stap</code> command reads a SystemTap script either from a file, or from standard input. To tell <code class="command">stap</code> to read a SystemTap script from a file, specify the file name on the command line:
- </div><pre class="screen"><code class="command">stap <em class="replaceable">file_name</em></code></pre><a id="idm47722990493312" class="indexterm"></a><a id="idm47722990491904" class="indexterm"></a><a id="idm47722990490496" class="indexterm"></a><div class="para">
+ </div><pre class="screen"><code class="command">stap <em class="replaceable">file_name</em></code></pre><a id="idm47650150699952" class="indexterm"></a><a id="idm47650150698544" class="indexterm"></a><a id="idm47650187363424" class="indexterm"></a><div class="para">
To instruct <code class="command">stap</code> to read a SystemTap script from standard input, use the <code class="option">-</code> switch instead of the file name. Note that any command-line options you wish to use must be inserted before the <code class="option">-</code> switch. For example, to make the output of the <code class="command">stap</code> command more verbose, type:
</div><pre class="screen"><code class="command">echo "probe timer.s(1) {exit()}" | stap -v -</code></pre><div class="para">
Below is a list of commonly used <code class="command">stap</code> options:
- </div><a id="idm47722990927744" class="indexterm"></a><a id="idm47722990926304" class="indexterm"></a><div class="variablelist"><a id="idm47722990924544" class="indexterm"></a><dl class="variablelist"><dt><span class="term">-v</span></dt><dd><div class="para">
+ </div><a id="idm47650193599296" class="indexterm"></a><a id="idm47650190268320" class="indexterm"></a><div class="variablelist"><a id="idm47650190266560" class="indexterm"></a><dl class="variablelist"><dt><span class="term">-v</span></dt><dd><div class="para">
Makes the output of the SystemTap session more verbose. You can repeat this option multiple times to provide more details on the script's execution, for example:
</div><pre class="screen"><code class="command">stap -vvv script.stp</code></pre><div class="para">
This option is particularly useful if you encounter any errors in running the script. For more information about common SystemTap script errors, refer to <a class="xref" href="errors.html">Chapter 6, <em>Understanding SystemTap Errors</em></a>.
</div></dd></dl></div><div class="para">
For more information about the <code class="command">stap</code> command, refer to the <span class="citerefentry"><span class="refentrytitle">stap</span>(1)</span> man page. For more information about the <code class="command">staprun</code> command and cross-instrumentation, refer to <a class="xref" href="cross-compiling.html">Section 2.2, “Generating Instrumentation for Other Computers”</a> or the <span class="citerefentry"><span class="refentrytitle">staprun</span>(8)</span> man page.
</div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="flight-recorder">
- </a>2.3.1. SystemTap Flight Recorder Mode</h3></div></div></div><a id="idm47722990923280" class="indexterm"></a><div class="para">
+ </a>2.3.1. SystemTap Flight Recorder Mode</h3></div></div></div><a id="idm47650196017024" class="indexterm"></a><div class="para">
SystemTap's flight recorder mode allows you to run a SystemTap script for long periods of time and just focus on recent output. The flight recorder mode limits the amount of output generated.
</div><div class="para">
There are two variations of the flight recorder mode: <em class="firstterm">in-memory</em> and <em class="firstterm">file</em> mode. In both cases, the SystemTap script runs as a background process.
</div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="memory-flight-recorder">
- </a>2.3.1.1. In-memory Flight Recorder</h4></div></div></div><a id="idm47722995723392" class="indexterm"></a><div class="para">
+ </a>2.3.1.1. In-memory Flight Recorder</h4></div></div></div><a id="idm47650197177456" class="indexterm"></a><div class="para">
When flight recorder mode is used without a file name, SystemTap uses a buffer in kernel memory to store the output of the script. Once the SystemTap instrumentation module is loaded and the probes start running, the instrumentation detaches and is put in the background. When the interesting event occurs, you can reattach to the instrumentation to see the recent output in the memory buffer and any continuing output.
</div><div class="para">
To run a SystemTap script by using the flight recorder in-memory mode, run the <code class="command">stap</code> command with the <code class="option">-F</code> command line option:
</div><pre class="screen"><code class="command">staprun -A stap_5dd0073edcb1f13f7565d8c343063e68_19556</code></pre><div class="para">
By default, the kernel buffer is 1MB in size. You can increase this value by using the <code class="option">-s</code> option with the size in megabytes (rounded up to the next power over 2) for the buffer. For example, <code class="option">-s2</code> on the SystemTap command line would specify 2MB for the buffer.
</div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="file-flight-recorder">
- </a>2.3.1.2. File Flight Recorder</h4></div></div></div><a id="idm47722954311344" class="indexterm"></a><div class="para">
+ </a>2.3.1.2. File Flight Recorder</h4></div></div></div><a id="idm47650183027184" class="indexterm"></a><div class="para">
The flight recorder mode can also store data to files. You can control the number and size of the files kept by using the <code class="option">-S</code> option followed by two numerical arguments separated by a comma: the first argument is the maximum size in megabytes for the each output file, the second argument is the number of recent files to keep. To specify the file name, use the <code class="option">-o</code> option followed by the name. SystemTap automatically adds a number suffix to the file name to indicate the order of the files.
</div><div class="para">
The following command starts SystemTap in file flight recorder mode with the output going to files named <code class="filename">/tmp/iotime.log.<em class="replaceable">[0-9]+</em></code>, each file 1MB or smaller, and keeping latest two files:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">4.3. User-Space Stack Backtraces</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="userspace-probing.html" title="Chapter 4. User-space Probing" /><link rel="prev" href="utargetvariable.html" title="4.2. Accessing User-Space Target Variables" /><link rel="next" href="useful-systemtap-scripts.html" title="Chapter 5. Useful SystemTap Scripts" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="utargetvariable.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="useful-systemtap-scripts.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="ustack">
- </a>4.3. User-Space Stack Backtraces</h2></div></div></div><a id="idm47722988616720" class="indexterm"></a><div class="para">
+ </a>4.3. User-Space Stack Backtraces</h2></div></div></div><a id="idm47650193588544" class="indexterm"></a><div class="para">
The probe point (<code class="function">pp</code>) function indicates which particular event triggered the SystemTap event handler. A probe on the entry into a function would list the function name. However, in many cases the same probe point event may be triggered by many different modules in the program; this is particularly true for functions in shared libraries. A SystemTap backtrace of the user-space stack can provide additional context on how the probe point event is triggered.
</div><div class="para">
The user-space stack backtrace generation is complicated by the compiler producing code optimized to eliminate stack frame pointers. However, the compiler also includes information in the debug information section to allow debugging tools to produce stack backtraces. SystemTap user-space stack backtrace mechanism makes use of that debug information to walk the stack to generate stack traces for 32-bit and 64-bit x86 processors; other processor architectures do not yet support the use of debug information to unwind the user-space stack. To ensure that the needed debug information is used to produce the user-space stack backtraces, use the <code class="option">-d <em class="replaceable">executable</em></code> option for executables and <code class="option">-ldd</code> for shared libraries.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">4.2. Accessing User-Space Target Variables</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="publican v4.1.3" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="SystemTap-SystemTap_Beginners_Guide-2.7-en-US-2.0-1" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="userspace-probing.html" title="Chapter 4. User-space Probing" /><link rel="prev" href="userspace-probing.html" title="Chapter 4. User-space Probing" /><link rel="next" href="ustack.html" title="4.3. User-Space Stack Backtraces" /></head><body><p id="title"><a class="left" href="https://fedorahosted.org/publican"><img alt="Product Site" src="Common_Content/images//image_left.png" /></a><a class="right" href="https://fedorahosted.org/publican"><img alt="Documentation Site" src="Common_Content/images//image_right.png" /></a></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="userspace-probing.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="ustack.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="utargetvariable">
- </a>4.2. Accessing User-Space Target Variables</h2></div></div></div><a id="idm47722950498848" class="indexterm"></a><div class="para">
+ </a>4.2. Accessing User-Space Target Variables</h2></div></div></div><a id="idm47650190433200" class="indexterm"></a><div class="para">
You can access user-space target variables in the same manner as described in <a class="xref" href="targetvariables.html">Section 3.3.2, “Target Variables”</a>. In Linux, however, there are separate address spaces for the user and kernel code. When using the <code class="literal">-></code> operator, SystemTap accesses the appropriate address space.
</div><div class="para">
For pointers to base types such as integers and strings, there are a number of functions listed below to access user-space data. The first argument for each functions is the pointer to the data item.
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of DTRACE</TITLE>
+</HEAD><BODY>
+<H1>DTRACE</H1>
+Section: User Commands (1)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+dtrace - Dtrace compatible user application static probe generation tool.
+<P>
+
+
+
+
+<P>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<BR>
+
+<B>dtrace -s </B><I>file</I> [<B>OPTIONS</B>]
+
+<P>
+<A NAME="lbAD"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+The dtrace command converts probe descriptions defined in <I>file.d</I>
+into a probe header
+file via the <B>-h</B> option
+or a probe description file via the <B>-G</B> option.
+<P>
+<A NAME="lbAE"> </A>
+<H2>OPTIONS</H2>
+
+<P>
+
+<DL COMPACT>
+<DT><B>-h</B>
+
+<DD>
+generate a systemtap header file.
+<P>
+<DT><B>-G</B>
+
+<DD>
+generate a systemtap probe definition object file.
+<P>
+<DT><B>-o </B><I>file</I>
+
+<DD>
+is the name of the output file. If the <B>-G</B> option is given then
+the output file will be called <I>file.o</I>; if the <B>-h</B> option is
+given then the output file will be called <I>file.h</I>.
+<P>
+<DT><B>-C</B>
+
+<DD>
+run the cpp preprocessor on the input file when the <B>-h</B> option
+is given.
+<P>
+<DT><B>-I </B><I>file</I>
+
+<DD>
+give this include path to cpp when the <B>-C</B> option is given.
+<P>
+<DT><B>-k</B>
+
+<DD>
+keep temporary files, for example the C language source for the
+<B>-G</B> option.
+<P>
+</DL>
+<A NAME="lbAF"> </A>
+<H2>EXAMPLES</H2>
+
+<P>
+Systemtap is source compatible with dtrace user application static
+probe support.
+Given a file <I>test.d</I> containing:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+provider sdt_probes
+{
+ probe test_0 (int type);
+ probe test_1 (struct astruct node);
+};
+struct astruct {int a; int b;};
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+Then the command <I>"dtrace -s test.d -G"</I> will create the
+probe definition file <I>test.o</I> and the command <I>"dtrace -stest.d -h"</I> will create the probe header file <I>test.h</I>
+Subsequently the application can use the generated macros this way:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+#include "test.h"
+ ...
+struct astruct s;
+ ...
+SDT_PROBES_TEST_0(value);
+ ...
+if (SDT_PROBES_TEST_1_ENABLED())
+ SDT_PROBES_TEST_1(expensive_function(s));
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<A NAME="lbAG"> </A>
+<H2>SEMAPHORES</H2>
+
+<P>
+Semaphores are flag variables used by probes as a way of bypassing
+potentially costly processing to prepare arguments for probes that may
+not even be active. They are automatically set/cleared by systemtap
+when a relevant script is running, so the argument setup cost is only
+paid when necessary. These semaphore variables are defined within the
+the <I>"test.o"</I> object file, which must therefore be linked into an
+application.
+<P>
+
+Sometimes, semaphore variables are not necessary nor helpful. Skipping
+them can simplify the build process, by omitting the extra <I>"test.o"</I>
+file. To skip dependence upon semaphore variables, include <I>"<<A HREF="file:///usr/include/sys/sdt.h">sys/sdt.h</A>>"</I>
+within the application before <I>"test.h"</I>:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+#include <<A HREF="file:///usr/include/sys/sdt.h">sys/sdt.h</A>>
+#include "test.h"
+ ...
+struct astruct s;
+ ...
+SDT_PROBES_TEST_0(value);
+ ...
+if (SDT_PROBES_TEST_1_ENABLED())
+ SDT_PROBES_TEST_1(cheap_function(s));
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+In this mode, the ENABLED() test is fixed at 1.
+<P>
+<A NAME="lbAH"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1),
+<I><A HREF="stappaths.7.html">stappaths</A></I>(7)
+
+
+</PRE>
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAE">OPTIONS</A><DD>
+<DT><A HREF="#lbAF">EXAMPLES</A><DD>
+<DT><A HREF="#lbAG">SEMAPHORES</A><DD>
+<DT><A HREF="#lbAH">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of ERROR::BUILDID</TITLE>
+</HEAD><BODY>
+<H1>ERROR::BUILDID</H1>
+Section: Misc. Reference Manual Pages (7stap)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+error::buildid - build-id verification failures
+<P>
+
+
+
+<P>
+<P>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+Because systemtap's script translation / execution stages may be
+executed at different times and places, it is sometimes necessary to
+verify certain invariants. One such invariant is that if a script
+was informed by translate-time analysis of executables, then those
+same executables need to be used at run time. This checking
+is done based upon the build-id, a binary hash that modern (post-2007)
+compilers/toolchains add as an
+<I>NT_GNU_BUILD_ID</I>
+
+ELF note to object files and executables.
+Use the
+<I>readelf -n</I>
+
+command to examine the build-ids of binaries, if you are interested.
+<P>
+<P>
+
+<P>
+Only scripts are sensitive to executables' build-ids: generally those
+that perform deep analysis of the binaries or their debuginfo. For example,
+scripts that place
+<I>.function</I> or <I>.statement</I>
+
+probes, or use stack backtrace-related tapset functions may be sensitive.
+Other scripts that rely only on
+<I>process.mark</I> or <I>kernel.trace</I>
+
+probes do not require debuginfo. See the DWARF DEBUGINFO section in the
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+man page.
+<P>
+<P>
+
+<P>
+During translation, systemtap saves a copy of the relevant files'
+build-ids within the compiled modules. At run-time, the modules
+compare the saved ones to the actual run-time build-ids in memory.
+The error message indicates that they did not match, so the module
+will decline placing a probe that was computed based upon obsolete
+data. This is important for safety, as placing them at an
+inappropriate address could crash the programs. However, this is not
+necessarily a fatal error, since probes unrelated to the mismatching
+binaries may operate.
+<P>
+<P>
+
+<P>
+A build-id mismatch could be caused by a few different situations.
+The main one is where the executable versions or architecture were
+different between the systemtap translation and execution
+times/places. For example, one may run a stap-server on a slightly
+different version of the OS distribution. Someone may have rebuilt a
+new kernel image, but preserved the previous version numbers. The
+kernel running on the workstation may be slightly different from the
+version being targeted - perhaps due to a pending kernel upgrade
+leaving different files on disk versus running in memory. If your OS
+distribution uses separate debuginfo packages, the split <I>.debug</I>
+files may not exactly match the main binaries.
+<P>
+<P>
+
+<P>
+To disable build-id verification errors, if one is confident that they
+are an artefact of build accidents rather than a real mismatch, one
+might try the
+<I>-DSTP_NO_BUILDID_CHECK</I>
+
+option.
+<P>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="http://fedoraproject.org/wiki/Releases/FeatureBuildId">http://fedoraproject.org/wiki/Releases/FeatureBuildId</A></I>,
+<I><A HREF="stap.1.html">stap</A></I>(1),
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap),
+<I><A HREF="./warning::debuginfo.7stap.html">warning::debuginfo</A></I>(7stap),
+<I><A HREF="./error::reporting.7stap.html">error::reporting</A></I>(7stap)
+
+</PRE>
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of ERROR::DWARF</TITLE>
+</HEAD><BODY>
+<H1>ERROR::DWARF</H1>
+Section: Misc. Reference Manual Pages (7stap)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+error::dwarf - dwarf debuginfo quality problems
+<P>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+Systemtap sometimes relies on ELF/DWARF debuginfo for programs being
+instrumented to locate places to probe, or context variables to
+read/write, just like a symbolic debugger does. Even though
+examination of the program's source code may show variables or lines
+where probes may be desired, the compiler must preserve information
+about them for systemtap (or a debugger such as gdb) to get pinpoint
+access to the desired information. If a script requires such data,
+but the compiler did not preserve enough of it, pass-2 errors may
+result.
+<P>
+
+Common conditions that trigger these problems include;
+<P>
+<DL COMPACT>
+<DT>compiler version<DD>
+Prior to GCC version 4.5, debuginfo quality was fairly limited.
+Often developers were advised to build their programs with
+<I>-O0 -g</I>
+
+flags to disable optimization. GCC version 4.5 introduced
+a facility called "variable-tracking assignments" that allows it
+to generate high-quality debuginfo under full
+<I>-O2 -g</I>
+
+optimization. It is not perfect, but much better than before.
+Note that, due to another gcc bug (PR51358)
+<I>-O0 -g</I>
+
+can actually sometimes make debuginfo quality worse than for
+<I>-O2 -g</I>.
+
+<P>
+Another related problem involves debuginfo quality for the
+prologue area of a function (PR15123), wherein a program
+compiled with CFLAGS=-mfentry (especially the kernel, for ftrace)
+may lack accurate debuginfo for the entry instructions for gcc
+prior to version 4.8. If able, arrange to compile your programs
+with
+<I>-grecord-gcc-switches</I>
+
+CFLAGS, and/or try rerunning systemtap with
+
+<I>$PR15123_ASSUME_MFENTRY=1</I>.
+
+
+<P>
+<DT>function inlining<DD>
+Even modern gcc sometimes has problems with parameters for inlined functions.
+It may be necessary to change the script to probe at a slightly different place
+(try a
+<I>.statement()</I> probe, instead of a <I>.function()</I> probe,
+
+somewhere a few source lines into the body of the inlined function. Or try
+putting a probe at the call site of the inlined function. Or use the
+
+<I>if @defined($var) { ... }</I>
+
+
+script language construct to test for the resolvability of the context
+variable before using it.
+<P>
+<DT>instruction reordering<DD>
+Heavily optimized code often smears the instructions from
+multiple source statements together. This can leave systemtap with no place
+to choose to place a probe, especially a statement probe specified by line
+number. Systemtap may advise to try a nearby line number, but these may
+not work well either. Consider placing a probe by a statement wildcard
+or line number range.
+<P>
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>ALTERNATIVES</H2>
+
+<P>
+In order to reduce reliance on ELF/DWARF debuginfo, consider the use of
+statically compiled-in instrumentation, such as kernel tracepoints, or
+<I><<A HREF="file:///usr/include/sys/sdt.h">sys/sdt.h</A>></I>
+
+userspace markers. Such instrumentation hook sites are relatively low
+cost (just one NOP instruction for sdt.h), and nearly guarantee the
+availability of parameter data and a reliable probe site,
+all without reliance on debuginfo.
+<P>
+<A NAME="lbAE"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1),
+<I><A HREF="http://dwarfstd.org/">http://dwarfstd.org/</A></I>,
+<I><A HREF="http://sourceware.org/systemtap/wiki/TipContextVariables">http://sourceware.org/systemtap/wiki/TipContextVariables</A></I>,
+<I><A HREF="http://gcc.gnu.org/wiki/Var_Tracking_Assignments">http://gcc.gnu.org/wiki/Var_Tracking_Assignments</A></I>,
+<I><A HREF="./warning::debuginfo.7stap.html">warning::debuginfo</A></I>(7stap),
+<I><A HREF="./error::reporting.7stap.html">error::reporting</A></I>(7stap)
+
+</PRE>
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">ALTERNATIVES</A><DD>
+<DT><A HREF="#lbAE">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of ERROR::FAULT</TITLE>
+</HEAD><BODY>
+<H1>ERROR::FAULT</H1>
+Section: Misc. Reference Manual Pages (7stap)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+error::fault - memory access faults
+<P>
+
+
+
+<P>
+<P>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+Read or write faults can occur during the operation of a systemtap
+script, if the script causes dereferencing of a pointer that turns out
+to be invalid. This can be caused by using context variables that do
+not happen to have valid values, or perhaps references to memory that
+is unavailable at that moment due to paging.
+<P>
+
+These fault conditions are benign because they are caught by the
+systemtap runtime, which cleanly terminates the script. If quick
+termination is not desired, consider using the
+<I>--skip-badvars</I> or <I>--suppress-handler-errors</I> or <I>-DMAXERRORS=NN</I>
+
+stap options, or wrapping relevant parts of the probe handlers in a
+<I>try</I>/<I>catch</I>
+
+block.
+<P>
+
+It may be possible to adjust the target program, to make it more likely
+that needed context variables are paged in when systemtap looks for them.
+Consider adding some lightweight processing on the key variables, like a
+<I>strlen(foo)</I>
+
+for a string, or iterating across elements of an array or linked list,
+or touching a few bytes of a heap-allocated block. The idea is to trigger
+any page faults in the target program, before systemtap would need to (but can't).
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1),
+<I><A HREF="./error::reporting.7stap.html">error::reporting</A></I>(7stap)
+
+</PRE>
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of ERROR::INODE-UPROBES</TITLE>
+</HEAD><BODY>
+<H1>ERROR::INODE-UPROBES</H1>
+Section: Misc. Reference Manual Pages (7stap)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+error::inode-uprobes - limitations of inode-uprobes
+<P>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+The uprobes kernel facility introduced in Linux 3.5 aims to supplant the
+earlier out-of-tree utrace patch to enable user-space probing. There
+have been some functional limitations in inode-uprobes that preclude
+some systemtap constructs. Over time, we hope these regressions will
+be corrected.
+<P>
+<DL COMPACT>
+<DT>function.return probes<DD>
+<I>process.function().return</I>
+
+probes require "return-probes" or "uretprobes" functionality, which was not
+implemented in the builtin inode-uprobes until kernel 3.10. If you cannot
+upgrade your kernel, consider using
+<I>process.statement()</I>
+
+probes placed on source line numbers at the function's return statements.
+<P>
+<DT>function.statement.absolute probes<DD>
+In utrace-equipped kernels, systemtap made it possible to address probes
+by literal addresses in the process virtual memory address space. The
+new inode-uprobes does not have this capability.
+<P>
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1),
+<I><A HREF="http://kernelnewbies.org/Linux_3.5">http://kernelnewbies.org/Linux_3.5</A></I>,
+<I><A HREF="http://sourceware.org/systemtap/wiki/utrace">http://sourceware.org/systemtap/wiki/utrace</A></I>,
+<I><A HREF="./error::reporting.7stap.html">error::reporting</A></I>(7stap)
+
+</PRE>
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of ERROR::PASS1</TITLE>
+</HEAD><BODY>
+<H1>ERROR::PASS1</H1>
+Section: Misc. Reference Manual Pages (7stap)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+error::pass1 - systemtap pass-1 errors
+<P>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+Errors that occur during pass 1 (parsing) usually mean
+a basic syntax error of some sort occurred in the systemtap script.
+There are several classes of problems possible:
+<P>
+<DL COMPACT>
+<DT>plain syntax error<DD>
+The systemtap script parser detects a large variety of errors, such as
+missing operands, bad punctuation. It tries to list what kinds of tokens
+it was expecting to see, and will show the region of the source code with
+the problem. Please review the
+<I><A HREF="stap.1.html">stap</A></I>(1)
+
+man page and/or the tutorial, to correct the script's syntax.
+<P>
+<DT>grammar ambiguities<DD>
+There is at least one known ambiguity in the systemtap grammar. It relates
+to the optionality of
+<I>;</I>
+
+(semicolon) separators between statements, and the
+<I>++</I> and <I>--</I>
+
+increment/decrement operators. If the parser indicates an error, consider
+adding some explicit
+<I>;</I>
+
+separators between nearby statements and try again.
+<P>
+<DT>missing command line arguments<DD>
+A systemtap script that uses the
+<I>$N</I> and <I>@N</I>
+
+constructs for substituting in command-line options may fail if not
+enough options were given on the stap command line.
+<P>
+<DT>compatibility changes<DD>
+Some versions of systemtap have changed the language incompatibly,
+for example by adding the try/catch keywords for exception handling.
+In such cases, rerun systemtap with the
+<I>--compatibility=VERSION</I>
+
+option, substituting the last systemtap version where your script
+was known to work. You may also check the release-history NEWS file
+for compatibility changes.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>GATHERING MORE INFORMATION</H2>
+
+Increasing the verbosity of pass-1 with an option such as
+<I>--vp 1</I>
+
+can help pinpoint the problem.
+<P>
+<A NAME="lbAE"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1),
+<I><A HREF="./error::reporting.7stap.html">error::reporting</A></I>(7stap)
+
+</PRE>
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">GATHERING MORE INFORMATION</A><DD>
+<DT><A HREF="#lbAE">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of ERROR::PASS2</TITLE>
+</HEAD><BODY>
+<H1>ERROR::PASS2</H1>
+Section: Misc. Reference Manual Pages (7stap)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+error::pass2 - systemtap pass-2 errors
+<P>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+Errors that occur during pass 2 (elaboration) can have a variety of causes.
+Common types include:
+<P>
+<DL COMPACT>
+<DT>unavailable probe point classes<DD>
+Some types of probe points are only available on certain system versions,
+architectures, and configurations. For example, user-space
+<I>process.*</I>
+
+probes may require utrace or uprobes capability in the kernel for this
+architecture.
+<P>
+<DT>unavailable probe points<DD>
+Some probe points may be individually unavailable even when their class is
+fine. For example,
+<I>kprobe.function(foobar)</I>
+
+may fail if function
+<I>foobar</I>
+
+does not exist in the kernel any more. Debugging or symbol data may be absent for
+some types of
+<I>.function</I> or <I>.statement</I>
+
+probes; check for availability of debuginfo. Try the
+<I>stap-prep</I>
+
+program to download possibly-required debuginfo.
+Use a wildcard parameter such as
+<I>stap -l 'kprobe.function(*foo*)'</I>
+
+to locate still-existing variants. Use
+<I>!</I> or <I>?</I>
+
+probe point suffixes to denote optional / preferred-alternatives, to let
+the working parts of a script continue.
+<P>
+<DT>typos<DD>
+There might be a spelling error in the probe point name ("sycsall" vs.
+"syscall"). Wildcard probes may not find a match at all in the
+tapsets. Recheck the names using
+<I>stap -l PROBEPOINT</I>.
+
+Another common mistake is to use the
+<I>.</I>
+
+operator instead of the correct
+<I>-></I>
+
+when dereferencing context variable subfields or pointers:
+<I>$foo->bar->baz</I>
+
+even if in C one would say
+<I>foo->bar.baz</I>.
+
+<P>
+<DT>unavailable context variables<DD>
+Systemtap scripts often wish to refer to variables from the context of the
+probed programs using
+<I>$variable</I>
+
+notation. These variables may not always be available, depending on versions
+of the compiler, debugging/optimization flags used, architecture, etc. Use
+<I>stap -L PROBEPOINT</I>
+
+to list available context variables for given probes. Use the
+<I>@defined()</I>
+
+expression to test for the resolvability of a context variable expression.
+Consider using the
+<I>stap --skip-badvars</I>
+
+option to silently replace misbehaving context variable expressions with zero.
+<P>
+<DT>module cache inconsistencies<DD>
+Occasionally, the systemtap module cache ($HOME/.systemtap/cache) might
+contain obsolete information from a prior system configuration/version,
+and produce false results as systemtap attempts to reuse it. Retrying
+with
+<I>stap --poison-cache ...</I>
+
+forces new information to be generated.
+<B>Note:</B>
+
+this should not happen and likely represents a systemtap bug. Please
+report it.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>GATHERING MORE INFORMATION</H2>
+
+Increasing the verbosity of pass-2 with an option such as
+<I>--vp 02</I>
+
+can help pinpoint the problem.
+<P>
+<A NAME="lbAE"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1),
+<I><A HREF="stap-prep.1.html">stap-prep</A></I>(1),
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap),
+<I>probe::*</I>(3stap),
+<I><A HREF="./error::dwarf.7stap.html">error::dwarf</A></I>(7stap),
+<I><A HREF="./error::inode-uprobes.7stap.html">error::inode-uprobes</A></I>(7stap),
+<I><A HREF="./warning::debuginfo.7stap.html">warning::debuginfo</A></I>(7stap),
+<I><A HREF="./error::reporting.7stap.html">error::reporting</A></I>(7stap)
+
+</PRE>
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">GATHERING MORE INFORMATION</A><DD>
+<DT><A HREF="#lbAE">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of ERROR::PASS3</TITLE>
+</HEAD><BODY>
+<H1>ERROR::PASS3</H1>
+Section: Misc. Reference Manual Pages (7stap)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+error::pass3 - systemtap pass-3 errors
+<P>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+Errors during pass 3 (translation) occur only rarely.
+<P>
+<DL COMPACT>
+<DT>unsupported code generation<DD>
+Some script language constructs are not available in every
+probe point. For example, the
+<I>@perf()</I>
+
+counter-reading function may only be used in
+<I>process.*</I>
+
+probes.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>GATHERING MORE INFORMATION</H2>
+
+Increasing the verbosity of pass-3 with an option such as
+<I>--vp 002</I>
+
+may help pinpoint the problem.
+<P>
+<A NAME="lbAE"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1),
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+<I><A HREF="./error::reporting.7stap.html">error::reporting</A></I>(7stap)
+
+</PRE>
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">GATHERING MORE INFORMATION</A><DD>
+<DT><A HREF="#lbAE">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of ERROR::PASS4</TITLE>
+</HEAD><BODY>
+<H1>ERROR::PASS4</H1>
+Section: Misc. Reference Manual Pages (7stap)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+error::pass4 - systemtap pass-4 errors
+<P>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+Errors that occur during pass 4 (compilation) have generally only a few
+causes:
+<P>
+<DL COMPACT>
+<DT>kernel or OS version changes<DD>
+The systemtap runtime and embedded-C fragments in the tapset library
+are designed to be portable across a wide range of OS versions. However,
+incompatibilities can occur when some OS changes occur, such as kernel
+modifications that change functions, types, or macros referenced
+by systemtap. Upstream (<A HREF="git://sourceware.org/git/systemtap.git)">git://sourceware.org/git/systemtap.git)</A> builds
+of systemtap are often quickly updated to include relevant fixes, so try
+getting or making an updated build.
+If the issue persists, report the problem to the systemtap developers.
+<P>
+<DT>buggy embedded-C code<DD>
+Embedded-C code in your own guru-mode script cannot be checked by systemtap,
+and is passed through verbatim to the compiler. Errors in such snippets of
+code may be found during the pass-4 compiler invocation, though may be hard
+to identify by the compiler errors.
+<P>
+<DT>incompatible embedded-C code<DD>
+The interface standards between systemtap-generated code and embedded-C code
+occasionally change. For example, before version 1.8, arguments were passed
+using macros
+<I>THIS->foo</I> and <I>THIS->__retvalue</I>
+
+but from version 1.8 onward, using
+<I>STAP_ARG_foo</I> and <I>STAP_RETVALUE</I>.
+
+Adjust your embedded-C code to current standards, or use the
+<I>stap --compatible=VERSION</I>
+
+option to make systemtap use a different one.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>GATHERING MORE INFORMATION</H2>
+
+It may be necessary to run systemtap with
+<I>-k</I> or <I>-p3</I>
+
+to examine the generated C code. Increasing the verbosity of pass-4
+with an option such as
+<I>--vp 0001</I>
+
+can also help pinpoint the problem.
+<P>
+<A NAME="lbAE"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1),
+<I><A HREF="./error::reporting.7stap.html">error::reporting</A></I>(7stap)
+
+</PRE>
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">GATHERING MORE INFORMATION</A><DD>
+<DT><A HREF="#lbAE">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of ERROR::PASS5</TITLE>
+</HEAD><BODY>
+<H1>ERROR::PASS5</H1>
+Section: Misc. Reference Manual Pages (7stap)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+error::pass5 - systemtap pass-5 errors
+<P>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+Errors that occur during pass 5 (execution) can have a variety of causes.
+<P>
+<DL COMPACT>
+<DT>exceptional events during script execution<DD>
+The systemtap translator and runtime include numerous error checks
+that aim to protect the systems and the users from mistakes or
+transient conditions. The script may deliberately call the
+<I>error()</I>
+
+tapset function to signal a problem. Some memory needed for
+accessing
+<I>$context</I>
+
+variables may be temporarily unavailable. Consider using the
+<I>try</I>/<I>catch</I>
+
+construct to wrap script fragments in exception-handling code.
+Consider using the
+<I>stap --suppress-handler-errors</I>
+
+or
+<I>stap --skip-badvars</I>
+
+option.
+<P>
+<DT>resource exhaustion<DD>
+One of several types of space or time resource limits may be
+exceeded by the script, including system overload, too many tuples
+to be stored in an array, etc. Some of the error messages identify
+the constraint by macro name, which may be individually raised.
+Consider using the
+<I>stap --suppress-handler-errors</I>
+
+option. Extend or disable resource limits using the
+<I>stap -DLIMIT=NNNN</I>
+
+option.
+
+<P>
+<DT>remote execution server problems<DD>
+If you use the
+<I>stap --remote</I>
+
+option to direct a systemtap script to be executed somewhere else,
+ensure that an SSH connection may be made to the remote host, and
+that it has the current systemtap runtime installed & available.
+<P>
+<DT>installation/permission problems<DD>
+It is possible that your installation of systemtap was not correctly
+installed. For example, the
+<I>/usr/bin/staprun</I>
+
+program may lack the necessary setuid permissions, or your invoking
+userid might not have sufficient privileges (root, or
+<I>stapusr</I>
+
+and related group memberships). Environment
+variables may interfere with locating
+<I>/usr/libexec/.../stapio</I>.
+
+<P>
+<DT>errors from target program<DD>
+The program invoked by the
+<I>stap -c CMD</I>
+
+option may exit with a non-zero code.
+<P>
+<DT>uncaught exceptions in the target program<DD>
+When using
+<I>--runtime=dyninst</I>
+
+you may encounter an issue where the target program aborts with a
+message like "terminate called after throwing an instance
+of 'foo_exception'". This is unfortunately a limitation of Dyninst,
+which sometimes prevents exceptions from properly unwinding through
+instrumented code.
+<P>
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>GATHERING MORE INFORMATION</H2>
+
+Increasing the verbosity of pass-5
+with an option such as
+<I>--vp 00001</I>
+
+can help pinpoint the problem.
+<P>
+<A NAME="lbAE"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1),
+<I><A HREF="http://sourceware.org/systemtap/wiki/TipExhaustedResourceErrors">http://sourceware.org/systemtap/wiki/TipExhaustedResourceErrors</A></I>,
+<I><A HREF="./error::fault.7stap.html">error::fault</A></I>(7stap),
+<I><A HREF="./error::reporting.7stap.html">error::reporting</A></I>(7stap)
+
+</PRE>
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">GATHERING MORE INFORMATION</A><DD>
+<DT><A HREF="#lbAE">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of WARNING::PROCESS-TRACKING</TITLE>
+</HEAD><BODY>
+<H1>WARNING::PROCESS-TRACKING</H1>
+Section: Misc. Reference Manual Pages (7stap)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+warning::process-tracking - process-tracking facilities are not available
+<P>
+
+
+
+<P>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+These errors and warnings occur when the kernel systemtap is running on
+lacks support for user-space process tracking facilities.
+<P>
+<A NAME="lbAD"> </A>
+<H3>COMPILE-TIME ERROR</H3>
+
+The error
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+ERROR: user-space process-tracking facilities not available
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+occurs when the script contains a uprobes probe point that the current
+kernel does not support.
+<P>
+<A NAME="lbAE"> </A>
+<H3>RUNTIME WARNINGS</H3>
+
+<P>
+
+The warning,
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+WARNING: process-tracking facilities are not available in this kernel
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+and the related message,
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+WARNING: cannot track target in process '...'
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+both occur at runtime when running on a kernel (generally an older
+version) that has neither utrace functionality nor an acceptable
+substitute.
+<P>
+
+The script should still load and run. However, probes that rely on
+availability of process-tracking facilities will silently fail to
+trigger.
+<P>
+<A NAME="lbAF"> </A>
+<H2>RESOLVING THE ISSUE</H2>
+
+If process-tracking functionality is absolutely necessary, either a
+kernel version newer than 3.5 is needed, or an older version must be
+compiled with appropriate utrace patches.
+<P>
+<A NAME="lbAG"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1),
+<I><A HREF="./error::reporting.7stap.html">error::reporting</A></I>(7stap)
+
+</PRE>
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DL>
+<DT><A HREF="#lbAD">COMPILE-TIME ERROR</A><DD>
+<DT><A HREF="#lbAE">RUNTIME WARNINGS</A><DD>
+</DL>
+<DT><A HREF="#lbAF">RESOLVING THE ISSUE</A><DD>
+<DT><A HREF="#lbAG">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of ERROR::REPORTING</TITLE>
+</HEAD><BODY>
+<H1>ERROR::REPORTING</H1>
+Section: Misc. Reference Manual Pages (7stap)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+error::reporting - systemtap error reporting
+<P>
+<P>
+<A NAME="lbAC"> </A>
+<H2>COMMERCIAL SUPPORT</H2>
+
+If you have a commercial support agreement with your OS distributor
+that covers this software, we recommend getting your money's worth
+by using their problem reporting systems first.
+<P>
+<A NAME="lbAD"> </A>
+<H2>COMMUNITY SUPPORT</H2>
+
+Systemtap community & volunteer developers are eager to hear problem
+reports, so they can improve the software. Various ways to contact them
+include:
+<P>
+<DL COMPACT>
+<DT>public mailing list<DD>
+<A HREF="mailto:systemtap@sourceware.org">systemtap@sourceware.org</A>
+<P>
+<DT>public IRC<DD>
+#systemtap on irc.freenode.net, use fpaste.org for snippets of text
+<P>
+<DT>public bugzilla<DD>
+<A HREF="http://sourceware.org/bugzilla/">http://sourceware.org/bugzilla/</A>
+<P>
+</DL>
+<A NAME="lbAE"> </A>
+<H2>INFORMATION TO COLLECT</H2>
+
+In general, please include information about your platform,
+systemtap version, your scripts & custom tapsets, systemtap
+invocation, actual behavior / errors seen, and expected behavior.
+The
+<I>stap-report</I>
+
+script collects useful system/kernel information that helps describe
+the OS environment; please include its output.
+<P>
+<A NAME="lbAF"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1),
+<I><A HREF="stap-report.1.html">stap-report</A></I>(1),
+<I><A HREF="http://sourceware.org/systemtap/wiki/">http://sourceware.org/systemtap/wiki/</A></I>
+
+
+</PRE>
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">COMMERCIAL SUPPORT</A><DD>
+<DT><A HREF="#lbAD">COMMUNITY SUPPORT</A><DD>
+<DT><A HREF="#lbAE">INFORMATION TO COLLECT</A><DD>
+<DT><A HREF="#lbAF">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of ERROR::SDT</TITLE>
+</HEAD><BODY>
+<H1>ERROR::SDT</H1>
+Section: Misc. Reference Manual Pages (7stap)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+error::sdt - <<A HREF="file:///usr/include/sys/sdt.h">sys/sdt.h</A>> marker failures
+<P>
+
+
+
+<P>
+<P>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+Systemtap's
+<B><<A HREF="file:///usr/include/sys/sdt.h">sys/sdt.h</A>></B>
+
+probes are modeled after the dtrace USDT API, but are implemented
+differently. They leave a only a NOP instruction in the userspace
+program's text segment, and add an ELF note to the binary with
+metadata. This metadata describes the marker's name and parameters.
+This encoding is designed to be parseable by multiple tools (not just
+systemtap: GDB, the GNU Debugger, also contains support). These allow
+the tools to find parameters and their types, wherever they happen to
+reside, even without DWARF debuginfo.
+<P>
+<P>
+
+<P>
+The reason finding parameters is tricky is because the STAP_PROBE /
+DTRACE_PROBE markers store an assembly language expression for each
+operand, as a result of use of gcc inline-assembly directives. The
+compiler is given a broad gcc operand constraint string ("nor") for
+the operands, which usually works well. Usually, it does not force
+the compiler to load the parameters into or out of registers, which
+would slow down an instrumented program. However, some
+instrumentation sites with some parameters do not work well with the
+default "nor" constraint.
+<P>
+<DL COMPACT>
+<DT>unresolveable at run-time<DD>
+GCC may emit strings that an assembler could resolve (from the
+context of compiling the original program), but a run-time tool
+cannot. For example, the operand string might refer to a label of a
+local symbol that is not emitted into the ELF object file at all,
+which leaves no trace for the run-time. Reference to such parameters
+from within systemtap can result in "SDT asm not understood" errors.
+<P>
+<DT>too complicated expression<DD>
+GCC might synthesize very complicated assembly addressing modes from
+complex C data types / pointer expressions. systemtap or gdb may not
+be able to parse some valid but complicated expressions. Reference to
+such parameters from within systemtap can result in "SDT asm not
+understood" errors.
+<P>
+<DT>overly restrictive constraint<DD>
+GCC might not be able to even compile the original program with the
+default "nor" constraint due to shortage of registers or other
+reasons. A compile-time gcc error such as "asm operand has impossible
+constraints" may result.
+<P>
+</DL>
+<P>
+
+<P>
+There are two general workarounds to this family of problems.
+<P>
+<DL COMPACT>
+<DT>change the constraints<DD>
+While compiling the original instrumented program, set the
+<I>STAP_SDT_ARG_CONSTRAINT</I>
+
+macro to different constraint strings. See the GCC manual about
+various options. For example, on many machine architectures, "r" forces
+operands into registers, and "g" leaves operands essentially unconstrained.
+<P>
+<DT>revert to debuginfo<DD>
+As long as the instrumented program compiles, it may be fine simply to
+keep using <<A HREF="file:///usr/include/sys/sdt.h">sys/sdt.h</A>> but eschew extraction of a few individual
+parameters. In the worst case, disable <<A HREF="file:///usr/include/sys/sdt.h">sys/sdt.h</A>> macros entirely to
+eschew the compiled-in instrumentation. If DWARF debuginfo was
+generated and preserved, a systemtap script could refer to the
+underlying source context variables instead of the positional
+STAP_PROBE parameters.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1),
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap),
+<I><A HREF="./error::dwarf.7stap.html">error::dwarf</A></I>(7stap),
+<I><A HREF="http://gcc.gnu.org/onlinedocs/gcc/Constraints.html">http://gcc.gnu.org/onlinedocs/gcc/Constraints.html</A></I>,
+<I><A HREF="http://sourceware.org/systemtap/wiki/UserSpaceProbeImplementation">http://sourceware.org/systemtap/wiki/UserSpaceProbeImplementation</A></I>,
+<I><A HREF="./error::reporting.7stap.html">error::reporting</A></I>(7stap)
+
+</PRE>
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::HZ</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::HZ</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::HZ - Kernel HZ
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ HZ:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the value of the kernel HZ macro, which corresponds to the rate of increase of the jiffies value.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::MAJOR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::MAJOR</H1>
+Section: Device Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::MAJOR - Extract major device number from a kernel device number (kdev_t)
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ MAJOR:long(dev:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+Kernel device number to query.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::MINOR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::MINOR</H1>
+Section: Device Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::MINOR - Extract minor device number from a kernel device number (kdev_t)
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ MINOR:long(dev:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+Kernel device number to query.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::MKDEV</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::MKDEV</H1>
+Section: Device Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::MKDEV - Creates a value that can be compared to a kernel device number (kdev_t)
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ MKDEV:long(major:long,minor:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>major</I>
+<DL COMPACT><DT><DD>
+Intended major device number.
+</DL>
+
+<P>
+
+<I>minor</I>
+<DL COMPACT><DT><DD>
+Intended minor device number.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ADDR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ADDR</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::addr - Address of the current probe point.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ addr:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the instruction pointer from the current probe's register state. Not all probe types have registers though, in which case zero is returned. The returned address is suitable for use with functions like
+<B>symname</B>
+and
+<B>symdata</B>.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ADDR_TO_NO</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ADDR_TO_NO</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::addr_to_node - Returns which node a given address belongs to within a NUMA system
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ addr_to_node:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the address of the faulting memory access
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function accepts an address, and returns the node that the given address belongs to in a NUMA system.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ANSI_CLEAR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ANSI_CLEAR</H1>
+Section: Utility functions for using an (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ansi_clear_screen - Move cursor to top left and clear screen.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ansi_clear_screen()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Sends ansi code for moving cursor to top left and then the ansi code for clearing the screen from the cursor position to the end.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ANSI_CURSO</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ANSI_CURSO</H1>
+Section: Utility functions for using an (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ansi_cursor_hide - Hides the cursor.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ansi_cursor_hide()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Sends ansi code for hiding the cursor.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ANSI_CURSO</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ANSI_CURSO</H1>
+Section: Utility functions for using an (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ansi_cursor_move - Move cursor to new coordinates.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ansi_cursor_move(x:long,y:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>x</I>
+<DL COMPACT><DT><DD>
+Row to move the cursor to.
+</DL>
+
+<P>
+
+<I>y</I>
+<DL COMPACT><DT><DD>
+Colomn to move the cursor to.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Sends ansi code for positioning the cursor at row x and column y. Coordinates start at one, (1,1) is the top-left corner.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ANSI_CURSO</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ANSI_CURSO</H1>
+Section: Utility functions for using an (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ansi_cursor_restore - Restores a previously saved cursor position.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ansi_cursor_restore()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Sends ansi code for restoring the current cursor position previously saved with
+<B>ansi_cursor_save</B>.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ANSI_CURSO</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ANSI_CURSO</H1>
+Section: Utility functions for using an (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ansi_cursor_save - Saves the cursor position.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ansi_cursor_save()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Sends ansi code for saving the current cursor position.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ANSI_CURSO</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ANSI_CURSO</H1>
+Section: Utility functions for using an (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ansi_cursor_show - Shows the cursor.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ansi_cursor_show()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Sends ansi code for showing the cursor.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ANSI_NEW_L</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ANSI_NEW_L</H1>
+Section: Utility functions for using an (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ansi_new_line - Move cursor to new line.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ansi_new_line()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Sends ansi code new line.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ANSI_RESET</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ANSI_RESET</H1>
+Section: Utility functions for using an (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ansi_reset_color - Resets Select Graphic Rendition mode.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ansi_reset_color()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Sends ansi code to reset foreground, background and color attribute to default values.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ANSI_SET_C</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ANSI_SET_C</H1>
+Section: Utility functions for using an (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ansi_set_color - Set the ansi Select Graphic Rendition mode.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ansi_set_color(fg:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>fg</I>
+<DL COMPACT><DT><DD>
+Foreground color to set.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Sends ansi code for Select Graphic Rendition mode for the given forground color. Black (30), Blue (34), Green (32), Cyan (36), Red (31), Purple (35), Brown (33), Light Gray (37).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ANSI_SET_C</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ANSI_SET_C</H1>
+Section: Utility functions for using an (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ansi_set_color2 - Set the ansi Select Graphic Rendition mode.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ansi_set_color2(fg:long,bg:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>fg</I>
+<DL COMPACT><DT><DD>
+Foreground color to set.
+</DL>
+
+<P>
+
+<I>bg</I>
+<DL COMPACT><DT><DD>
+Background color to set.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Sends ansi code for Select Graphic Rendition mode for the given forground color, Black (30), Blue (34), Green (32), Cyan (36), Red (31), Purple (35), Brown (33), Light Gray (37) and the given background color, Black (40), Red (41), Green (42), Yellow (43), Blue (44), Magenta (45), Cyan (46), White (47).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ANSI_SET_C</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ANSI_SET_C</H1>
+Section: Utility functions for using an (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ansi_set_color3 - Set the ansi Select Graphic Rendition mode.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ansi_set_color3(fg:long,bg:long,attr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>fg</I>
+<DL COMPACT><DT><DD>
+Foreground color to set.
+</DL>
+
+<P>
+
+<I>bg</I>
+<DL COMPACT><DT><DD>
+Background color to set.
+</DL>
+
+<P>
+
+<I>attr</I>
+<DL COMPACT><DT><DD>
+Color attribute to set.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Sends ansi code for Select Graphic Rendition mode for the given forground color, Black (30), Blue (34), Green (32), Cyan (36), Red (31), Purple (35), Brown (33), Light Gray (37), the given background color, Black (40), Red (41), Green (42), Yellow (43), Blue (44), Magenta (45), Cyan (46), White (47) and the color attribute All attributes off (0), Intensity Bold (1), Underline Single (4), Blink Slow (5), Blink Rapid (6), Image Negative (7).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ASMLINKAGE</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ASMLINKAGE</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::asmlinkage - Mark function as declared asmlinkage
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ asmlinkage()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Call this function before accessing arguments using the *_arg functions if the probed kernel function was declared asmlinkage in the source.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ATOMIC_LON</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ATOMIC_LON</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::atomic_long_read - Retrieves an atomic long variable from kernel memory
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ atomic_long_read:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+pointer to atomic long variable
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Safely perform the read of an atomic long variable. This will be a NOP on kernels that do not have ATOMIC_LONG_INIT set on the kernel config.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ATOMIC_REA</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ATOMIC_REA</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::atomic_read - Retrieves an atomic variable from kernel memory
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ atomic_read:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+pointer to atomic variable
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Safely perform the read of an atomic variable.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::BACKTRACE</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::BACKTRACE</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::backtrace - Hex backtrace of current kernel stack
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ backtrace:string()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns a string of hex addresses that are a backtrace of the kernel stack. Output may be truncated as per maximum string length (MAXSTRINGLEN). See
+<B>ubacktrace</B>
+for user-space backtrace.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::BYTES_TO_S</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::BYTES_TO_S</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::bytes_to_string - Human readable string for given bytes
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ bytes_to_string:string(bytes:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>bytes</I>
+<DL COMPACT><DT><DD>
+Number of bytes to translate.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns a string representing the number of bytes (up to 1024 bytes), the number of kilobytes (when less than 1024K) postfixed by 'K', the number of megabytes (when less than 1024M) postfixed by 'M' or the number of gigabytes postfixed by 'G'. If representing K, M or G, and the number is amount is less than 100, it includes a '.' plus the remainer. The returned string will be 5 characters wide (padding with whitespace at the front) unless negative or representing more than 9999G bytes.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::CALLER</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::CALLER</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::caller - Return name and address of calling function
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ caller:string()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the address and name of the calling function. This is equivalent to calling: sprintf("<B>s</B>
+0x<B>x</B>", symname(<B>caller_addr</B>),
+<B>caller_addr</B>)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::CALLER_ADD</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::CALLER_ADD</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::caller_addr - Return caller address
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ caller_addr:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the address of the calling function.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::CALLERS</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::CALLERS</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::callers - Return first n elements of kernel stack backtrace
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ callers:string(n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+number of levels to descend in the stack (not counting the top level). If n is -1, print the entire stack.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns a string of the first n hex addresses from the backtrace of the kernel stack. Output may be truncated as per maximum string length (MAXSTRINGLEN).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::CMDLINE_AR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::CMDLINE_AR</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::cmdline_arg - Fetch a command line argument
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ cmdline_arg:string(n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+Argument to get (zero is the program itself)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns argument the requested argument from the current process or the empty string when there are not that many arguments or there is a problem retrieving the argument. Argument zero is traditionally the command itself.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::CMDLINE_AR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::CMDLINE_AR</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::cmdline_args - Fetch command line arguments from current process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ cmdline_args:string(n:long,m:long,delim:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+First argument to get (zero is normally the program itself)
+</DL>
+
+<P>
+
+<I>m</I>
+<DL COMPACT><DT><DD>
+Last argument to get (or minus one for all arguments after n)
+</DL>
+
+<P>
+
+<I>delim</I>
+<DL COMPACT><DT><DD>
+String to use to separate arguments when more than one.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns arguments from the current process starting with argument number n, up to argument m. If there are less than n arguments, or the arguments cannot be retrieved from the current process, the empty string is returned. If m is smaller than n then all arguments starting from argument n are returned. Argument zero is traditionally the command itself.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::CMDLINE_ST</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::CMDLINE_ST</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::cmdline_str - Fetch all command line arguments from current process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ cmdline_str:string()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns all arguments from the current process delimited by spaces. Returns the empty string when the arguments cannot be retrieved.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::COMMIT</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::COMMIT</H1>
+Section: Speculation (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::commit - Write out all output related to a speculation buffer
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ commit(id:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>id</I>
+<DL COMPACT><DT><DD>
+of the buffer to store the information in
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Output all the output for
+<I>id</I>
+in the order that it was entered into the speculative buffer by
+<B>speculative</B>.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::CPU</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::CPU</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::cpu - Returns the current cpu number
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ cpu:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the current cpu number.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::CPU_CLOCK_</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::CPU_CLOCK_</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::cpu_clock_ms - Number of milliseconds on the given cpu's clock
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ cpu_clock_ms:long(cpu:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>cpu</I>
+<DL COMPACT><DT><DD>
+Which processor's clock to read
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the number of milliseconds on the given cpu's clock. This is always monotonic comparing on the same cpu, but may have some drift between cpus (within about a jiffy).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::CPU_CLOCK_</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::CPU_CLOCK_</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::cpu_clock_ns - Number of nanoseconds on the given cpu's clock
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ cpu_clock_ns:long(cpu:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>cpu</I>
+<DL COMPACT><DT><DD>
+Which processor's clock to read
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the number of nanoseconds on the given cpu's clock. This is always monotonic comparing on the same cpu, but may have some drift between cpus (within about a jiffy).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::CPU_CLOCK_</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::CPU_CLOCK_</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::cpu_clock_s - Number of seconds on the given cpu's clock
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ cpu_clock_s:long(cpu:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>cpu</I>
+<DL COMPACT><DT><DD>
+Which processor's clock to read
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the number of seconds on the given cpu's clock. This is always monotonic comparing on the same cpu, but may have some drift between cpus (within about a jiffy).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::CPU_CLOCK_</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::CPU_CLOCK_</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::cpu_clock_us - Number of microseconds on the given cpu's clock
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ cpu_clock_us:long(cpu:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>cpu</I>
+<DL COMPACT><DT><DD>
+Which processor's clock to read
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the number of microseconds on the given cpu's clock. This is always monotonic comparing on the same cpu, but may have some drift between cpus (within about a jiffy).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::CPUID</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::CPUID</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::cpuid - Returns the current cpu number
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ cpuid:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the current cpu number. Deprecated in SystemTap 1.4 and removed in SystemTap 1.5.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::CPUTIME_TO</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::CPUTIME_TO</H1>
+Section: Task Time Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::cputime_to_msecs - Translates the given cputime into milliseconds
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ cputime_to_msecs:long(cputime:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>cputime</I>
+<DL COMPACT><DT><DD>
+Time to convert to milliseconds.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::CPUTIME_TO</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::CPUTIME_TO</H1>
+Section: Task Time Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::cputime_to_string - Human readable string for given cputime
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ cputime_to_string:string(cputime:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>cputime</I>
+<DL COMPACT><DT><DD>
+Time to translate.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Equivalent to calling: msec_to_string (cputime_to_msecs (cputime).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::CPUTIME_TO</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::CPUTIME_TO</H1>
+Section: Task Time Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::cputime_to_usecs - Translates the given cputime into microseconds
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ cputime_to_usecs:long(cputime:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>cputime</I>
+<DL COMPACT><DT><DD>
+Time to convert to microseconds.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::CTIME</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::CTIME</H1>
+Section: Time utility functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ctime - Convert seconds since epoch into human readable date/time string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ctime:string(epochsecs:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>epochsecs</I>
+<DL COMPACT><DT><DD>
+Number of seconds since epoch (as returned by
+<B>gettimeofday_s</B>)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Takes an argument of seconds since the epoch as returned by
+<B>gettimeofday_s</B>. Returns a string of the form
+<P>
+
+"Wed Jun 30 21:49:08 1993"
+<P>
+
+The string will always be exactly 24 characters. If the time would be unreasonable far in the past (before what can be represented with a 32 bit offset in seconds from the epoch) an error will occur (which can be avoided with try/catch). If the time would be unreasonable far in the future, an error will also occur.
+<P>
+
+Note that the epoch (zero) corresponds to
+<P>
+
+"Thu Jan 1 00:00:00 1970"
+<P>
+
+The earliest full date given by ctime, corresponding to epochsecs -2147483648 is
+"Fri Dec 13 20:45:52 1901". The latest full date given by ctime, corresponding to epochsecs 2147483647 is
+"Tue Jan 19 03:14:07 2038".
+<P>
+
+The abbreviations for the days of the week are 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', and 'Sat'. The abbreviations for the months are 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', and 'Dec'.
+<P>
+
+Note that the real C library
+<B>ctime</B>
+function puts a newline ('\n') character at the end of the string that this function does not. Also note that since the kernel has no concept of timezones, the returned time is always in GMT.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::D_NAME</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::D_NAME</H1>
+Section: Directory-entry (dentry) Tapse (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::d_name - get the dirent name
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ d_name:string(dentry:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>dentry</I>
+<DL COMPACT><DT><DD>
+Pointer to dentry.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+<P>
+
+Returns the dirent name (path basename).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::D_PATH</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::D_PATH</H1>
+Section: Directory-entry (dentry) Tapse (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::d_path - get the full nameidata path
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ d_path:string(nd:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>nd</I>
+<DL COMPACT><DT><DD>
+Pointer to nameidata.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+<P>
+
+Returns the full dirent name (full path to the root), like the kernel d_path function.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::DELETE_STO</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::DELETE_STO</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::delete_stopwatch - Remove an existing stopwatch
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ delete_stopwatch(name:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+the stopwatch name
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Remove stopwatch
+<I>name</I>.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::DISCARD</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::DISCARD</H1>
+Section: Speculation (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::discard - Discard all output related to a speculation buffer
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ discard(id:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>id</I>
+<DL COMPACT><DT><DD>
+of the buffer to store the information in
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::EGID</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::EGID</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::egid - Returns the effective gid of a target process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ egid:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the effective gid of a target process
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ENV_VAR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ENV_VAR</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::env_var - Fetch environment variable from current process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ env_var:string(name:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the environment variable to fetch
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the contents of the specified environment value for the current process. If the variable isn't set an empty string is returned.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ERRNO_STR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ERRNO_STR</H1>
+Section: Errno Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::errno_str - Symbolic string associated with error code
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ errno_str:string(err:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>err</I>
+<DL COMPACT><DT><DD>
+The error number received
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the symbolic string associated with the giver error code, such as ENOENT for the number 2, or E#3333 for an out-of-range value such as 3333.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ERROR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ERROR</H1>
+Section: Logging Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::error - Send an error message
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ error(msg:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>msg</I>
+<DL COMPACT><DT><DD>
+The formatted message string
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+An implicit end-of-line is added. staprun prepends the string
+"ERROR:". Sending an error message aborts the currently running probe. Depending on the MAXERRORS parameter, it may trigger an
+<B>exit</B>.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::EUID</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::EUID</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::euid - Return the effective uid of a target process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ euid:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the effective user ID of the target process.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::EXECNAME</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::EXECNAME</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::execname - Returns the execname of a target process (or group of processes)
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ execname:string()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the execname of a target process (or group of processes).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::EXIT</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::EXIT</H1>
+Section: Logging Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::exit - Start shutting down probing script.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ exit()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This only enqueues a request to start shutting down the script. New probes will not fire (except
+"end"
+probes), but all currently running ones may complete their work.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::FASTCALL</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::FASTCALL</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::fastcall - Mark function as declared fastcall
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ fastcall()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Call this function before accessing arguments using the *_arg functions if the probed kernel function was declared fastcall in the source.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::FORMAT_IPA</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::FORMAT_IPA</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::format_ipaddr - Returns a string representation for an IP address
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ format_ipaddr:string(addr:long,family:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the IP address
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+the IP address family (either AF_INET or AF_INET6)
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::FTRACE</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::FTRACE</H1>
+Section: Logging Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ftrace - Send a message to the ftrace ring-buffer
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ftrace(msg:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>msg</I>
+<DL COMPACT><DT><DD>
+The formatted message string
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+If the ftrace ring-buffer is configured & available, see /debugfs/tracing/trace for the message. Otherwise, the message may be quietly dropped. An implicit end-of-line is added.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::GET_CYCLES</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::GET_CYCLES</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::get_cycles - Processor cycle count
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ get_cycles:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the processor cycle counter value if available, else it returns zero. The cycle counter is free running and unsynchronized on each processor. Thus, the order of events cannot determined by comparing the results of the get_cycles function on different processors.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::GET_LOADAV</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::GET_LOADAV</H1>
+Section: Kernel Process Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::get_loadavg_index - Get the load average for a specified interval
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ get_loadavg_index:long(indx:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>indx</I>
+<DL COMPACT><DT><DD>
+The load average interval to capture.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the load average at a specified interval. The three load average values 1, 5 and 15 minute average corresponds to indexes 0, 1 and 2 of the avenrun array - see linux/sched.h. Please note that the truncated-integer portion of the load average is returned. If the specified index is out-of-bounds, then an error message and exception is thrown.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::GET_SA_FLA</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::GET_SA_FLA</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::get_sa_flags - Returns the numeric value of sa_flags
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ get_sa_flags:long(act:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>act</I>
+<DL COMPACT><DT><DD>
+address of the sigaction to query.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::GET_SA_HAN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::GET_SA_HAN</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::get_sa_handler - Returns the numeric value of sa_handler
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ get_sa_handler:long(act:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>act</I>
+<DL COMPACT><DT><DD>
+address of the sigaction to query.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::GETTIMEOFD</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::GETTIMEOFD</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::gettimeofday_ms - Number of milliseconds since UNIX epoch
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ gettimeofday_ms:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the number of milliseconds since the UNIX epoch.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::GETTIMEOFD</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::GETTIMEOFD</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::gettimeofday_ns - Number of nanoseconds since UNIX epoch
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ gettimeofday_ns:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the number of nanoseconds since the UNIX epoch.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::GETTIMEOFD</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::GETTIMEOFD</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::gettimeofday_s - Number of seconds since UNIX epoch
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ gettimeofday_s:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the number of seconds since the UNIX epoch.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::GETTIMEOFD</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::GETTIMEOFD</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::gettimeofday_us - Number of microseconds since UNIX epoch
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ gettimeofday_us:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the number of microseconds since the UNIX epoch.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::GID</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::GID</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::gid - Returns the group ID of a target process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ gid:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the group ID of a target process.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::HTONL</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::HTONL</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::htonl - Convert 32-bit long from host to network order
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ htonl:long(x:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>x</I>
+<DL COMPACT><DT><DD>
+Value to convert
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::HTONLL</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::HTONLL</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::htonll - Convert 64-bit long long from host to network order
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ htonll:long(x:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>x</I>
+<DL COMPACT><DT><DD>
+Value to convert
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::HTONS</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::HTONS</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::htons - Convert 16-bit short from host to network order
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ htons:long(x:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>x</I>
+<DL COMPACT><DT><DD>
+Value to convert
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::INDENT</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::INDENT</H1>
+Section: Utility functions for using an (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::indent - returns an amount of space to indent
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ indent:string(delta:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>delta</I>
+<DL COMPACT><DT><DD>
+the amount of space added/removed for each call
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns a string with appropriate indentation. Call it with a small positive or matching negative delta. Unlike the thread_indent function, the indent does not track individual indent values on a per thread basis.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::INDENT_DEP</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::INDENT_DEP</H1>
+Section: Utility functions for using an (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::indent_depth - returns the global nested-depth
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ indent_depth:long(delta:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>delta</I>
+<DL COMPACT><DT><DD>
+the amount of depth added/removed for each call
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns a number for appropriate indentation, similar to
+<B>indent</B>. Call it with a small positive or matching negative delta. Unlike the thread_indent_depth function, the indent does not track individual indent values on a per thread basis.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::INET_GET_I</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::INET_GET_I</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::inet_get_ip_source - Provide IP source address string for a kernel socket
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ inet_get_ip_source:string(sock:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>sock</I>
+<DL COMPACT><DT><DD>
+pointer to the kernel socket
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::INET_GET_L</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::INET_GET_L</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::inet_get_local_port - Provide local port number for a kernel socket
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ inet_get_local_port:long(sock:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>sock</I>
+<DL COMPACT><DT><DD>
+pointer to the kernel socket
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::INODE_NAME</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::INODE_NAME</H1>
+Section: Directory-entry (dentry) Tapse (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::inode_name - get the inode name
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ inode_name:string(inode:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>inode</I>
+<DL COMPACT><DT><DD>
+Pointer to inode.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+<P>
+
+Returns the first path basename associated with the given inode.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::INODE_PATH</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::INODE_PATH</H1>
+Section: Directory-entry (dentry) Tapse (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::inode_path - get the path to an inode
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ inode_path:string(inode:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>inode</I>
+<DL COMPACT><DT><DD>
+Pointer to inode.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+<P>
+
+Returns the full path associated with the given inode.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::INT_ARG</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::INT_ARG</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::int_arg - Return function argument as signed int
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ int_arg:long(n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+index of argument to return
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Return the value of argument n as a signed int (i.e., a 32-bit integer sign-extended to 64 bits).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::IP_NTOP</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::IP_NTOP</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ip_ntop - Returns a string representation for an IPv4 address
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ip_ntop:string(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the IPv4 address represented as an integer
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::IPMIB_FILT</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::IPMIB_FILT</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ipmib_filter_key - Default filter function for ipmib.* probes
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ipmib_filter_key:long(skb:long,op:long,SourceIsLocal:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>skb</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sk_buff
+</DL>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be counted if
+<I>skb</I>
+passes the filter
+</DL>
+
+<P>
+
+<I>SourceIsLocal</I>
+<DL COMPACT><DT><DD>
+1 is local operation and 0 is non-local operation
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function is a default filter function. The user can replace this function with their own. The user-supplied filter function returns an index key based on the values in
+<I>skb</I>. A return value of 0 means this particular
+<I>skb</I>
+should be not be counted.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::IPMIB_GET_</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::IPMIB_GET_</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ipmib_get_proto - Get the protocol value
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ipmib_get_proto:long(skb:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>skb</I>
+<DL COMPACT><DT><DD>
+pointer to a struct sk_buff
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the protocol value from
+<I>skb</I>.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::IPMIB_LOCA</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::IPMIB_LOCA</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ipmib_local_addr - Get the local ip address
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ipmib_local_addr:long(skb:long,SourceIsLocal:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>skb</I>
+<DL COMPACT><DT><DD>
+pointer to a struct sk_buff
+</DL>
+
+<P>
+
+<I>SourceIsLocal</I>
+<DL COMPACT><DT><DD>
+flag to indicate whether local operation
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the local ip address
+<I>skb</I>.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::IPMIB_REMO</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::IPMIB_REMO</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ipmib_remote_addr - Get the remote ip address
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ipmib_remote_addr:long(skb:long,SourceIsLocal:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>skb</I>
+<DL COMPACT><DT><DD>
+pointer to a struct sk_buff
+</DL>
+
+<P>
+
+<I>SourceIsLocal</I>
+<DL COMPACT><DT><DD>
+flag to indicate whether local operation
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the remote ip address from
+<I>skb</I>.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::IPMIB_TCP_</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::IPMIB_TCP_</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ipmib_tcp_local_port - Get the local tcp port
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ipmib_tcp_local_port:long(skb:long,SourceIsLocal:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>skb</I>
+<DL COMPACT><DT><DD>
+pointer to a struct sk_buff
+</DL>
+
+<P>
+
+<I>SourceIsLocal</I>
+<DL COMPACT><DT><DD>
+flag to indicate whether local operation
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the local tcp port from
+<I>skb</I>.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::IPMIB_TCP_</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::IPMIB_TCP_</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ipmib_tcp_remote_port - Get the remote tcp port
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ipmib_tcp_remote_port:long(skb:long,SourceIsLocal:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>skb</I>
+<DL COMPACT><DT><DD>
+pointer to a struct sk_buff
+</DL>
+
+<P>
+
+<I>SourceIsLocal</I>
+<DL COMPACT><DT><DD>
+flag to indicate whether local operation
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the remote tcp port from
+<I>skb</I>.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::IS_MYPROC</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::IS_MYPROC</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::is_myproc - Determines if the current probe point has occurred in the user's own process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ is_myproc:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns 1 if the current probe point has occurred in the user's own process.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::IS_RETURN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::IS_RETURN</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::is_return - Whether the current probe context is a return probe
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ is_return:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns 1 if the current probe context is a return probe, returns 0 otherwise.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::IS_SIG_BLO</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::IS_SIG_BLO</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::is_sig_blocked - Returns 1 if the signal is currently blocked, or 0 if it is not
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ is_sig_blocked:long(task:long,sig:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+address of the task_struct to query.
+</DL>
+
+<P>
+
+<I>sig</I>
+<DL COMPACT><DT><DD>
+the signal number to test.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ISDIGIT</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ISDIGIT</H1>
+Section: A collection of standard strin (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::isdigit - Checks for a digit
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ isdigit:long(str:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>str</I>
+<DL COMPACT><DT><DD>
+string to check
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Checks for a digit (0 through 9) as the first character of a string. Returns non-zero if true, and a zero if false.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ISINSTR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ISINSTR</H1>
+Section: A collection of standard strin (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::isinstr - Returns whether a string is a substring of another string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ isinstr:long(s1:string,s2:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>s1</I>
+<DL COMPACT><DT><DD>
+string to search in
+</DL>
+
+<P>
+
+<I>s2</I>
+<DL COMPACT><DT><DD>
+substring to find
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns 1 if string
+<I>s1</I>
+contains
+<I>s2</I>, otherwise zero.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::JIFFIES</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::JIFFIES</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::jiffies - Kernel jiffies count
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ jiffies:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the value of the kernel jiffies variable. This value is incremented periodically by timer interrupts, and may wrap around a 32-bit or 64-bit boundary. See
+<B>HZ</B>.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::KERNEL_CHA</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::KERNEL_CHA</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::kernel_char - Retrieves a char value stored in kernel memory
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ kernel_char:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The kernel address to retrieve the char from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the char value from a given kernel memory address. Reports an error when reading from the given address fails.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::KERNEL_INT</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::KERNEL_INT</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::kernel_int - Retrieves an int value stored in kernel memory
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ kernel_int:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The kernel address to retrieve the int from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the int value from a given kernel memory address. Reports an error when reading from the given address fails.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::KERNEL_LON</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::KERNEL_LON</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::kernel_long - Retrieves a long value stored in kernel memory
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ kernel_long:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The kernel address to retrieve the long from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the long value from a given kernel memory address. Reports an error when reading from the given address fails.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::KERNEL_POI</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::KERNEL_POI</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::kernel_pointer - Retrieves a pointer value stored in kernel memory
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ kernel_pointer:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The kernel address to retrieve the pointer from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the pointer value from a given kernel memory address. Reports an error when reading from the given address fails.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::KERNEL_SHO</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::KERNEL_SHO</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::kernel_short - Retrieves a short value stored in kernel memory
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ kernel_short:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The kernel address to retrieve the short from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the short value from a given kernel memory address. Reports an error when reading from the given address fails.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::KERNEL_STR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::KERNEL_STR</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::kernel_string - Retrieves string from kernel memory
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ kernel_string:string(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The kernel address to retrieve the string from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the null terminated C string from a given kernel memory address. Reports an error on string copy fault.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::KERNEL_STR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::KERNEL_STR</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::kernel_string2 - Retrieves string from kernel memory with alternative error string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ kernel_string2:string(addr:long,err_msg:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The kernel address to retrieve the string from
+</DL>
+
+<P>
+
+<I>err_msg</I>
+<DL COMPACT><DT><DD>
+The error message to return when data isn't available
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the null terminated C string from a given kernel memory address. Reports the given error message on string copy fault.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::KERNEL_STR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::KERNEL_STR</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::kernel_string2_utf16 - Retrieves UTF-16 string from kernel memory with alternative error string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ kernel_string2_utf16:string(addr:long,err_msg:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The kernel address to retrieve the string from
+</DL>
+
+<P>
+
+<I>err_msg</I>
+<DL COMPACT><DT><DD>
+The error message to return when data isn't available
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns a null terminated UTF-8 string converted from the UTF-16 string at a given kernel memory address. Reports the given error message on string copy fault or conversion error.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::KERNEL_STR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::KERNEL_STR</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::kernel_string2_utf32 - Retrieves UTF-32 string from kernel memory with alternative error string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ kernel_string2_utf32:string(addr:long,err_msg:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The kernel address to retrieve the string from
+</DL>
+
+<P>
+
+<I>err_msg</I>
+<DL COMPACT><DT><DD>
+The error message to return when data isn't available
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns a null terminated UTF-8 string converted from the UTF-32 string at a given kernel memory address. Reports the given error message on string copy fault or conversion error.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::KERNEL_STR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::KERNEL_STR</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::kernel_string_n - Retrieves string of given length from kernel memory
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ kernel_string_n:string(addr:long,n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The kernel address to retrieve the string from
+</DL>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+The maximum length of the string (if not null terminated)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the C string of a maximum given length from a given kernel memory address. Reports an error on string copy fault.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::KERNEL_STR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::KERNEL_STR</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::kernel_string_quoted - Retrieves and quotes string from kernel memory
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ kernel_string_quoted:string(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the kernel memory address to retrieve the string from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the null terminated C string from a given kernel memory address where any ASCII characters that are not printable are replaced by the corresponding escape sequence in the returned string. Note that the string will be surrounded by double quotes. If the kernel memory data is not accessible at the given address, the address itself is returned as a string, without double quotes.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::KERNEL_STR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::KERNEL_STR</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::kernel_string_utf16 - Retrieves UTF-16 string from kernel memory
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ kernel_string_utf16:string(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The kernel address to retrieve the string from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns a null terminated UTF-8 string converted from the UTF-16 string at a given kernel memory address. Reports an error on string copy fault or conversion error.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::KERNEL_STR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::KERNEL_STR</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::kernel_string_utf32 - Retrieves UTF-32 string from kernel memory
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ kernel_string_utf32:string(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The kernel address to retrieve the string from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns a null terminated UTF-8 string converted from the UTF-32 string at a given kernel memory address. Reports an error on string copy fault or conversion error.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::LINUXMIB_F</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::LINUXMIB_F</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::linuxmib_filter_key - Default filter function for linuxmib.* probes
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ linuxmib_filter_key:long(sk:long,op:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>sk</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sock
+</DL>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be counted if
+<I>sk</I>
+passes the filter
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function is a default filter function. The user can replace this function with their own. The user-supplied filter function returns an index key based on the values in
+<I>sk</I>. A return value of 0 means this particular
+<I>sk</I>
+should be not be counted.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::LOCAL_CLOC</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::LOCAL_CLOC</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::local_clock_ms - Number of milliseconds on the local cpu's clock
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ local_clock_ms:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the number of milliseconds on the local cpu's clock. This is always monotonic comparing on the same cpu, but may have some drift between cpus (within about a jiffy).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::LOCAL_CLOC</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::LOCAL_CLOC</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::local_clock_ns - Number of nanoseconds on the local cpu's clock
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ local_clock_ns:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the number of nanoseconds on the local cpu's clock. This is always monotonic comparing on the same cpu, but may have some drift between cpus (within about a jiffy).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::LOCAL_CLOC</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::LOCAL_CLOC</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::local_clock_s - Number of seconds on the local cpu's clock
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ local_clock_s:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the number of seconds on the local cpu's clock. This is always monotonic comparing on the same cpu, but may have some drift between cpus (within about a jiffy).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::LOCAL_CLOC</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::LOCAL_CLOC</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::local_clock_us - Number of microseconds on the local cpu's clock
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ local_clock_us:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the number of microseconds on the local cpu's clock. This is always monotonic comparing on the same cpu, but may have some drift between cpus (within about a jiffy).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::LOG</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::LOG</H1>
+Section: Logging Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::log - Send a line to the common trace buffer
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ log(msg:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>msg</I>
+<DL COMPACT><DT><DD>
+The formatted message string
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function logs data. log sends the message immediately to staprun and to the bulk transport (relayfs) if it is being used. If the last character given is not a newline, then one is added. This function is not as efficient as printf and should be used only for urgent messages.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::LONG_ARG</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::LONG_ARG</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::long_arg - Return function argument as signed long
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ long_arg:long(n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+index of argument to return
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Return the value of argument n as a signed long. On architectures where a long is 32 bits, the value is sign-extended to 64 bits.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::LONGLONG_A</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::LONGLONG_A</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::longlong_arg - Return function argument as 64-bit value
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ longlong_arg:long(n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+index of argument to return
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Return the value of argument n as a 64-bit value.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::MDELAY</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::MDELAY</H1>
+Section: Guru tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::mdelay - millisecond delay
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ mdelay(ms:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>ms</I>
+<DL COMPACT><DT><DD>
+Number of milliseconds to delay.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function inserts a multi-millisecond busy-delay into a probe handler. It requires guru mode.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::MEM_PAGE_S</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::MEM_PAGE_S</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::mem_page_size - Number of bytes in a page for this architecture
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ mem_page_size:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::MODNAME</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::MODNAME</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::modname - Return the kernel module name loaded at the address
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ modname:string(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The address to map to a kernel module name
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the module name associated with the given address if known. If not known it will raise an error. If the address was not in a kernel module, but in the kernel itself, then the string
+"kernel"
+will be returned.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::MODULE_NAM</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::MODULE_NAM</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::module_name - The module name of the current script
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ module_name:string()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the name of the stap module. Either generated randomly (stap_[0-9a-f]+_[0-9a-f]+) or set by stap -m <module_name>.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::MSECS_TO_S</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::MSECS_TO_S</H1>
+Section: Task Time Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::msecs_to_string - Human readable string for given milliseconds
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ msecs_to_string:string(msecs:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>msecs</I>
+<DL COMPACT><DT><DD>
+Number of milliseconds to translate.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns a string representing the number of milliseconds as a human readable string consisting of
+"XmY.ZZZs", where X is the number of minutes, Y is the number of seconds and ZZZ is the number of milliseconds.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::NFSDERROR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::NFSDERROR</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::nfsderror - Convert nfsd error number into string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ nfsderror:string(err:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>err</I>
+<DL COMPACT><DT><DD>
+errnum
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns a string for the error number passed into the function.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::NSECS_TO_S</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::NSECS_TO_S</H1>
+Section: Task Time Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::nsecs_to_string - Human readable string for given nanoseconds
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ nsecs_to_string:string(nsecs:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>nsecs</I>
+<DL COMPACT><DT><DD>
+Number of nanoseconds to translate.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns a string representing the number of nanoseconds as a human readable string consisting of
+"XmY.ZZZZZZs", where X is the number of minutes, Y is the number of seconds and ZZZZZZZZZ is the number of nanoseconds.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::NTOHL</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::NTOHL</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ntohl - Convert 32-bit long from network to host order
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ntohl:long(x:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>x</I>
+<DL COMPACT><DT><DD>
+Value to convert
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::NTOHLL</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::NTOHLL</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ntohll - Convert 64-bit long long from network to host order
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ntohll:long(x:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>x</I>
+<DL COMPACT><DT><DD>
+Value to convert
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::NTOHS</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::NTOHS</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ntohs - Convert 16-bit short from network to host order
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ntohs:long(x:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>x</I>
+<DL COMPACT><DT><DD>
+Value to convert
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PAGES_TO_S</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PAGES_TO_S</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::pages_to_string - Turns pages into a human readable string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ pages_to_string:string(pages:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>pages</I>
+<DL COMPACT><DT><DD>
+Number of pages to translate.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Multiplies pages by
+<B>page_size</B>
+to get the number of bytes and returns the result of
+<B>bytes_to_string</B>.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PANIC</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PANIC</H1>
+Section: Guru tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::panic - trigger a panic
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ panic(msg:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>msg</I>
+<DL COMPACT><DT><DD>
+message to pass to kernel's
+<B>panic</B>
+function
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function triggers an immediate panic of the running kernel with a user-specified panic message. It requires guru mode.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PEXECNAME</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PEXECNAME</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::pexecname - Returns the execname of a target process's parent process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ pexecname:string()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the execname of a target process's parent procces.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PGRP</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PGRP</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::pgrp - Returns the process group ID of the current process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ pgrp:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the process group ID of the current process.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PID</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PID</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::pid - Returns the ID of a target process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ pid:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the ID of a target process.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PID2EXECNA</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PID2EXECNA</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::pid2execname - The name of the given process identifier
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ pid2execname:string(pid:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>pid</I>
+<DL COMPACT><DT><DD>
+process identifier
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Return the name of the given process id.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PID2TASK</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PID2TASK</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::pid2task - The task_struct of the given process identifier
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ pid2task:long(pid:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>pid</I>
+<DL COMPACT><DT><DD>
+process identifier
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Return the task struct of the given process id.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PN</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::pn - Returns the active probe name
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ pn:string()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the script-level probe point associated with a currently running probe handler, including wild-card expansion effects. Context: The current probe point.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PNLABEL</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PNLABEL</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::pnlabel - Returns the label name parsed from the probe name
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ pnlabel:string()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This returns the label name as parsed from the script-level probe point. This function will only work if called directly from the body of a '.label' probe point (i.e. no aliases).
+<A NAME="lbAF"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The current probe point.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAF">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::POINTER_AR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::POINTER_AR</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::pointer_arg - Return function argument as pointer value
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ pointer_arg:long(n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+index of argument to return
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Return the unsigned value of argument n, same as ulong_arg. Can be used with any type of pointer.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PP</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PP</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::pp - Returns the active probe point
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ pp:string()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the fully-resolved probe point associated with a currently running probe handler, including alias and wild-card expansion effects. Context: The current probe point.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PPFUNC</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PPFUNC</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ppfunc - Returns the function name parsed from <B>pp</B>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ppfunc:string()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This returns the function name from the current
+<B>pp</B>. Not all
+<B>pp</B>
+have functions in them, in which case "" is returned.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PPID</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PPID</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ppid - Returns the process ID of a target process's parent process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ppid:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function return the process ID of the target proccess's parent process.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PRINT_BACK</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PRINT_BACK</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::print_backtrace - Print kernel stack back trace
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ print_backtrace()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function is equivalent to print_stack(<B>backtrace</B>), except that deeper stack nesting may be supported. See print_ubacktrace for user-space backtrace. The function does not return a value.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PRINT_REGS</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PRINT_REGS</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::print_regs - Print a register dump
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ print_regs()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function prints a register dump. Does nothing if no registers are available for the probe point.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PRINT_STAC</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PRINT_STAC</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::print_stack - Print out kernel stack from string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ print_stack(stk:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>stk</I>
+<DL COMPACT><DT><DD>
+String with list of hexadecimal addresses
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function performs a symbolic lookup of the addresses in the given string, which is assumed to be the result of a prior call to
+<B>backtrace</B>.
+<P>
+
+Print one line per address, including the address, the name of the function containing the address, and an estimate of its position within that function. Return nothing.
+<A NAME="lbAF"> </A>
+<H2>NOTE</H2>
+
+<P>
+
+it is recommended to use
+<B>print_syms</B>
+instead of this function.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAF">NOTE</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PRINT_SYMS</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PRINT_SYMS</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::print_syms - Print out kernel stack from string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ print_syms(callers:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>callers</I>
+<DL COMPACT><DT><DD>
+String with list of hexadecimal (kernel) addresses
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function performs a symbolic lookup of the addresses in the given string, which are assumed to be the result of prior calls to
+<B>stack</B>,
+<B>callers</B>, and similar functions.
+<P>
+
+Prints one line per address, including the address, the name of the function containing the address, and an estimate of its position within that function, as obtained by
+<B>symdata</B>. Returns nothing.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PRINT_UBAC</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PRINT_UBAC</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::print_ubacktrace - Print stack back trace for current user-space task.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ print_ubacktrace()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+<P>
+
+Equivalent to print_ustack(<B>ubacktrace</B>), except that deeper stack nesting may be supported. Returns nothing. See
+<B>print_backtrace</B>
+for kernel backtrace.
+<A NAME="lbAF"> </A>
+<H2>NOTE</H2>
+
+<P>
+
+To get (full) backtraces for user space applications and shared shared libraries not mentioned in the current script run stap with -d /path/to/exe-or-so and/or add --ldd to load all needed unwind data.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAF">NOTE</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PRINT_UBAC</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PRINT_UBAC</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::print_ubacktrace_brief - Print stack back trace for current user-space task.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ print_ubacktrace_brief()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+<P>
+
+Equivalent to
+<B>print_ubacktrace</B>, but output for each symbol is shorter (just name and offset, or just the hex address of no symbol could be found).
+<A NAME="lbAF"> </A>
+<H2>NOTE</H2>
+
+<P>
+
+To get (full) backtraces for user space applications and shared shared libraries not mentioned in the current script run stap with -d /path/to/exe-or-so and/or add --ldd to load all needed unwind data.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAF">NOTE</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PRINT_USTA</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PRINT_USTA</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::print_ustack - Print out stack for the current task from string.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ print_ustack(stk:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>stk</I>
+<DL COMPACT><DT><DD>
+String with list of hexadecimal addresses for the current task.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Perform a symbolic lookup of the addresses in the given string, which is assumed to be the result of a prior call to
+<B>ubacktrace</B>
+for the current task.
+<P>
+
+Print one line per address, including the address, the name of the function containing the address, and an estimate of its position within that function. Return nothing.
+<A NAME="lbAF"> </A>
+<H2>NOTE</H2>
+
+<P>
+
+it is recommended to use
+<B>print_usyms</B>
+instead of this function.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAF">NOTE</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PRINT_USYM</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PRINT_USYM</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::print_usyms - Print out user stack from string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ print_usyms(callers:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>callers</I>
+<DL COMPACT><DT><DD>
+String with list of hexadecimal (user) addresses
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function performs a symbolic lookup of the addresses in the given string, which are assumed to be the result of prior calls to
+<B>ustack</B>,
+<B>ucallers</B>, and similar functions.
+<P>
+
+Prints one line per address, including the address, the name of the function containing the address, and an estimate of its position within that function, as obtained by
+<B>usymdata</B>. Returns nothing.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PRINTK</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PRINTK</H1>
+Section: Logging Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::printk - Send a message to the kernel trace buffer
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ printk(level:long,msg:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>level</I>
+<DL COMPACT><DT><DD>
+an integer for the severity level (0=KERN_EMERG ... 7=KERN_DEBUG)
+</DL>
+
+<P>
+
+<I>msg</I>
+<DL COMPACT><DT><DD>
+The formatted message string
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Print a line of text to the kernel dmesg/console with the given severity. An implicit end-of-line is added. This function may not be safely called from all kernel probe contexts, so is restricted to guru mode only.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PROBE_TYPE</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PROBE_TYPE</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::probe_type - The low level probe handler type of the current probe.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ probe_type:string()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns a short string describing the low level probe handler type for the current probe point. This is for informational purposes only. Depending on the low level probe handler different context functions can or cannot provide information about the current event (for example some probe handlers only trigger in user space and have no associated kernel context). High-level probes might map to the same or different low-level probes (depending on systemtap version and/or kernel used).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PROBEFUNC</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PROBEFUNC</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::probefunc - Return the probe point's function name, if known
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ probefunc:string()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the name of the function being probed based on the current address, as computed by symname(<B>addr</B>) or usymname(<B>uaddr</B>) depending on probe context (whether the probe is a user probe or a kernel probe).
+<A NAME="lbAF"> </A>
+<H2>PLEASE NOTE</H2>
+
+<P>
+
+this function's behaviour differs between SystemTap 2.0 and earlier versions. Prior to 2.0,
+<B>probefunc</B>
+obtained the function name from the probe point string as returned by
+<B>pp</B>, and used the current address as a fallback.
+<P>
+
+Consider using
+<B>ppfunc</B>
+instead.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAF">PLEASE NOTE</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PROBEMOD</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PROBEMOD</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::probemod - Return the probe point's kernel module name
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ probemod:string()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the name of the kernel module containing the probe point, if known.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PROC_MEM_D</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PROC_MEM_D</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::proc_mem_data - Program data size (data + stack) in pages
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ proc_mem_data:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the current process data size (data + stack) in pages, or zero when there is no current process or the number of pages couldn't be retrieved.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PROC_MEM_D</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PROC_MEM_D</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::proc_mem_data_pid - Program data size (data + stack) in pages
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ proc_mem_data_pid:long(pid:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>pid</I>
+<DL COMPACT><DT><DD>
+The pid of process to examine
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the given process data size (data + stack) in pages, or zero when the process doesn't exist or the number of pages couldn't be retrieved.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PROC_MEM_R</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PROC_MEM_R</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::proc_mem_rss - Program resident set size in pages
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ proc_mem_rss:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the resident set size in pages of the current process, or zero when there is no current process or the number of pages couldn't be retrieved.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PROC_MEM_R</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PROC_MEM_R</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::proc_mem_rss_pid - Program resident set size in pages
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ proc_mem_rss_pid:long(pid:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>pid</I>
+<DL COMPACT><DT><DD>
+The pid of process to examine
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the resident set size in pages of the given process, or zero when the process doesn't exist or the number of pages couldn't be retrieved.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PROC_MEM_S</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PROC_MEM_S</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::proc_mem_shr - Program shared pages (from shared mappings)
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ proc_mem_shr:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the shared pages (from shared mappings) of the current process, or zero when there is no current process or the number of pages couldn't be retrieved.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PROC_MEM_S</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PROC_MEM_S</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::proc_mem_shr_pid - Program shared pages (from shared mappings)
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ proc_mem_shr_pid:long(pid:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>pid</I>
+<DL COMPACT><DT><DD>
+The pid of process to examine
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the shared pages (from shared mappings) of the given process, or zero when the process doesn't exist or the number of pages couldn't be retrieved.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PROC_MEM_S</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PROC_MEM_S</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::proc_mem_size - Total program virtual memory size in pages
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ proc_mem_size:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the total virtual memory size in pages of the current process, or zero when there is no current process or the number of pages couldn't be retrieved.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PROC_MEM_S</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PROC_MEM_S</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::proc_mem_size_pid - Total program virtual memory size in pages
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ proc_mem_size_pid:long(pid:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>pid</I>
+<DL COMPACT><DT><DD>
+The pid of process to examine
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the total virtual memory size in pages of the given process, or zero when that process doesn't exist or the number of pages couldn't be retrieved.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PROC_MEM_S</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PROC_MEM_S</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::proc_mem_string - Human readable string of current proc memory usage
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ proc_mem_string:string()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns a human readable string showing the size, rss, shr, txt and data of the memory used by the current process. For example
+"size: 301m, rss: 11m, shr: 8m, txt: 52k, data: 2248k".
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PROC_MEM_S</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PROC_MEM_S</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::proc_mem_string_pid - Human readable string of process memory usage
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ proc_mem_string_pid:string(pid:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>pid</I>
+<DL COMPACT><DT><DD>
+The pid of process to examine
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns a human readable string showing the size, rss, shr, txt and data of the memory used by the given process. For example
+"size: 301m, rss: 11m, shr: 8m, txt: 52k, data: 2248k".
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PROC_MEM_T</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PROC_MEM_T</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::proc_mem_txt - Program text (code) size in pages
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ proc_mem_txt:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the current process text (code) size in pages, or zero when there is no current process or the number of pages couldn't be retrieved.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PROC_MEM_T</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PROC_MEM_T</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::proc_mem_txt_pid - Program text (code) size in pages
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ proc_mem_txt_pid:long(pid:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>pid</I>
+<DL COMPACT><DT><DD>
+The pid of process to examine
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the given process text (code) size in pages, or zero when the process doesn't exist or the number of pages couldn't be retrieved.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::PSTRACE</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::PSTRACE</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::pstrace - Chain of processes and pids back to <A HREF="init.1.html">init</A>(1)
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ pstrace:string(task:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+Pointer to task struct of process
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns a string listing execname and pid for each process starting from
+<I>task</I>
+back to the process ancestor that <A HREF="init.1.html">init</A>(1) spawned.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::QS_DONE</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::QS_DONE</H1>
+Section: Queue Statistics Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::qs_done - Function to record finishing request
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ qs_done(qname:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>qname</I>
+<DL COMPACT><DT><DD>
+the name of the service that finished
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function records that a request originally from the given queue has completed being serviced.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::QS_RUN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::QS_RUN</H1>
+Section: Queue Statistics Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::qs_run - Function to record being moved from wait queue to being serviced
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ qs_run(qname:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>qname</I>
+<DL COMPACT><DT><DD>
+the name of the service being moved and started
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function records that the previous enqueued request was removed from the given wait queue and is now being serviced.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::QS_WAIT</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::QS_WAIT</H1>
+Section: Queue Statistics Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::qs_wait - Function to record enqueue requests
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ qs_wait(qname:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>qname</I>
+<DL COMPACT><DT><DD>
+the name of the queue requesting enqueue
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function records that a new request was enqueued for the given queue name.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::QSQ_BLOCKE</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::QSQ_BLOCKE</H1>
+Section: Queue Statistics Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::qsq_blocked - Returns the time reqest was on the wait queue
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ qsq_blocked:long(qname:string,scale:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>qname</I>
+<DL COMPACT><DT><DD>
+queue name
+</DL>
+
+<P>
+
+<I>scale</I>
+<DL COMPACT><DT><DD>
+scale variable to take account for interval fraction
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the fraction of elapsed time during which one or more requests were on the wait queue.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::QSQ_PRINT</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::QSQ_PRINT</H1>
+Section: Queue Statistics Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::qsq_print - Prints a line of statistics for the given queue
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ qsq_print(qname:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>qname</I>
+<DL COMPACT><DT><DD>
+queue name
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function prints a line containing the following
+<A NAME="lbAF"> </A>
+<H2>STATISTICS FOR THE GIVEN QUEUE</H2>
+
+<P>
+
+the queue name, the average rate of requests per second, the average wait queue length, the average time on the wait queue, the average time to service a request, the percentage of time the wait queue was used, and the percentage of time request was being serviced.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAF">STATISTICS FOR THE GIVEN QUEUE</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::QSQ_SERVIC</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::QSQ_SERVIC</H1>
+Section: Queue Statistics Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::qsq_service_time - Amount of time per request service
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ qsq_service_time:long(qname:string,scale:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>qname</I>
+<DL COMPACT><DT><DD>
+queue name
+</DL>
+
+<P>
+
+<I>scale</I>
+<DL COMPACT><DT><DD>
+scale variable to take account for interval fraction
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the average time in microseconds required to service a request once it is removed from the wait queue.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::QSQ_START</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::QSQ_START</H1>
+Section: Queue Statistics Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::qsq_start - Function to reset the stats for a queue
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ qsq_start(qname:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>qname</I>
+<DL COMPACT><DT><DD>
+the name of the service that finished
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function resets the statistics counters for the given queue, and restarts tracking from the moment the function was called. This function is also used to create intialize a queue.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::QSQ_THROUG</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::QSQ_THROUG</H1>
+Section: Queue Statistics Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::qsq_throughput - Number of requests served per unit time
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ qsq_throughput:long(qname:string,scale:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>qname</I>
+<DL COMPACT><DT><DD>
+queue name
+</DL>
+
+<P>
+
+<I>scale</I>
+<DL COMPACT><DT><DD>
+scale variable to take account for interval fraction
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the average number or requests served per microsecond.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::QSQ_UTILIZ</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::QSQ_UTILIZ</H1>
+Section: Queue Statistics Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::qsq_utilization - Fraction of time that any request was being serviced
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ qsq_utilization:long(qname:string,scale:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>qname</I>
+<DL COMPACT><DT><DD>
+queue name
+</DL>
+
+<P>
+
+<I>scale</I>
+<DL COMPACT><DT><DD>
+scale variable to take account for interval fraction
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the average time in microseconds that at least one request was being serviced.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::QSQ_WAIT_Q</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::QSQ_WAIT_Q</H1>
+Section: Queue Statistics Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::qsq_wait_queue_length - length of wait queue
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ qsq_wait_queue_length:long(qname:string,scale:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>qname</I>
+<DL COMPACT><DT><DD>
+queue name
+</DL>
+
+<P>
+
+<I>scale</I>
+<DL COMPACT><DT><DD>
+scale variable to take account for interval fraction
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the average length of the wait queue
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::QSQ_WAIT_T</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::QSQ_WAIT_T</H1>
+Section: Queue Statistics Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::qsq_wait_time - Amount of time in queue + service per request
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ qsq_wait_time:long(qname:string,scale:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>qname</I>
+<DL COMPACT><DT><DD>
+queue name
+</DL>
+
+<P>
+
+<I>scale</I>
+<DL COMPACT><DT><DD>
+scale variable to take account for interval fraction
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the average time in microseconds that it took for a request to be serviced (<B>qs_wait</B>
+to
+<B>qa_done</B>).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::RAISE</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::RAISE</H1>
+Section: Guru tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::raise - raise a signal in the current thread
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ raise(signo:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>signo</I>
+<DL COMPACT><DT><DD>
+signal number
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function calls the kernel send_sig routine on the current thread, with the given raw unchecked signal number. It may raise an error if
+<B>send_sig</B>
+failed. It requires guru mode.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::RANDINT</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::RANDINT</H1>
+Section: Random functions Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::randint - Return a random number between [0,n)
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ randint:long(n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+Number past upper limit of range, not larger than 2**20.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::READ_STOPW</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::READ_STOPW</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::read_stopwatch_ms - Reads the time in milliseconds for a stopwatch
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ read_stopwatch_ms:long(name:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+stopwatch name
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns time in milliseconds for stopwatch
+<I>name</I>. Creates stopwatch
+<I>name</I>
+if it does not currently exist.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::READ_STOPW</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::READ_STOPW</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::read_stopwatch_ns - Reads the time in nanoseconds for a stopwatch
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ read_stopwatch_ns:long(name:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+stopwatch name
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns time in nanoseconds for stopwatch
+<I>name</I>. Creates stopwatch
+<I>name</I>
+if it does not currently exist.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::READ_STOPW</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::READ_STOPW</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::read_stopwatch_s - Reads the time in seconds for a stopwatch
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ read_stopwatch_s:long(name:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+stopwatch name
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns time in seconds for stopwatch
+<I>name</I>. Creates stopwatch
+<I>name</I>
+if it does not currently exist.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::READ_STOPW</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::READ_STOPW</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::read_stopwatch_us - Reads the time in microseconds for a stopwatch
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ read_stopwatch_us:long(name:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+stopwatch name
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns time in microseconds for stopwatch
+<I>name</I>. Creates stopwatch
+<I>name</I>
+if it does not currently exist.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::REAL_MOUNT</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::REAL_MOUNT</H1>
+Section: Directory-entry (dentry) Tapse (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::real_mount - get the 'struct mount' pointer
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ real_mount:long(vfsmnt:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>vfsmnt</I>
+<DL COMPACT><DT><DD>
+Pointer to 'struct vfsmount'
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+<P>
+
+Returns the 'struct mount' pointer value for a 'struct vfsmount' pointer.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::REGISTER</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::REGISTER</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::register - Return the signed value of the named CPU register
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ register:long(name:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the register to return
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Return the value of the named CPU register, as it was saved when the current probe point was hit. If the register is 32 bits, it is sign-extended to 64 bits.
+<P>
+
+For the i386 architecture, the following names are recognized. (name1/name2 indicates that name1 and name2 are alternative names for the same register.) eax/ax, ebp/bp, ebx/bx, ecx/cx, edi/di, edx/dx, eflags/flags, eip/ip, esi/si, esp/sp, orig_eax/orig_ax, xcs/cs, xds/ds, xes/es, xfs/fs, xss/ss.
+<P>
+
+For the x86_64 architecture, the following names are recognized: 64-bit registers: r8, r9, r10, r11, r12, r13, r14, r15, rax/ax, rbp/bp, rbx/bx, rcx/cx, rdi/di, rdx/dx, rip/ip, rsi/si, rsp/sp; 32-bit registers: eax, ebp, ebx, ecx, edx, edi, edx, eip, esi, esp, flags/eflags, orig_eax; segment registers: xcs/cs, xss/ss.
+<P>
+
+For powerpc, the following names are recognized: r0, r1, ... r31, nip, msr, orig_gpr3, ctr, link, xer, ccr, softe, trap, dar, dsisr, result.
+<P>
+
+For s390x, the following names are recognized: r0, r1, ... r15, args, psw.mask, psw.addr, orig_gpr2, ilc, trap.
+<P>
+
+For AArch64, the following names are recognized: x0, x1, ... x30, fp, lr, sp, pc, and orig_x0.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::REGISTERS_</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::REGISTERS_</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::registers_valid - Determines validity of <B>register</B> and <B>u_register</B> in current context
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ registers_valid:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns 1 if
+<B>register</B>
+and
+<B>u_register</B>
+can be used in the current context, or 0 otherwise. For example,
+<B>registers_valid</B>
+returns 0 when called from a begin or end probe.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::REGPARM</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::REGPARM</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::regparm - Specify regparm value used to compile function
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ regparm(n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+original regparm value
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Call this function with argument n before accessing function arguments using the *_arg function is the function was build with the gcc -mregparm=n option.
+<P>
+
+(The i386 kernel is built with -mregparm=3, so systemtap considers <A HREF="regparm.3.html">regparm</A>(3) the default for kernel functions on that architecture.) Only valid on i386 and x86_64 (when probing 32bit applications). Produces an error on other architectures.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::REMOTE_ID</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::REMOTE_ID</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::remote_id - The index of this instance in a remote execution.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ remote_id:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns a number 0..N, which is the unique index of this particular script execution from a swarm of
+"stap --remote A --remote B ..."
+runs, and is the same number
+"stap --remote-prefix"
+would print. The function returns -1 if the script was not launched with
+"stap --remote", or if the remote staprun/stapsh are older than version 1.7.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::REMOTE_URI</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::REMOTE_URI</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::remote_uri - The name of this instance in a remote execution.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ remote_uri:string()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the remote host used to invoke this particular script execution from a swarm of
+"stap --remote"
+runs. It may not be unique among the swarm. The function returns an empty string if the script was not launched with
+"stap --remote".
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::RETURN_STR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::RETURN_STR</H1>
+Section: Errno Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::return_str - Formats the return value as a string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ return_str:string(format:long,ret:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>format</I>
+<DL COMPACT><DT><DD>
+Variable to determine return type base value
+</DL>
+
+<P>
+
+<I>ret</I>
+<DL COMPACT><DT><DD>
+Return value (typically
+<B>$return</B>)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function is used by the syscall tapset, and returns a string. Set format equal to 1 for a decimal, 2 for hex, 3 for octal.
+<P>
+
+Note that this function is preferred over
+<B>returnstr</B>.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::RETURNSTR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::RETURNSTR</H1>
+Section: Errno Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::returnstr - Formats the return value as a string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ returnstr:string(format:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>format</I>
+<DL COMPACT><DT><DD>
+Variable to determine return type base value
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function is used by the nd_syscall tapset, and returns a string. Set format equal to 1 for a decimal, 2 for hex, 3 for octal.
+<P>
+
+Note that this function should only be used in dwarfless probes (i.e. 'kprobe.function("foo")'). Other probes should use
+<B>return_str</B>.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::RETURNVAL</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::RETURNVAL</H1>
+Section: Errno Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::returnval - Possible return value of probed function
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ returnval:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Return the value of the register in which function values are typically returned. Can be used in probes where
+<B>$return</B>
+isn't available. This is only a guess of the actual return value and can be totally wrong. Normally only used in dwarfless probes.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::REVERSE_PA</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::REVERSE_PA</H1>
+Section: Directory-entry (dentry) Tapse (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::reverse_path_walk - get the full dirent path
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ reverse_path_walk:string(dentry:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>dentry</I>
+<DL COMPACT><DT><DD>
+Pointer to dentry.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+<P>
+
+Returns the path name (partial path to mount point).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::RLIMIT_FRO</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::RLIMIT_FRO</H1>
+Section: RLIMIT Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::rlimit_from_str - Symbolic string associated with resource limit code
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ rlimit_from_str:long(lim_str:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>lim_str</I>
+<DL COMPACT><DT><DD>
+The string representation of limit
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the number associated with the given string, such as 0 for the string RLIMIT_CPU, or -1 for an out-of-range value.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::S32_ARG</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::S32_ARG</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::s32_arg - Return function argument as signed 32-bit value
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ s32_arg:long(n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+index of argument to return
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Return the signed 32-bit value of argument n, same as int_arg.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::S64_ARG</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::S64_ARG</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::s64_arg - Return function argument as signed 64-bit value
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ s64_arg:long(n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+index of argument to return
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Return the signed 64-bit value of argument n, same as longlong_arg.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SA_FLAGS_S</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SA_FLAGS_S</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::sa_flags_str - Returns the string representation of sa_flags
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ sa_flags_str:string(sa_flags:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>sa_flags</I>
+<DL COMPACT><DT><DD>
+the set of flags to convert to string.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SA_HANDLER</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SA_HANDLER</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::sa_handler_str - Returns the string representation of an sa_handler
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ sa_handler_str(handler:)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>handler</I>
+<DL COMPACT><DT><DD>
+the sa_handler to convert to string.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the string representation of an sa_handler. If it is not SIG_DFL, SIG_IGN or SIG_ERR, it will return the address of the handler.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SET_KERNEL</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SET_KERNEL</H1>
+Section: String and data writing functi (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::set_kernel_char - Writes a char value to kernel memory
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ set_kernel_char(addr:long,val:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The kernel address to write the char to
+</DL>
+
+<P>
+
+<I>val</I>
+<DL COMPACT><DT><DD>
+The char which is to be written
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Writes the char value to a given kernel memory address. Reports an error when writing to the given address fails. Requires the use of guru mode (-g).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SET_KERNEL</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SET_KERNEL</H1>
+Section: String and data writing functi (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::set_kernel_int - Writes an int value to kernel memory
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ set_kernel_int(addr:long,val:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The kernel address to write the int to
+</DL>
+
+<P>
+
+<I>val</I>
+<DL COMPACT><DT><DD>
+The int which is to be written
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Writes the int value to a given kernel memory address. Reports an error when writing to the given address fails. Requires the use of guru mode (-g).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SET_KERNEL</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SET_KERNEL</H1>
+Section: String and data writing functi (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::set_kernel_long - Writes a long value to kernel memory
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ set_kernel_long(addr:long,val:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The kernel address to write the long to
+</DL>
+
+<P>
+
+<I>val</I>
+<DL COMPACT><DT><DD>
+The long which is to be written
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Writes the long value to a given kernel memory address. Reports an error when writing to the given address fails. Requires the use of guru mode (-g).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SET_KERNEL</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SET_KERNEL</H1>
+Section: String and data writing functi (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::set_kernel_pointer - Writes a pointer value to kernel memory.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ set_kernel_pointer(addr:long,val:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The kernel address to write the pointer to
+</DL>
+
+<P>
+
+<I>val</I>
+<DL COMPACT><DT><DD>
+The pointer which is to be written
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Writes the pointer value to a given kernel memory address. Reports an error when writing to the given address fails. Requires the use of guru mode (-g).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SET_KERNEL</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SET_KERNEL</H1>
+Section: String and data writing functi (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::set_kernel_short - Writes a short value to kernel memory
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ set_kernel_short(addr:long,val:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The kernel address to write the short to
+</DL>
+
+<P>
+
+<I>val</I>
+<DL COMPACT><DT><DD>
+The short which is to be written
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Writes the short value to a given kernel memory address. Reports an error when writing to the given address fails. Requires the use of guru mode (-g).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SET_KERNEL</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SET_KERNEL</H1>
+Section: String and data writing functi (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::set_kernel_string - Writes a string to kernel memory
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ set_kernel_string(addr:long,val:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The kernel address to write the string to
+</DL>
+
+<P>
+
+<I>val</I>
+<DL COMPACT><DT><DD>
+The string which is to be written
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Writes the given string to a given kernel memory address. Reports an error on string copy fault. Requires the use of guru mode (-g).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SET_KERNEL</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SET_KERNEL</H1>
+Section: String and data writing functi (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::set_kernel_string_n - Writes a string of given length to kernel memory
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ set_kernel_string_n(addr:long,n:long,val:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The kernel address to write the string to
+</DL>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+The maximum length of the string
+</DL>
+
+<P>
+
+<I>val</I>
+<DL COMPACT><DT><DD>
+The string which is to be written
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Writes the given string up to a maximum given length to a given kernel memory address. Reports an error on string copy fault. Requires the use of guru mode (-g).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SID</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SID</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::sid - Returns the session ID of the current process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ sid:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The session ID of a process is the process group ID of the session leader. Session ID is stored in the signal_struct since Kernel 2.6.0.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SIGNAL_STR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SIGNAL_STR</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::signal_str - Returns the string representation of a signal number
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ signal_str(num:)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>num</I>
+<DL COMPACT><DT><DD>
+the signal number to convert to string.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SIGSET_MAS</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SIGSET_MAS</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::sigset_mask_str - Returns the string representation of a sigset
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ sigset_mask_str:string(mask:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>mask</I>
+<DL COMPACT><DT><DD>
+the sigset to convert to string.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SOCK_FAM_N</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SOCK_FAM_N</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::sock_fam_num2str - Given a protocol family number, return a string representation
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ sock_fam_num2str:string(family:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+The family number
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SOCK_FAM_S</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SOCK_FAM_S</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::sock_fam_str2num - Given a protocol family name (string), return the corresponding protocol family number
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ sock_fam_str2num:long(family:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+The family name
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SOCK_PROT_</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SOCK_PROT_</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::sock_prot_num2str - Given a protocol number, return a string representation
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ sock_prot_num2str:string(proto:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>proto</I>
+<DL COMPACT><DT><DD>
+The protocol number
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SOCK_PROT_</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SOCK_PROT_</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::sock_prot_str2num - Given a protocol name (string), return the corresponding protocol number
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ sock_prot_str2num:long(proto:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>proto</I>
+<DL COMPACT><DT><DD>
+The protocol name
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SOCK_STATE</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SOCK_STATE</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::sock_state_num2str - Given a socket state number, return a string representation
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ sock_state_num2str:string(state:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>state</I>
+<DL COMPACT><DT><DD>
+The state number
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SOCK_STATE</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SOCK_STATE</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::sock_state_str2num - Given a socket state string, return the corresponding state number
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ sock_state_str2num:long(state:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>state</I>
+<DL COMPACT><DT><DD>
+The state name
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SPECULATE</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SPECULATE</H1>
+Section: Speculation (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::speculate - Store a string for possible output later
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ speculate(id:long,output:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>id</I>
+<DL COMPACT><DT><DD>
+buffer id to store the information in
+</DL>
+
+<P>
+
+<I>output</I>
+<DL COMPACT><DT><DD>
+string to write out when commit occurs
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Add a string to the speculaive buffer for id.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SPECULATIO</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SPECULATIO</H1>
+Section: Speculation (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::speculation - Allocate a new id for speculative output
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ speculation:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+<P>
+
+The
+<B>speculation</B>
+function is called when a new speculation buffer is needed. It returns an id for the speculative output. There can be multiple threads being speculated on concurrently. This id is used by other speculation functions to keep the threads separate.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SPRINT_BAC</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SPRINT_BAC</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::sprint_backtrace - Return stack back trace as string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ sprint_backtrace:string()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+<P>
+
+Returns a simple (kernel) backtrace. One line per address. Includes the symbol name (or hex address if symbol couldn't be resolved) and module name (if found). Includes the offset from the start of the function if found, otherwise the offset will be added to the module (if found, between brackets). Returns the backtrace as string (each line terminated by a newline character). Note that the returned stack will be truncated to MAXSTRINGLEN, to print fuller and richer stacks use
+<B>print_backtrace</B>. Equivalent to sprint_stack(<B>backtrace</B>), but more efficient (no need to translate between hex strings and final backtrace string).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SPRINT_LOA</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SPRINT_LOA</H1>
+Section: Kernel Process Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::sprint_loadavg - Report a pretty-printed load average
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ sprint_loadavg:string()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the a string with three decimal numbers in the usual format for 1-, 5- and 15-minute load averages.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SPRINT_STA</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SPRINT_STA</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::sprint_stack - Return stack for kernel addresses from string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ sprint_stack:string(stk:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>stk</I>
+<DL COMPACT><DT><DD>
+String with list of hexadecimal (kernel) addresses
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Perform a symbolic lookup of the addresses in the given string, which is assumed to be the result of a prior call to
+<B>backtrace</B>.
+<P>
+
+Returns a simple backtrace from the given hex string. One line per address. Includes the symbol name (or hex address if symbol couldn't be resolved) and module name (if found). Includes the offset from the start of the function if found, otherwise the offset will be added to the module (if found, between brackets). Returns the backtrace as string (each line terminated by a newline character). Note that the returned stack will be truncated to MAXSTRINGLEN, to print fuller and richer stacks use print_stack.
+<A NAME="lbAF"> </A>
+<H2>NOTE</H2>
+
+<P>
+
+it is recommended to use
+<B>sprint_syms</B>
+instead of this function.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAF">NOTE</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SPRINT_SYM</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SPRINT_SYM</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::sprint_syms - Return stack for kernel addresses from string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ sprint_syms(callers:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>callers</I>
+<DL COMPACT><DT><DD>
+String with list of hexadecimal (kernel) addresses
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Perform a symbolic lookup of the addresses in the given string, which are assumed to be the result of a prior calls to
+<B>stack</B>,
+<B>callers</B>, and similar functions.
+<P>
+
+Returns a simple backtrace from the given hex string. One line per address. Includes the symbol name (or hex address if symbol couldn't be resolved) and module name (if found), as obtained from
+<B>symdata</B>. Includes the offset from the start of the function if found, otherwise the offset will be added to the module (if found, between brackets). Returns the backtrace as string (each line terminated by a newline character). Note that the returned stack will be truncated to MAXSTRINGLEN, to print fuller and richer stacks use
+<B>print_syms</B>.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SPRINT_UBA</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SPRINT_UBA</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::sprint_ubacktrace - Return stack back trace for current user-space task as string.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ sprint_ubacktrace:string()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+<P>
+
+Returns a simple backtrace for the current task. One line per address. Includes the symbol name (or hex address if symbol couldn't be resolved) and module name (if found). Includes the offset from the start of the function if found, otherwise the offset will be added to the module (if found, between brackets). Returns the backtrace as string (each line terminated by a newline character). Note that the returned stack will be truncated to MAXSTRINGLEN, to print fuller and richer stacks use
+<B>print_ubacktrace</B>. Equivalent to sprint_ustack(<B>ubacktrace</B>), but more efficient (no need to translate between hex strings and final backtrace string).
+<A NAME="lbAF"> </A>
+<H2>NOTE</H2>
+
+<P>
+
+To get (full) backtraces for user space applications and shared shared libraries not mentioned in the current script run stap with -d /path/to/exe-or-so and/or add --ldd to load all needed unwind data.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAF">NOTE</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SPRINT_UST</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SPRINT_UST</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::sprint_ustack - Return stack for the current task from string.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ sprint_ustack:string(stk:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>stk</I>
+<DL COMPACT><DT><DD>
+String with list of hexadecimal addresses for the current task.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Perform a symbolic lookup of the addresses in the given string, which is assumed to be the result of a prior call to
+<B>ubacktrace</B>
+for the current task.
+<P>
+
+Returns a simple backtrace from the given hex string. One line per address. Includes the symbol name (or hex address if symbol couldn't be resolved) and module name (if found). Includes the offset from the start of the function if found, otherwise the offset will be added to the module (if found, between brackets). Returns the backtrace as string (each line terminated by a newline character). Note that the returned stack will be truncated to MAXSTRINGLEN, to print fuller and richer stacks use print_ustack.
+<A NAME="lbAF"> </A>
+<H2>NOTE</H2>
+
+<P>
+
+it is recommended to use
+<B>sprint_usyms</B>
+instead of this function.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAF">NOTE</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SPRINT_USY</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SPRINT_USY</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::sprint_usyms - Return stack for user addresses from string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ sprint_usyms(callers:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>callers</I>
+<DL COMPACT><DT><DD>
+String with list of hexadecimal (user) addresses
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Perform a symbolic lookup of the addresses in the given string, which are assumed to be the result of a prior calls to
+<B>ustack</B>,
+<B>ucallers</B>, and similar functions.
+<P>
+
+Returns a simple backtrace from the given hex string. One line per address. Includes the symbol name (or hex address if symbol couldn't be resolved) and module name (if found), as obtained from
+<B>usymdata</B>. Includes the offset from the start of the function if found, otherwise the offset will be added to the module (if found, between brackets). Returns the backtrace as string (each line terminated by a newline character). Note that the returned stack will be truncated to MAXSTRINGLEN, to print fuller and richer stacks use
+<B>print_usyms</B>.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::STACK</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::STACK</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::stack - Return address at given depth of kernel stack backtrace
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ stack:long(n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+number of levels to descend in the stack.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Performs a simple (kernel) backtrace, and returns the element at the specified position. The results of the backtrace itself are cached, so that the backtrace computation is performed at most once no matter how many times
+<B>stack</B>
+is called, or in what order.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::STACK_SIZE</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::STACK_SIZE</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::stack_size - Return the size of the kernel stack
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ stack_size:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the size of the kernel stack.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::STACK_UNUS</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::STACK_UNUS</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::stack_unused - Returns the amount of kernel stack currently available
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ stack_unused:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function determines how many bytes are currently available in the kernel stack.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::STACK_USED</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::STACK_USED</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::stack_used - Returns the amount of kernel stack used
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ stack_used:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function determines how many bytes are currently used in the kernel stack.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::START_STOP</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::START_STOP</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::start_stopwatch - Start a stopwatch
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ start_stopwatch(name:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+the stopwatch name
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Start stopwatch
+<I>name</I>. Creates stopwatch
+<I>name</I>
+if it does not currently exist.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::STOP_STOPW</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::STOP_STOPW</H1>
+Section: Timestamp Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::stop_stopwatch - Stop a stopwatch
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ stop_stopwatch(name:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+the stopwatch name
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Stop stopwatch
+<I>name</I>. Creates stopwatch
+<I>name</I>
+if it does not currently exist.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::STP_PID</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::STP_PID</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::stp_pid - The process id of the stapio process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ stp_pid:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the process id of the stapio process that launched this script. There could be other SystemTap scripts and stapio processes running on the system.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::STR_REPLAC</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::STR_REPLAC</H1>
+Section: A collection of standard strin (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::str_replace - str_replace Replaces all instances of a substring with another
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ str_replace:string(prnt_str:string,srch_str:string,rplc_str:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>prnt_str</I>
+<DL COMPACT><DT><DD>
+the string to search and replace in
+</DL>
+
+<P>
+
+<I>srch_str</I>
+<DL COMPACT><DT><DD>
+the substring which is used to search in
+<I>prnt_str</I>
+string
+</DL>
+
+<P>
+
+<I>rplc_str</I>
+<DL COMPACT><DT><DD>
+the substring which is used to replace
+<I>srch_str</I>
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the given string with substrings replaced.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::STRINGAT</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::STRINGAT</H1>
+Section: A collection of standard strin (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::stringat - Returns the char at a given position in the string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ stringat:long(str:string,pos:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>str</I>
+<DL COMPACT><DT><DD>
+the string to fetch the character from
+</DL>
+
+<P>
+
+<I>pos</I>
+<DL COMPACT><DT><DD>
+the position to get the character from (first character is 0)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the character at a given position in the string or zero if the string doesn't have as many characters. Reports an error if pos is out of bounds.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::STRLEN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::STRLEN</H1>
+Section: A collection of standard strin (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::strlen - Returns the length of a string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ strlen:long(s:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>s</I>
+<DL COMPACT><DT><DD>
+the string
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the length of the string, which can be zero up to MAXSTRINGLEN.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::STRTOL</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::STRTOL</H1>
+Section: A collection of standard strin (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::strtol - strtol - Convert a string to a long
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ strtol:long(str:string,base:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>str</I>
+<DL COMPACT><DT><DD>
+string to convert
+</DL>
+
+<P>
+
+<I>base</I>
+<DL COMPACT><DT><DD>
+the base to use
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function converts the string representation of a number to an integer. The
+<I>base</I>
+parameter indicates the number base to assume for the string (eg. 16 for hex, 8 for octal, 2 for binary).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SUBSTR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SUBSTR</H1>
+Section: A collection of standard strin (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::substr - Returns a substring
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ substr:string(str:string,start:long,length:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>str</I>
+<DL COMPACT><DT><DD>
+the string to take a substring from
+</DL>
+
+<P>
+
+<I>start</I>
+<DL COMPACT><DT><DD>
+starting position of the extracted string (first character is 0)
+</DL>
+
+<P>
+
+<I>length</I>
+<DL COMPACT><DT><DD>
+length of string to return
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the substring of the given string at the given start position with the given length (or smaller if the length of the original string is less than start + length, or length is bigger than MAXSTRINGLEN).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SYMDATA</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SYMDATA</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::symdata - Return the kernel symbol and module offset for the address
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ symdata:string(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The address to translate
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the (function) symbol name associated with the given address if known, the offset from the start and size of the symbol, plus module name (between brackets). If symbol is unknown, but module is known, the offset inside the module, plus the size of the module is added. If any element is not known it will be omitted and if the symbol name is unknown it will return the hex string for the given address.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SYMNAME</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SYMNAME</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::symname - Return the kernel symbol associated with the given address
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ symname:string(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The address to translate
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the (function) symbol name associated with the given address if known. If not known it will return the hex string representation of addr.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::SYSTEM</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::SYSTEM</H1>
+Section: Shell command functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::system - Issue a command to the system
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ system(cmd:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>cmd</I>
+<DL COMPACT><DT><DD>
+the command to issue to the system
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function runs a command on the system. The command is started in the background some time after the current probe completes. The command is run with the same UID as the user running the stap or staprun command.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TARGET</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TARGET</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::target - Return the process ID of the target process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ target:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the process ID of the target process. This is useful in conjunction with the -x PID or -c CMD command-line options to stap. An example of its use is to create scripts that filter on a specific process.
+<P>
+
+-x <pid>
+<B>target</B>
+returns the pid specified by -x
+<P>
+
+-c <command>
+<B>target</B>
+returns the pid for the executed command specified by -c
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TARGET_SET</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TARGET_SET</H1>
+Section: Kernel Process Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::target_set_pid - Does pid descend from target process?
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ target_set_pid(pid:)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>pid</I>
+<DL COMPACT><DT><DD>
+The pid of the process to query
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns whether the given process-id is within the
+"target set", that is whether it is a descendant of the top-level
+<B>target</B>
+process.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TARGET_SET</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TARGET_SET</H1>
+Section: Kernel Process Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::target_set_report - Print a report about the target set
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ target_set_report()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function prints a report about the processes in the target set, and their ancestry.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_ANCES</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_ANCES</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_ancestry - The ancestry of the given task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_ancestry:string(task:long,with_time:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+task_struct pointer
+</DL>
+
+<P>
+
+<I>with_time</I>
+<DL COMPACT><DT><DD>
+set to 1 to also print the start time of processes (given as a delta from boot time)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Return the ancestry of the given task in the form of
+"grandparent_process=>parent_process=>process".
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_BACKT</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_BACKT</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_backtrace - Hex backtrace of an arbitrary task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_backtrace:string(task:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+pointer to task_struct
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns a string of hex addresses that are a backtrace of the stack of a particular task Output may be truncated as per maximum string length. Deprecated in SystemTap 1.6.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_CPU</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_CPU</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_cpu - The scheduled cpu of the task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_cpu:long(task:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+task_struct pointer
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the scheduled cpu for the given task.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_CURRE</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_CURRE</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_current - The current task_struct of the current task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_current:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the task_struct representing the current process. This address can be passed to the various task_*() functions to extract more task-specific data.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_DENTR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_DENTR</H1>
+Section: Directory-entry (dentry) Tapse (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_dentry_path - get the full dentry path
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_dentry_path:string(task:long,dentry:long,vfsmnt:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+task_struct pointer.
+</DL>
+
+<P>
+
+<I>dentry</I>
+<DL COMPACT><DT><DD>
+direntry pointer.
+</DL>
+
+<P>
+
+<I>vfsmnt</I>
+<DL COMPACT><DT><DD>
+vfsmnt pointer.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+<P>
+
+Returns the full dirent name (full path to the root), like the kernel d_path function.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_EGID</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_EGID</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_egid - The effective group identifier of the task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_egid:long(task:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+task_struct pointer
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the effective group id of the given task.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_EUID</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_EUID</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_euid - The effective user identifier of the task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_euid:long(task:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+task_struct pointer
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the effective user id of the given task.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_EXECN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_EXECN</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_execname - The name of the task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_execname:string(task:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+task_struct pointer
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Return the name of the given task.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_GID</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_GID</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_gid - The group identifier of the task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_gid:long(task:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+task_struct pointer
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the group id of the given task.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_MAX_F</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_MAX_F</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_max_file_handles - The max number of open files for the task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_max_file_handles:long(task:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+task_struct pointer
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the maximum number of file handlers for the given task.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_NICE</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_NICE</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_nice - The nice value of the task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_nice:long(task:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+task_struct pointer
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the nice value of the given task.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_OPEN_</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_OPEN_</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_open_file_handles - The number of open files of the task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_open_file_handles:long(task:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+task_struct pointer
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the number of open file handlers for the given task.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_PAREN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_PAREN</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_parent - The task_struct of the parent task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_parent:long(task:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+task_struct pointer
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the parent task_struct of the given task. This address can be passed to the various task_*() functions to extract more task-specific data.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_PID</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_PID</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_pid - The process identifier of the task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_pid:long(task:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+task_struct pointer
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This fucntion returns the process id of the given task.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_PRIO</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_PRIO</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_prio - The priority value of the task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_prio:long(task:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+task_struct pointer
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the priority value of the given task.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_START</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_START</H1>
+Section: Task Time Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_start_time - Start time of the given task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_start_time:long(tid:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>tid</I>
+<DL COMPACT><DT><DD>
+Thread id of the given task
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the start time of the given task in nanoseconds since boot time or 0 if the task does not exist.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_STATE</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_STATE</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_state - The state of the task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_state:long(task:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+task_struct pointer
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Return the state of the given task, one of: TASK_RUNNING (0), TASK_INTERRUPTIBLE (1), TASK_UNINTERRUPTIBLE (2), TASK_STOPPED (4), TASK_TRACED (8), EXIT_ZOMBIE (16), or EXIT_DEAD (32).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_STIME</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_STIME</H1>
+Section: Task Time Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_stime - System time of the current task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_stime:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the system time of the current task in cputime. Does not include any time used by other tasks in this process, nor does it include any time of the children of this task.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_STIME</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_STIME</H1>
+Section: Task Time Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_stime_tid - System time of the given task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_stime_tid:long(tid:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>tid</I>
+<DL COMPACT><DT><DD>
+Thread id of the given task
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the system time of the given task in cputime, or zero if the task doesn't exist. Does not include any time used by other tasks in this process, nor does it include any time of the children of this task.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_TID</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_TID</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_tid - The thread identifier of the task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_tid:long(task:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+task_struct pointer
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the thread id of the given task.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_TIME_</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_TIME_</H1>
+Section: Task Time Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_time_string - Human readable string of task time usage
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_time_string:string()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns a human readable string showing the user and system time the current task has used up to now. For example
+"usr: 0m12.908s, sys: 1m6.851s".
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_TIME_</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_TIME_</H1>
+Section: Task Time Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_time_string_tid - Human readable string of task time usage
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_time_string_tid:string(tid:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>tid</I>
+<DL COMPACT><DT><DD>
+Thread id of the given task
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns a human readable string showing the user and system time the given task has used up to now. For example
+"usr: 0m12.908s, sys: 1m6.851s".
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_UID</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_UID</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_uid - The user identifier of the task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_uid:long(task:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+task_struct pointer
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the user id of the given task.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_UTIME</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_UTIME</H1>
+Section: Task Time Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_utime - User time of the current task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_utime:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the user time of the current task in cputime. Does not include any time used by other tasks in this process, nor does it include any time of the children of this task.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TASK_UTIME</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TASK_UTIME</H1>
+Section: Task Time Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::task_utime_tid - User time of the given task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ task_utime_tid:long(tid:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>tid</I>
+<DL COMPACT><DT><DD>
+Thread id of the given task
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the user time of the given task in cputime, or zero if the task doesn't exist. Does not include any time used by other tasks in this process, nor does it include any time of the children of this task.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TCPMIB_FIL</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TCPMIB_FIL</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::tcpmib_filter_key - Default filter function for tcpmib.* probes
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ tcpmib_filter_key:long(sk:long,op:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>sk</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sock being acted on
+</DL>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be counted if
+<I>sk</I>
+passes the filter
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function is a default filter function. The user can replace this function with their own. The user-supplied filter function returns an index key based on the values in
+<I>sk</I>. A return value of 0 means this particular
+<I>sk</I>
+should be not be counted.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TCPMIB_GET</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TCPMIB_GET</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::tcpmib_get_state - Get a socket's state
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ tcpmib_get_state:long(sk:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>sk</I>
+<DL COMPACT><DT><DD>
+pointer to a struct sock
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the sk_state from a struct sock.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TCPMIB_LOC</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TCPMIB_LOC</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::tcpmib_local_addr - Get the source address
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ tcpmib_local_addr:long(sk:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>sk</I>
+<DL COMPACT><DT><DD>
+pointer to a struct inet_sock
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the saddr from a struct inet_sock in host order.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TCPMIB_LOC</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TCPMIB_LOC</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::tcpmib_local_port - Get the local port
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ tcpmib_local_port:long(sk:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>sk</I>
+<DL COMPACT><DT><DD>
+pointer to a struct inet_sock
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the sport from a struct inet_sock in host order.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TCPMIB_REM</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TCPMIB_REM</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::tcpmib_remote_addr - Get the remote address
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ tcpmib_remote_addr:long(sk:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>sk</I>
+<DL COMPACT><DT><DD>
+pointer to a struct inet_sock
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the daddr from a struct inet_sock in host order.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TCPMIB_REM</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TCPMIB_REM</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::tcpmib_remote_port - Get the remote port
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ tcpmib_remote_port:long(sk:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>sk</I>
+<DL COMPACT><DT><DD>
+pointer to a struct inet_sock
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the dport from a struct inet_sock in host order.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TEXT_STR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TEXT_STR</H1>
+Section: A collection of standard strin (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::text_str - Escape any non-printable chars in a string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ text_str:string(input:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>input</I>
+<DL COMPACT><DT><DD>
+the string to escape
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function accepts a string argument, and any ASCII characters that are not printable are replaced by the corresponding escape sequence in the returned string.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TEXT_STRN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TEXT_STRN</H1>
+Section: A collection of standard strin (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::text_strn - Escape any non-printable chars in a string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ text_strn:string(input:string,len:long,quoted:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>input</I>
+<DL COMPACT><DT><DD>
+the string to escape
+</DL>
+
+<P>
+
+<I>len</I>
+<DL COMPACT><DT><DD>
+maximum length of string to return (0 implies MAXSTRINGLEN)
+</DL>
+
+<P>
+
+<I>quoted</I>
+<DL COMPACT><DT><DD>
+put double quotes around the string. If input string is truncated it will have
+"..."
+after the second quote
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function accepts a string of designated length, and any ASCII characters that are not printable are replaced by the corresponding escape sequence in the returned string.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::THREAD_IND</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::THREAD_IND</H1>
+Section: Utility functions for using an (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::thread_indent - returns an amount of space with the current task information
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ thread_indent:string(delta:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>delta</I>
+<DL COMPACT><DT><DD>
+the amount of space added/removed for each call
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns a string with appropriate indentation for a thread. Call it with a small positive or matching negative delta. If this is the real outermost, initial level of indentation, then the function resets the relative timestamp base to zero. The timestamp is as per provided by the __indent_timestamp function, which by default measures microseconds.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::THREAD_IND</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::THREAD_IND</H1>
+Section: Utility functions for using an (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::thread_indent_depth - returns the nested-depth of the current task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ thread_indent_depth:long(delta:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>delta</I>
+<DL COMPACT><DT><DD>
+the amount of depth added/removed for each call
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns an integer equal to the nested function-call depth starting from the outermost initial level. This function is useful for saving space (consumed by whitespace) in traces with long nested function calls. Use this function in a similar fashion to
+<B>thread_indent</B>, i.e., in call-probe, use <A HREF="thread_indent_depth.1.html">thread_indent_depth</A>(1) and in return-probe, use thread_indent_depth(-1)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TID</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TID</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::tid - Returns the thread ID of a target process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ tid:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the thread ID of the target process.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TOKENIZE</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TOKENIZE</H1>
+Section: A collection of standard strin (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::tokenize - Return the next non-empty token in a string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ tokenize:string(input:string,delim:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>input</I>
+<DL COMPACT><DT><DD>
+string to tokenize. If empty, returns the next non-empty token in the string passed in the previous call to
+<B>tokenize</B>.
+</DL>
+
+<P>
+
+<I>delim</I>
+<DL COMPACT><DT><DD>
+set of characters that delimit the tokens
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the next non-empty token in the given input string, where the tokens are delimited by characters in the delim string. If the input string is non-empty, it returns the first token. If the input string is empty, it returns the next token in the string passed in the previous call to tokenize. If no delimiter is found, the entire remaining input string is returned. It returns empty when no more tokens are available.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TZ_CTIME</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TZ_CTIME</H1>
+Section: Time utility functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::tz_ctime - Convert seconds since epoch into human readable date/time string, with local time zone
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ tz_ctime(epochsecs:)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>epochsecs</I>
+<DL COMPACT><DT><DD>
+number of seconds since epoch (as returned by
+<B>gettimeofday_s</B>)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Takes an argument of seconds since the epoch as returned by
+<B>gettimeofday_s</B>. Returns a string of the same form as
+<B>ctime</B>, but offsets the epoch time for the local time zone, and appends the name of the local time zone. The string length may vary. The time zone information is passed by staprun at script startup only.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TZ_GMTOFF</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TZ_GMTOFF</H1>
+Section: Time utility functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::tz_gmtoff - Return local time zone offset
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ tz_gmtoff()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the local time zone offset (seconds west of UTC), as passed by staprun at script startup only.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::TZ_NAME</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::TZ_NAME</H1>
+Section: Time utility functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::tz_name - Return local time zone name
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ tz_name()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the local time zone name, as passed by staprun at script startup only.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::U32_ARG</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::U32_ARG</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::u32_arg - Return function argument as unsigned 32-bit value
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ u32_arg:long(n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+index of argument to return
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Return the unsigned 32-bit value of argument n, same as uint_arg.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::U64_ARG</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::U64_ARG</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::u64_arg - Return function argument as unsigned 64-bit value
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ u64_arg:long(n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+index of argument to return
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Return the unsigned 64-bit value of argument n, same as ulonglong_arg.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::U_REGISTER</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::U_REGISTER</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::u_register - Return the unsigned value of the named CPU register
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ u_register:long(name:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the register to return
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Same as register(name), except that if the register is 32 bits wide, it is zero-extended to 64 bits.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::UADDR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::UADDR</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::uaddr - User space address of current running task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ uaddr:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the address in userspace that the current task was at when the probe occurred. When the current running task isn't a user space thread, or the address cannot be found, zero is returned. Can be used to see where the current task is combined with
+<B>usymname</B>
+or
+<B>usymdata</B>. Often the task will be in the VDSO where it entered the kernel.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::UBACKTRACE</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::UBACKTRACE</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ubacktrace - Hex backtrace of current user-space task stack.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ubacktrace:string()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+<P>
+
+Return a string of hex addresses that are a backtrace of the stack of the current task. Output may be truncated as per maximum string length. Returns empty string when current probe point cannot determine user backtrace. See
+<B>backtrace</B>
+for kernel traceback.
+<A NAME="lbAF"> </A>
+<H2>NOTE</H2>
+
+<P>
+
+To get (full) backtraces for user space applications and shared shared libraries not mentioned in the current script run stap with -d /path/to/exe-or-so and/or add --ldd to load all needed unwind data.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAF">NOTE</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::UCALLERS</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::UCALLERS</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ucallers - Return first n elements of user stack backtrace
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ucallers:string(n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+number of levels to descend in the stack (not counting the top level). If n is -1, print the entire stack.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns a string of the first n hex addresses from the backtrace of the user stack. Output may be truncated as per maximum string length (MAXSTRINGLEN).
+<A NAME="lbAF"> </A>
+<H2>NOTE</H2>
+
+<P>
+
+To get (full) backtraces for user space applications and shared shared libraries not mentioned in the current script run stap with -d /path/to/exe-or-so and/or add --ldd to load all needed unwind data.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAF">NOTE</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::UDELAY</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::UDELAY</H1>
+Section: Guru tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::udelay - microsecond delay
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ udelay(us:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>us</I>
+<DL COMPACT><DT><DD>
+Number of microseconds to delay.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function inserts a multi-microsecond busy-delay into a probe handler. It requires guru mode.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::UID</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::UID</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::uid - Returns the user ID of a target process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ uid:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns the user ID of the target process.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::UINT_ARG</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::UINT_ARG</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::uint_arg - Return function argument as unsigned int
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ uint_arg:long(n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+index of argument to return
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Return the value of argument n as an unsigned int (i.e., a 32-bit integer zero-extended to 64 bits).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ULONG_ARG</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ULONG_ARG</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ulong_arg - Return function argument as unsigned long
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ulong_arg:long(n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+index of argument to return
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Return the value of argument n as an unsigned long. On architectures where a long is 32 bits, the value is zero-extended to 64 bits.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::ULONGLONG_</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::ULONGLONG_</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ulonglong_arg - Return function argument as 64-bit value
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ulonglong_arg:long(n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+index of argument to return
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Return the value of argument n as a 64-bit value. (Same as longlong_arg.)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::UMODNAME</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::UMODNAME</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::umodname - Returns the (short) name of the user module.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ umodname:string(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+User-space address
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the short name of the user space module for the current task that that the given address is part of. Reports an error when the address isn't in a (mapped in) module, or the module cannot be found for some reason.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USECS_TO_S</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USECS_TO_S</H1>
+Section: Task Time Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::usecs_to_string - Human readable string for given microseconds
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ usecs_to_string:string(usecs:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>usecs</I>
+<DL COMPACT><DT><DD>
+Number of microseconds to translate.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns a string representing the number of microseconds as a human readable string consisting of
+"XmY.ZZZZZZs", where X is the number of minutes, Y is the number of seconds and ZZZZZZ is the number of microseconds.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_CHAR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_CHAR</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_char - Retrieves a char value stored in user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_char:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the char from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the char value from a given user space address. Returns zero when user space data is not accessible.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_CHAR_</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_CHAR_</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_char_warn - Retrieves a char value stored in user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_char_warn:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the char from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the char value from a given user space address. Returns zero when user space and warns (but does not abort) about the failure.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_INT</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_INT</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_int - Retrieves an int value stored in user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_int:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the int from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the int value from a given user space address. Returns zero when user space data is not accessible.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_INT16</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_INT16</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_int16 - Retrieves a 16-bit integer value stored in user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_int16:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the 16-bit integer from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the 16-bit integer value from a given user space address. Returns zero when user space data is not accessible.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_INT32</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_INT32</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_int32 - Retrieves a 32-bit integer value stored in user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_int32:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the 32-bit integer from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the 32-bit integer value from a given user space address. Returns zero when user space data is not accessible.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_INT64</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_INT64</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_int64 - Retrieves a 64-bit integer value stored in user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_int64:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the 64-bit integer from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the 64-bit integer value from a given user space address. Returns zero when user space data is not accessible.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_INT8</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_INT8</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_int8 - Retrieves a 8-bit integer value stored in user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_int8:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the 8-bit integer from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the 8-bit integer value from a given user space address. Returns zero when user space data is not accessible.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_INT_W</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_INT_W</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_int_warn - Retrieves an int value stored in user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_int_warn:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the int from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the int value from a given user space address. Returns zero when user space and warns (but does not abort) about the failure.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_LONG</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_LONG</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_long - Retrieves a long value stored in user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_long:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the long from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the long value from a given user space address. Returns zero when user space data is not accessible. Note that the size of the long depends on the architecture of the current user space task (for those architectures that support both 64/32 bit compat tasks).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_LONG_</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_LONG_</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_long_warn - Retrieves a long value stored in user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_long_warn:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the long from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the long value from a given user space address. Returns zero when user space and warns (but does not abort) about the failure. Note that the size of the long depends on the architecture of the current user space task (for those architectures that support both 64/32 bit compat tasks).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_MODE</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_MODE</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_mode - Determines if probe point occurs in user-mode
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_mode:long()
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+<P>
+
+Return 1 if the probe point occurred in user-mode.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_SHORT</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_SHORT</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_short - Retrieves a short value stored in user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_short:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the short from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the short value from a given user space address. Returns zero when user space data is not accessible.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_SHORT</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_SHORT</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_short_warn - Retrieves a short value stored in user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_short_warn:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the short from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the short value from a given user space address. Returns zero when user space and warns (but does not abort) about the failure.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_STRIN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_STRIN</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_string - Retrieves string from user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_string:string(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the string from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the null terminated C string from a given user space memory address. Reports an error on the rare cases when userspace data is not accessible.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_STRIN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_STRIN</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_string2 - Retrieves string from user space with alternative error string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_string2:string(addr:long,err_msg:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the string from
+</DL>
+
+<P>
+
+<I>err_msg</I>
+<DL COMPACT><DT><DD>
+the error message to return when data isn't available
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the null terminated C string from a given user space memory address. Reports the given error message on the rare cases when userspace data is not accessible.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_STRIN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_STRIN</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_string2_n_warn - Retrieves string from user space with alternative warning string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_string2_n_warn:string(addr:long,n:long,warn_msg:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the string from
+</DL>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+the maximum length of the string (if not null terminated)
+</DL>
+
+<P>
+
+<I>warn_msg</I>
+<DL COMPACT><DT><DD>
+the warning message to return when data isn't available
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns up to n characters of a C string from a given user space memory address. Reports the given warning message on the rare cases when userspace data is not accessible and warns (but does not abort) about the failure.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_STRIN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_STRIN</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_string2_utf16 - Retrieves UTF-16 string from user memory with alternative error string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_string2_utf16:string(addr:long,err_msg:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The user address to retrieve the string from
+</DL>
+
+<P>
+
+<I>err_msg</I>
+<DL COMPACT><DT><DD>
+The error message to return when data isn't available
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns a null terminated UTF-8 string converted from the UTF-16 string at a given user memory address. Reports the given error message on string copy fault or conversion error.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_STRIN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_STRIN</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_string2_utf32 - Retrieves UTF-32 string from user memory with alternative error string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_string2_utf32:string(addr:long,err_msg:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The user address to retrieve the string from
+</DL>
+
+<P>
+
+<I>err_msg</I>
+<DL COMPACT><DT><DD>
+The error message to return when data isn't available
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns a null terminated UTF-8 string converted from the UTF-32 string at a given user memory address. Reports the given error message on string copy fault or conversion error.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_STRIN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_STRIN</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_string2_warn - Retrieves string from user space with alternative warning string
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_string2_warn:string(addr:long,warn_msg:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the string from
+</DL>
+
+<P>
+
+<I>warn_msg</I>
+<DL COMPACT><DT><DD>
+the warning message to return when data isn't available
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the null terminated C string from a given user space memory address. Reports the given warning message on the rare cases when userspace data is not accessible and warns (but does not abort) about the failure.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_STRIN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_STRIN</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_string_n - Retrieves string of given length from user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_string_n:string(addr:long,n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the string from
+</DL>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+the maximum length of the string (if not null terminated)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the C string of a maximum given length from a given user space address. Reports an error on the rare cases when userspace data is not accessible at the given address.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_STRIN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_STRIN</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_string_n2 - Retrieves string of given length from user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_string_n2:string(addr:long,n:long,err_msg:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the string from
+</DL>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+the maximum length of the string (if not null terminated)
+</DL>
+
+<P>
+
+<I>err_msg</I>
+<DL COMPACT><DT><DD>
+the error message to return when data isn't available
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the C string of a maximum given length from a given user space address. Returns the given error message string on the rare cases when userspace data is not accessible at the given address.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_STRIN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_STRIN</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_string_n2_quoted - Retrieves and quotes string from user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_string_n2_quoted:string(addr:long,inlen:long,outlen:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the string from
+</DL>
+
+<P>
+
+<I>inlen</I>
+<DL COMPACT><DT><DD>
+the maximum length of the string to read (if not null terminated)
+</DL>
+
+<P>
+
+<I>outlen</I>
+<DL COMPACT><DT><DD>
+the maximum length of the output string
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Reads up to inlen characters of a C string from the given user space memory address, and returns up to outlen characters, where any ASCII characters that are not printable are replaced by the corresponding escape sequence in the returned string. Note that the string will be surrounded by double quotes. On the rare cases when userspace data is not accessible at the given address, the address itself is returned as a string, without double quotes.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_STRIN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_STRIN</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_string_n_quoted - Retrieves and quotes string from user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_string_n_quoted:string(addr:long,n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the string from
+</DL>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+the maximum length of the string (if not null terminated)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns up to n characters of a C string from the given user space memory address where any ASCII characters that are not printable are replaced by the corresponding escape sequence in the returned string. Note that the string will be surrounded by double quotes. On the rare cases when userspace data is not accessible at the given address, the address itself is returned as a string, without double quotes.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_STRIN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_STRIN</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_string_n_warn - Retrieves string from user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_string_n_warn:string(addr:long,n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the string from
+</DL>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+the maximum length of the string (if not null terminated)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns up to n characters of a C string from a given user space memory address. Reports
+"<unknown>"
+on the rare cases when userspace data is not accessible and warns (but does not abort) about the failure.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_STRIN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_STRIN</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_string_quoted - Retrieves and quotes string from user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_string_quoted:string(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the string from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the null terminated C string from a given user space memory address where any ASCII characters that are not printable are replaced by the corresponding escape sequence in the returned string. Note that the string will be surrounded by double quotes. On the rare cases when userspace data is not accessible at the given address, the address itself is returned as a string, without double quotes.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_STRIN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_STRIN</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_string_utf16 - Retrieves UTF-16 string from user memory
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_string_utf16:string(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The user address to retrieve the string from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns a null terminated UTF-8 string converted from the UTF-16 string at a given user memory address. Reports an error on string copy fault or conversion error.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_STRIN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_STRIN</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_string_utf32 - Retrieves UTF-32 string from user memory
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_string_utf32:string(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The user address to retrieve the string from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function returns a null terminated UTF-8 string converted from the UTF-32 string at a given user memory address. Reports an error on string copy fault or conversion error.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_STRIN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_STRIN</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_string_warn - Retrieves string from user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_string_warn:string(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the string from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the null terminated C string from a given user space memory address. Reports "" on the rare cases when userspace data is not accessible and warns (but does not abort) about the failure.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_UINT1</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_UINT1</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_uint16 - Retrieves an unsigned 16-bit integer value stored in user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_uint16:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the unsigned 16-bit integer from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the unsigned 16-bit integer value from a given user space address. Returns zero when user space data is not accessible.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_UINT3</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_UINT3</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_uint32 - Retrieves an unsigned 32-bit integer value stored in user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_uint32:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the unsigned 32-bit integer from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the unsigned 32-bit integer value from a given user space address. Returns zero when user space data is not accessible.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_UINT6</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_UINT6</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_uint64 - Retrieves an unsigned 64-bit integer value stored in user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_uint64:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the unsigned 64-bit integer from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the unsigned 64-bit integer value from a given user space address. Returns zero when user space data is not accessible.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_UINT8</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_UINT8</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_uint8 - Retrieves an unsigned 8-bit integer value stored in user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_uint8:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the unsigned 8-bit integer from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the unsigned 8-bit integer value from a given user space address. Returns zero when user space data is not accessible.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_ULONG</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_ULONG</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_ulong - Retrieves an unsigned long value stored in user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_ulong:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the unsigned long from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the unsigned long value from a given user space address. Returns zero when user space data is not accessible. Note that the size of the unsigned long depends on the architecture of the current user space task (for those architectures that support both 64/32 bit compat tasks).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_ULONG</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_ULONG</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_ulong_warn - Retrieves an unsigned long value stored in user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_ulong_warn:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the unsigned long from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the unsigned long value from a given user space address. Returns zero when user space and warns (but does not abort) about the failure. Note that the size of the unsigned long depends on the architecture of the current user space task (for those architectures that support both 64/32 bit compat tasks).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_USHOR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_USHOR</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_ushort - Retrieves an unsigned short value stored in user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_ushort:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the unsigned short from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the unsigned short value from a given user space address. Returns zero when user space data is not accessible.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USER_USHOR</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USER_USHOR</H1>
+Section: String and data retrieving fun (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::user_ushort_warn - Retrieves an unsigned short value stored in user space
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ user_ushort_warn:long(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+the user space address to retrieve the unsigned short from
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the unsigned short value from a given user space address. Returns zero when user space and warns (but does not abort) about the failure.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USRDEV2KER</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USRDEV2KER</H1>
+Section: Device Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::usrdev2kerndev - Converts a user-space device number into the format used in the kernel
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ usrdev2kerndev:long(dev:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+Device number in user-space format.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USTACK</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USTACK</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::ustack - Return address at given depth of user stack backtrace
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ ustack:long(n:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>n</I>
+<DL COMPACT><DT><DD>
+number of levels to descend in the stack.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Performs a simple (user space) backtrace, and returns the element at the specified position. The results of the backtrace itself are cached, so that the backtrace computation is performed at most once no matter how many times
+<B>ustack</B>
+is called, or in what order.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USYMDATA</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USYMDATA</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::usymdata - Return the symbol and module offset of an address.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ usymdata:string(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The address to translate.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the (function) symbol name associated with the given address in the current task if known, the offset from the start and the size of the symbol, plus the module name (between brackets). If symbol is unknown, but module is known, the offset inside the module, plus the size of the module is added. If any element is not known it will be omitted and if the symbol name is unknown it will return the hex string for the given address.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::USYMNAME</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::USYMNAME</H1>
+Section: Context Functions (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::usymname - Return the symbol of an address in the current task.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ usymname:string(addr:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>addr</I>
+<DL COMPACT><DT><DD>
+The address to translate.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Returns the (function) symbol name associated with the given address if known. If not known it will return the hex string representation of addr.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::VM_FAULT_C</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::VM_FAULT_C</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::vm_fault_contains - Test return value for page fault reason
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ vm_fault_contains:long(value:long,test:long)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>value</I>
+<DL COMPACT><DT><DD>
+the fault_type returned by vm.page_fault.return
+</DL>
+
+<P>
+
+<I>test</I>
+<DL COMPACT><DT><DD>
+the type of fault to test for (VM_FAULT_OOM or similar)
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of FUNCTION::WARN</TITLE>
+</HEAD><BODY>
+<H1>FUNCTION::WARN</H1>
+Section: Logging Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+function::warn - Send a line to the warning stream
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ warn(msg:string)
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+
+<I>msg</I>
+<DL COMPACT><DT><DD>
+The formatted message string
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This function sends a warning message immediately to staprun. It is also sent over the bulk transport (relayfs) if it is being used. If the last characater is not a newline, the one is added.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+<html><head><title>systemtap man page index</title></head><body><ul>
+<li><a href="./dtrace.1.html">dtrace.1</a></li>
+<li><a href="./stap.1.html">stap.1</a></li>
+<li><a href="./stap-merge.1.html">stap-merge.1</a></li>
+<li><a href="./stap-prep.1.html">stap-prep.1</a></li>
+<li><a href="./stap-report.1.html">stap-report.1</a></li>
+<li><a href="./stapvirt.1.html">stapvirt.1</a></li>
+<li><a href="./function::addr.3stap.html">function::addr.3stap</a></li>
+<li><a href="./function::addr_to_node.3stap.html">function::addr_to_node.3stap</a></li>
+<li><a href="./function::ansi_clear_screen.3stap.html">function::ansi_clear_screen.3stap</a></li>
+<li><a href="./function::ansi_cursor_hide.3stap.html">function::ansi_cursor_hide.3stap</a></li>
+<li><a href="./function::ansi_cursor_move.3stap.html">function::ansi_cursor_move.3stap</a></li>
+<li><a href="./function::ansi_cursor_restore.3stap.html">function::ansi_cursor_restore.3stap</a></li>
+<li><a href="./function::ansi_cursor_save.3stap.html">function::ansi_cursor_save.3stap</a></li>
+<li><a href="./function::ansi_cursor_show.3stap.html">function::ansi_cursor_show.3stap</a></li>
+<li><a href="./function::ansi_new_line.3stap.html">function::ansi_new_line.3stap</a></li>
+<li><a href="./function::ansi_reset_color.3stap.html">function::ansi_reset_color.3stap</a></li>
+<li><a href="./function::ansi_set_color2.3stap.html">function::ansi_set_color2.3stap</a></li>
+<li><a href="./function::ansi_set_color3.3stap.html">function::ansi_set_color3.3stap</a></li>
+<li><a href="./function::ansi_set_color.3stap.html">function::ansi_set_color.3stap</a></li>
+<li><a href="./function::asmlinkage.3stap.html">function::asmlinkage.3stap</a></li>
+<li><a href="./function::atomic_long_read.3stap.html">function::atomic_long_read.3stap</a></li>
+<li><a href="./function::atomic_read.3stap.html">function::atomic_read.3stap</a></li>
+<li><a href="./function::backtrace.3stap.html">function::backtrace.3stap</a></li>
+<li><a href="./function::bytes_to_string.3stap.html">function::bytes_to_string.3stap</a></li>
+<li><a href="./function::caller.3stap.html">function::caller.3stap</a></li>
+<li><a href="./function::caller_addr.3stap.html">function::caller_addr.3stap</a></li>
+<li><a href="./function::callers.3stap.html">function::callers.3stap</a></li>
+<li><a href="./function::cmdline_arg.3stap.html">function::cmdline_arg.3stap</a></li>
+<li><a href="./function::cmdline_args.3stap.html">function::cmdline_args.3stap</a></li>
+<li><a href="./function::cmdline_str.3stap.html">function::cmdline_str.3stap</a></li>
+<li><a href="./function::commit.3stap.html">function::commit.3stap</a></li>
+<li><a href="./function::cpu.3stap.html">function::cpu.3stap</a></li>
+<li><a href="./function::cpu_clock_ms.3stap.html">function::cpu_clock_ms.3stap</a></li>
+<li><a href="./function::cpu_clock_ns.3stap.html">function::cpu_clock_ns.3stap</a></li>
+<li><a href="./function::cpu_clock_s.3stap.html">function::cpu_clock_s.3stap</a></li>
+<li><a href="./function::cpu_clock_us.3stap.html">function::cpu_clock_us.3stap</a></li>
+<li><a href="./function::cpuid.3stap.html">function::cpuid.3stap</a></li>
+<li><a href="./function::cputime_to_msecs.3stap.html">function::cputime_to_msecs.3stap</a></li>
+<li><a href="./function::cputime_to_string.3stap.html">function::cputime_to_string.3stap</a></li>
+<li><a href="./function::cputime_to_usecs.3stap.html">function::cputime_to_usecs.3stap</a></li>
+<li><a href="./function::ctime.3stap.html">function::ctime.3stap</a></li>
+<li><a href="./function::delete_stopwatch.3stap.html">function::delete_stopwatch.3stap</a></li>
+<li><a href="./function::discard.3stap.html">function::discard.3stap</a></li>
+<li><a href="./function::d_name.3stap.html">function::d_name.3stap</a></li>
+<li><a href="./function::d_path.3stap.html">function::d_path.3stap</a></li>
+<li><a href="./function::egid.3stap.html">function::egid.3stap</a></li>
+<li><a href="./function::env_var.3stap.html">function::env_var.3stap</a></li>
+<li><a href="./function::errno_str.3stap.html">function::errno_str.3stap</a></li>
+<li><a href="./function::error.3stap.html">function::error.3stap</a></li>
+<li><a href="./function::euid.3stap.html">function::euid.3stap</a></li>
+<li><a href="./function::execname.3stap.html">function::execname.3stap</a></li>
+<li><a href="./function::exit.3stap.html">function::exit.3stap</a></li>
+<li><a href="./function::fastcall.3stap.html">function::fastcall.3stap</a></li>
+<li><a href="./function::format_ipaddr.3stap.html">function::format_ipaddr.3stap</a></li>
+<li><a href="./function::ftrace.3stap.html">function::ftrace.3stap</a></li>
+<li><a href="./function::get_cycles.3stap.html">function::get_cycles.3stap</a></li>
+<li><a href="./function::get_loadavg_index.3stap.html">function::get_loadavg_index.3stap</a></li>
+<li><a href="./function::get_sa_flags.3stap.html">function::get_sa_flags.3stap</a></li>
+<li><a href="./function::get_sa_handler.3stap.html">function::get_sa_handler.3stap</a></li>
+<li><a href="./function::gettimeofday_ms.3stap.html">function::gettimeofday_ms.3stap</a></li>
+<li><a href="./function::gettimeofday_ns.3stap.html">function::gettimeofday_ns.3stap</a></li>
+<li><a href="./function::gettimeofday_s.3stap.html">function::gettimeofday_s.3stap</a></li>
+<li><a href="./function::gettimeofday_us.3stap.html">function::gettimeofday_us.3stap</a></li>
+<li><a href="./function::gid.3stap.html">function::gid.3stap</a></li>
+<li><a href="./function::htonl.3stap.html">function::htonl.3stap</a></li>
+<li><a href="./function::htonll.3stap.html">function::htonll.3stap</a></li>
+<li><a href="./function::htons.3stap.html">function::htons.3stap</a></li>
+<li><a href="./function::HZ.3stap.html">function::HZ.3stap</a></li>
+<li><a href="./function::indent.3stap.html">function::indent.3stap</a></li>
+<li><a href="./function::indent_depth.3stap.html">function::indent_depth.3stap</a></li>
+<li><a href="./function::inet_get_ip_source.3stap.html">function::inet_get_ip_source.3stap</a></li>
+<li><a href="./function::inet_get_local_port.3stap.html">function::inet_get_local_port.3stap</a></li>
+<li><a href="./function::inode_name.3stap.html">function::inode_name.3stap</a></li>
+<li><a href="./function::inode_path.3stap.html">function::inode_path.3stap</a></li>
+<li><a href="./function::int_arg.3stap.html">function::int_arg.3stap</a></li>
+<li><a href="./function::ipmib_filter_key.3stap.html">function::ipmib_filter_key.3stap</a></li>
+<li><a href="./function::ipmib_get_proto.3stap.html">function::ipmib_get_proto.3stap</a></li>
+<li><a href="./function::ipmib_local_addr.3stap.html">function::ipmib_local_addr.3stap</a></li>
+<li><a href="./function::ipmib_remote_addr.3stap.html">function::ipmib_remote_addr.3stap</a></li>
+<li><a href="./function::ipmib_tcp_local_port.3stap.html">function::ipmib_tcp_local_port.3stap</a></li>
+<li><a href="./function::ipmib_tcp_remote_port.3stap.html">function::ipmib_tcp_remote_port.3stap</a></li>
+<li><a href="./function::ip_ntop.3stap.html">function::ip_ntop.3stap</a></li>
+<li><a href="./function::isdigit.3stap.html">function::isdigit.3stap</a></li>
+<li><a href="./function::isinstr.3stap.html">function::isinstr.3stap</a></li>
+<li><a href="./function::is_myproc.3stap.html">function::is_myproc.3stap</a></li>
+<li><a href="./function::is_return.3stap.html">function::is_return.3stap</a></li>
+<li><a href="./function::is_sig_blocked.3stap.html">function::is_sig_blocked.3stap</a></li>
+<li><a href="./function::jiffies.3stap.html">function::jiffies.3stap</a></li>
+<li><a href="./function::kernel_char.3stap.html">function::kernel_char.3stap</a></li>
+<li><a href="./function::kernel_int.3stap.html">function::kernel_int.3stap</a></li>
+<li><a href="./function::kernel_long.3stap.html">function::kernel_long.3stap</a></li>
+<li><a href="./function::kernel_pointer.3stap.html">function::kernel_pointer.3stap</a></li>
+<li><a href="./function::kernel_short.3stap.html">function::kernel_short.3stap</a></li>
+<li><a href="./function::kernel_string2.3stap.html">function::kernel_string2.3stap</a></li>
+<li><a href="./function::kernel_string2_utf16.3stap.html">function::kernel_string2_utf16.3stap</a></li>
+<li><a href="./function::kernel_string2_utf32.3stap.html">function::kernel_string2_utf32.3stap</a></li>
+<li><a href="./function::kernel_string.3stap.html">function::kernel_string.3stap</a></li>
+<li><a href="./function::kernel_string_n.3stap.html">function::kernel_string_n.3stap</a></li>
+<li><a href="./function::kernel_string_quoted.3stap.html">function::kernel_string_quoted.3stap</a></li>
+<li><a href="./function::kernel_string_utf16.3stap.html">function::kernel_string_utf16.3stap</a></li>
+<li><a href="./function::kernel_string_utf32.3stap.html">function::kernel_string_utf32.3stap</a></li>
+<li><a href="./function::linuxmib_filter_key.3stap.html">function::linuxmib_filter_key.3stap</a></li>
+<li><a href="./function::local_clock_ms.3stap.html">function::local_clock_ms.3stap</a></li>
+<li><a href="./function::local_clock_ns.3stap.html">function::local_clock_ns.3stap</a></li>
+<li><a href="./function::local_clock_s.3stap.html">function::local_clock_s.3stap</a></li>
+<li><a href="./function::local_clock_us.3stap.html">function::local_clock_us.3stap</a></li>
+<li><a href="./function::log.3stap.html">function::log.3stap</a></li>
+<li><a href="./function::long_arg.3stap.html">function::long_arg.3stap</a></li>
+<li><a href="./function::longlong_arg.3stap.html">function::longlong_arg.3stap</a></li>
+<li><a href="./function::MAJOR.3stap.html">function::MAJOR.3stap</a></li>
+<li><a href="./function::mdelay.3stap.html">function::mdelay.3stap</a></li>
+<li><a href="./function::mem_page_size.3stap.html">function::mem_page_size.3stap</a></li>
+<li><a href="./function::MINOR.3stap.html">function::MINOR.3stap</a></li>
+<li><a href="./function::MKDEV.3stap.html">function::MKDEV.3stap</a></li>
+<li><a href="./function::modname.3stap.html">function::modname.3stap</a></li>
+<li><a href="./function::module_name.3stap.html">function::module_name.3stap</a></li>
+<li><a href="./function::msecs_to_string.3stap.html">function::msecs_to_string.3stap</a></li>
+<li><a href="./function::nfsderror.3stap.html">function::nfsderror.3stap</a></li>
+<li><a href="./function::nsecs_to_string.3stap.html">function::nsecs_to_string.3stap</a></li>
+<li><a href="./function::ntohl.3stap.html">function::ntohl.3stap</a></li>
+<li><a href="./function::ntohll.3stap.html">function::ntohll.3stap</a></li>
+<li><a href="./function::ntohs.3stap.html">function::ntohs.3stap</a></li>
+<li><a href="./function::pages_to_string.3stap.html">function::pages_to_string.3stap</a></li>
+<li><a href="./function::panic.3stap.html">function::panic.3stap</a></li>
+<li><a href="./function::pexecname.3stap.html">function::pexecname.3stap</a></li>
+<li><a href="./function::pgrp.3stap.html">function::pgrp.3stap</a></li>
+<li><a href="./function::pid2execname.3stap.html">function::pid2execname.3stap</a></li>
+<li><a href="./function::pid2task.3stap.html">function::pid2task.3stap</a></li>
+<li><a href="./function::pid.3stap.html">function::pid.3stap</a></li>
+<li><a href="./function::pn.3stap.html">function::pn.3stap</a></li>
+<li><a href="./function::pnlabel.3stap.html">function::pnlabel.3stap</a></li>
+<li><a href="./function::pointer_arg.3stap.html">function::pointer_arg.3stap</a></li>
+<li><a href="./function::pp.3stap.html">function::pp.3stap</a></li>
+<li><a href="./function::ppfunc.3stap.html">function::ppfunc.3stap</a></li>
+<li><a href="./function::ppid.3stap.html">function::ppid.3stap</a></li>
+<li><a href="./function::print_backtrace.3stap.html">function::print_backtrace.3stap</a></li>
+<li><a href="./function::printk.3stap.html">function::printk.3stap</a></li>
+<li><a href="./function::print_regs.3stap.html">function::print_regs.3stap</a></li>
+<li><a href="./function::print_stack.3stap.html">function::print_stack.3stap</a></li>
+<li><a href="./function::print_syms.3stap.html">function::print_syms.3stap</a></li>
+<li><a href="./function::print_ubacktrace.3stap.html">function::print_ubacktrace.3stap</a></li>
+<li><a href="./function::print_ubacktrace_brief.3stap.html">function::print_ubacktrace_brief.3stap</a></li>
+<li><a href="./function::print_ustack.3stap.html">function::print_ustack.3stap</a></li>
+<li><a href="./function::print_usyms.3stap.html">function::print_usyms.3stap</a></li>
+<li><a href="./function::probefunc.3stap.html">function::probefunc.3stap</a></li>
+<li><a href="./function::probemod.3stap.html">function::probemod.3stap</a></li>
+<li><a href="./function::probe_type.3stap.html">function::probe_type.3stap</a></li>
+<li><a href="./function::proc_mem_data.3stap.html">function::proc_mem_data.3stap</a></li>
+<li><a href="./function::proc_mem_data_pid.3stap.html">function::proc_mem_data_pid.3stap</a></li>
+<li><a href="./function::proc_mem_rss.3stap.html">function::proc_mem_rss.3stap</a></li>
+<li><a href="./function::proc_mem_rss_pid.3stap.html">function::proc_mem_rss_pid.3stap</a></li>
+<li><a href="./function::proc_mem_shr.3stap.html">function::proc_mem_shr.3stap</a></li>
+<li><a href="./function::proc_mem_shr_pid.3stap.html">function::proc_mem_shr_pid.3stap</a></li>
+<li><a href="./function::proc_mem_size.3stap.html">function::proc_mem_size.3stap</a></li>
+<li><a href="./function::proc_mem_size_pid.3stap.html">function::proc_mem_size_pid.3stap</a></li>
+<li><a href="./function::proc_mem_string.3stap.html">function::proc_mem_string.3stap</a></li>
+<li><a href="./function::proc_mem_string_pid.3stap.html">function::proc_mem_string_pid.3stap</a></li>
+<li><a href="./function::proc_mem_txt.3stap.html">function::proc_mem_txt.3stap</a></li>
+<li><a href="./function::proc_mem_txt_pid.3stap.html">function::proc_mem_txt_pid.3stap</a></li>
+<li><a href="./function::pstrace.3stap.html">function::pstrace.3stap</a></li>
+<li><a href="./function::qs_done.3stap.html">function::qs_done.3stap</a></li>
+<li><a href="./function::qsq_blocked.3stap.html">function::qsq_blocked.3stap</a></li>
+<li><a href="./function::qsq_print.3stap.html">function::qsq_print.3stap</a></li>
+<li><a href="./function::qsq_service_time.3stap.html">function::qsq_service_time.3stap</a></li>
+<li><a href="./function::qsq_start.3stap.html">function::qsq_start.3stap</a></li>
+<li><a href="./function::qsq_throughput.3stap.html">function::qsq_throughput.3stap</a></li>
+<li><a href="./function::qsq_utilization.3stap.html">function::qsq_utilization.3stap</a></li>
+<li><a href="./function::qsq_wait_queue_length.3stap.html">function::qsq_wait_queue_length.3stap</a></li>
+<li><a href="./function::qsq_wait_time.3stap.html">function::qsq_wait_time.3stap</a></li>
+<li><a href="./function::qs_run.3stap.html">function::qs_run.3stap</a></li>
+<li><a href="./function::qs_wait.3stap.html">function::qs_wait.3stap</a></li>
+<li><a href="./function::raise.3stap.html">function::raise.3stap</a></li>
+<li><a href="./function::randint.3stap.html">function::randint.3stap</a></li>
+<li><a href="./function::read_stopwatch_ms.3stap.html">function::read_stopwatch_ms.3stap</a></li>
+<li><a href="./function::read_stopwatch_ns.3stap.html">function::read_stopwatch_ns.3stap</a></li>
+<li><a href="./function::read_stopwatch_s.3stap.html">function::read_stopwatch_s.3stap</a></li>
+<li><a href="./function::read_stopwatch_us.3stap.html">function::read_stopwatch_us.3stap</a></li>
+<li><a href="./function::real_mount.3stap.html">function::real_mount.3stap</a></li>
+<li><a href="./function::register.3stap.html">function::register.3stap</a></li>
+<li><a href="./function::registers_valid.3stap.html">function::registers_valid.3stap</a></li>
+<li><a href="./function::regparm.3stap.html">function::regparm.3stap</a></li>
+<li><a href="./function::remote_id.3stap.html">function::remote_id.3stap</a></li>
+<li><a href="./function::remote_uri.3stap.html">function::remote_uri.3stap</a></li>
+<li><a href="./function::return_str.3stap.html">function::return_str.3stap</a></li>
+<li><a href="./function::returnstr.3stap.html">function::returnstr.3stap</a></li>
+<li><a href="./function::returnval.3stap.html">function::returnval.3stap</a></li>
+<li><a href="./function::reverse_path_walk.3stap.html">function::reverse_path_walk.3stap</a></li>
+<li><a href="./function::rlimit_from_str.3stap.html">function::rlimit_from_str.3stap</a></li>
+<li><a href="./function::s32_arg.3stap.html">function::s32_arg.3stap</a></li>
+<li><a href="./function::s64_arg.3stap.html">function::s64_arg.3stap</a></li>
+<li><a href="./function::sa_flags_str.3stap.html">function::sa_flags_str.3stap</a></li>
+<li><a href="./function::sa_handler_str.3stap.html">function::sa_handler_str.3stap</a></li>
+<li><a href="./function::set_kernel_char.3stap.html">function::set_kernel_char.3stap</a></li>
+<li><a href="./function::set_kernel_int.3stap.html">function::set_kernel_int.3stap</a></li>
+<li><a href="./function::set_kernel_long.3stap.html">function::set_kernel_long.3stap</a></li>
+<li><a href="./function::set_kernel_pointer.3stap.html">function::set_kernel_pointer.3stap</a></li>
+<li><a href="./function::set_kernel_short.3stap.html">function::set_kernel_short.3stap</a></li>
+<li><a href="./function::set_kernel_string.3stap.html">function::set_kernel_string.3stap</a></li>
+<li><a href="./function::set_kernel_string_n.3stap.html">function::set_kernel_string_n.3stap</a></li>
+<li><a href="./function::sid.3stap.html">function::sid.3stap</a></li>
+<li><a href="./function::signal_str.3stap.html">function::signal_str.3stap</a></li>
+<li><a href="./function::sigset_mask_str.3stap.html">function::sigset_mask_str.3stap</a></li>
+<li><a href="./function::sock_fam_num2str.3stap.html">function::sock_fam_num2str.3stap</a></li>
+<li><a href="./function::sock_fam_str2num.3stap.html">function::sock_fam_str2num.3stap</a></li>
+<li><a href="./function::sock_prot_num2str.3stap.html">function::sock_prot_num2str.3stap</a></li>
+<li><a href="./function::sock_prot_str2num.3stap.html">function::sock_prot_str2num.3stap</a></li>
+<li><a href="./function::sock_state_num2str.3stap.html">function::sock_state_num2str.3stap</a></li>
+<li><a href="./function::sock_state_str2num.3stap.html">function::sock_state_str2num.3stap</a></li>
+<li><a href="./function::speculate.3stap.html">function::speculate.3stap</a></li>
+<li><a href="./function::speculation.3stap.html">function::speculation.3stap</a></li>
+<li><a href="./function::sprint_backtrace.3stap.html">function::sprint_backtrace.3stap</a></li>
+<li><a href="./function::sprint_loadavg.3stap.html">function::sprint_loadavg.3stap</a></li>
+<li><a href="./function::sprint_stack.3stap.html">function::sprint_stack.3stap</a></li>
+<li><a href="./function::sprint_syms.3stap.html">function::sprint_syms.3stap</a></li>
+<li><a href="./function::sprint_ubacktrace.3stap.html">function::sprint_ubacktrace.3stap</a></li>
+<li><a href="./function::sprint_ustack.3stap.html">function::sprint_ustack.3stap</a></li>
+<li><a href="./function::sprint_usyms.3stap.html">function::sprint_usyms.3stap</a></li>
+<li><a href="./function::stack.3stap.html">function::stack.3stap</a></li>
+<li><a href="./function::stack_size.3stap.html">function::stack_size.3stap</a></li>
+<li><a href="./function::stack_unused.3stap.html">function::stack_unused.3stap</a></li>
+<li><a href="./function::stack_used.3stap.html">function::stack_used.3stap</a></li>
+<li><a href="./function::start_stopwatch.3stap.html">function::start_stopwatch.3stap</a></li>
+<li><a href="./function::stop_stopwatch.3stap.html">function::stop_stopwatch.3stap</a></li>
+<li><a href="./function::stp_pid.3stap.html">function::stp_pid.3stap</a></li>
+<li><a href="./function::stringat.3stap.html">function::stringat.3stap</a></li>
+<li><a href="./function::strlen.3stap.html">function::strlen.3stap</a></li>
+<li><a href="./function::str_replace.3stap.html">function::str_replace.3stap</a></li>
+<li><a href="./function::strtol.3stap.html">function::strtol.3stap</a></li>
+<li><a href="./function::substr.3stap.html">function::substr.3stap</a></li>
+<li><a href="./function::symdata.3stap.html">function::symdata.3stap</a></li>
+<li><a href="./function::symname.3stap.html">function::symname.3stap</a></li>
+<li><a href="./function::system.3stap.html">function::system.3stap</a></li>
+<li><a href="./function::target.3stap.html">function::target.3stap</a></li>
+<li><a href="./function::target_set_pid.3stap.html">function::target_set_pid.3stap</a></li>
+<li><a href="./function::target_set_report.3stap.html">function::target_set_report.3stap</a></li>
+<li><a href="./function::task_ancestry.3stap.html">function::task_ancestry.3stap</a></li>
+<li><a href="./function::task_backtrace.3stap.html">function::task_backtrace.3stap</a></li>
+<li><a href="./function::task_cpu.3stap.html">function::task_cpu.3stap</a></li>
+<li><a href="./function::task_current.3stap.html">function::task_current.3stap</a></li>
+<li><a href="./function::task_dentry_path.3stap.html">function::task_dentry_path.3stap</a></li>
+<li><a href="./function::task_egid.3stap.html">function::task_egid.3stap</a></li>
+<li><a href="./function::task_euid.3stap.html">function::task_euid.3stap</a></li>
+<li><a href="./function::task_execname.3stap.html">function::task_execname.3stap</a></li>
+<li><a href="./function::task_gid.3stap.html">function::task_gid.3stap</a></li>
+<li><a href="./function::task_max_file_handles.3stap.html">function::task_max_file_handles.3stap</a></li>
+<li><a href="./function::task_nice.3stap.html">function::task_nice.3stap</a></li>
+<li><a href="./function::task_open_file_handles.3stap.html">function::task_open_file_handles.3stap</a></li>
+<li><a href="./function::task_parent.3stap.html">function::task_parent.3stap</a></li>
+<li><a href="./function::task_pid.3stap.html">function::task_pid.3stap</a></li>
+<li><a href="./function::task_prio.3stap.html">function::task_prio.3stap</a></li>
+<li><a href="./function::task_start_time.3stap.html">function::task_start_time.3stap</a></li>
+<li><a href="./function::task_state.3stap.html">function::task_state.3stap</a></li>
+<li><a href="./function::task_stime.3stap.html">function::task_stime.3stap</a></li>
+<li><a href="./function::task_stime_tid.3stap.html">function::task_stime_tid.3stap</a></li>
+<li><a href="./function::task_tid.3stap.html">function::task_tid.3stap</a></li>
+<li><a href="./function::task_time_string.3stap.html">function::task_time_string.3stap</a></li>
+<li><a href="./function::task_time_string_tid.3stap.html">function::task_time_string_tid.3stap</a></li>
+<li><a href="./function::task_uid.3stap.html">function::task_uid.3stap</a></li>
+<li><a href="./function::task_utime.3stap.html">function::task_utime.3stap</a></li>
+<li><a href="./function::task_utime_tid.3stap.html">function::task_utime_tid.3stap</a></li>
+<li><a href="./function::tcpmib_filter_key.3stap.html">function::tcpmib_filter_key.3stap</a></li>
+<li><a href="./function::tcpmib_get_state.3stap.html">function::tcpmib_get_state.3stap</a></li>
+<li><a href="./function::tcpmib_local_addr.3stap.html">function::tcpmib_local_addr.3stap</a></li>
+<li><a href="./function::tcpmib_local_port.3stap.html">function::tcpmib_local_port.3stap</a></li>
+<li><a href="./function::tcpmib_remote_addr.3stap.html">function::tcpmib_remote_addr.3stap</a></li>
+<li><a href="./function::tcpmib_remote_port.3stap.html">function::tcpmib_remote_port.3stap</a></li>
+<li><a href="./function::text_str.3stap.html">function::text_str.3stap</a></li>
+<li><a href="./function::text_strn.3stap.html">function::text_strn.3stap</a></li>
+<li><a href="./function::thread_indent.3stap.html">function::thread_indent.3stap</a></li>
+<li><a href="./function::thread_indent_depth.3stap.html">function::thread_indent_depth.3stap</a></li>
+<li><a href="./function::tid.3stap.html">function::tid.3stap</a></li>
+<li><a href="./function::tokenize.3stap.html">function::tokenize.3stap</a></li>
+<li><a href="./function::tz_ctime.3stap.html">function::tz_ctime.3stap</a></li>
+<li><a href="./function::tz_gmtoff.3stap.html">function::tz_gmtoff.3stap</a></li>
+<li><a href="./function::tz_name.3stap.html">function::tz_name.3stap</a></li>
+<li><a href="./function::u32_arg.3stap.html">function::u32_arg.3stap</a></li>
+<li><a href="./function::u64_arg.3stap.html">function::u64_arg.3stap</a></li>
+<li><a href="./function::uaddr.3stap.html">function::uaddr.3stap</a></li>
+<li><a href="./function::ubacktrace.3stap.html">function::ubacktrace.3stap</a></li>
+<li><a href="./function::ucallers.3stap.html">function::ucallers.3stap</a></li>
+<li><a href="./function::udelay.3stap.html">function::udelay.3stap</a></li>
+<li><a href="./function::uid.3stap.html">function::uid.3stap</a></li>
+<li><a href="./function::uint_arg.3stap.html">function::uint_arg.3stap</a></li>
+<li><a href="./function::ulong_arg.3stap.html">function::ulong_arg.3stap</a></li>
+<li><a href="./function::ulonglong_arg.3stap.html">function::ulonglong_arg.3stap</a></li>
+<li><a href="./function::umodname.3stap.html">function::umodname.3stap</a></li>
+<li><a href="./function::u_register.3stap.html">function::u_register.3stap</a></li>
+<li><a href="./function::usecs_to_string.3stap.html">function::usecs_to_string.3stap</a></li>
+<li><a href="./function::user_char.3stap.html">function::user_char.3stap</a></li>
+<li><a href="./function::user_char_warn.3stap.html">function::user_char_warn.3stap</a></li>
+<li><a href="./function::user_int16.3stap.html">function::user_int16.3stap</a></li>
+<li><a href="./function::user_int32.3stap.html">function::user_int32.3stap</a></li>
+<li><a href="./function::user_int.3stap.html">function::user_int.3stap</a></li>
+<li><a href="./function::user_int64.3stap.html">function::user_int64.3stap</a></li>
+<li><a href="./function::user_int8.3stap.html">function::user_int8.3stap</a></li>
+<li><a href="./function::user_int_warn.3stap.html">function::user_int_warn.3stap</a></li>
+<li><a href="./function::user_long.3stap.html">function::user_long.3stap</a></li>
+<li><a href="./function::user_long_warn.3stap.html">function::user_long_warn.3stap</a></li>
+<li><a href="./function::user_mode.3stap.html">function::user_mode.3stap</a></li>
+<li><a href="./function::user_short.3stap.html">function::user_short.3stap</a></li>
+<li><a href="./function::user_short_warn.3stap.html">function::user_short_warn.3stap</a></li>
+<li><a href="./function::user_string2.3stap.html">function::user_string2.3stap</a></li>
+<li><a href="./function::user_string2_n_warn.3stap.html">function::user_string2_n_warn.3stap</a></li>
+<li><a href="./function::user_string2_utf16.3stap.html">function::user_string2_utf16.3stap</a></li>
+<li><a href="./function::user_string2_utf32.3stap.html">function::user_string2_utf32.3stap</a></li>
+<li><a href="./function::user_string2_warn.3stap.html">function::user_string2_warn.3stap</a></li>
+<li><a href="./function::user_string.3stap.html">function::user_string.3stap</a></li>
+<li><a href="./function::user_string_n2.3stap.html">function::user_string_n2.3stap</a></li>
+<li><a href="./function::user_string_n2_quoted.3stap.html">function::user_string_n2_quoted.3stap</a></li>
+<li><a href="./function::user_string_n.3stap.html">function::user_string_n.3stap</a></li>
+<li><a href="./function::user_string_n_quoted.3stap.html">function::user_string_n_quoted.3stap</a></li>
+<li><a href="./function::user_string_n_warn.3stap.html">function::user_string_n_warn.3stap</a></li>
+<li><a href="./function::user_string_quoted.3stap.html">function::user_string_quoted.3stap</a></li>
+<li><a href="./function::user_string_utf16.3stap.html">function::user_string_utf16.3stap</a></li>
+<li><a href="./function::user_string_utf32.3stap.html">function::user_string_utf32.3stap</a></li>
+<li><a href="./function::user_string_warn.3stap.html">function::user_string_warn.3stap</a></li>
+<li><a href="./function::user_uint16.3stap.html">function::user_uint16.3stap</a></li>
+<li><a href="./function::user_uint32.3stap.html">function::user_uint32.3stap</a></li>
+<li><a href="./function::user_uint64.3stap.html">function::user_uint64.3stap</a></li>
+<li><a href="./function::user_uint8.3stap.html">function::user_uint8.3stap</a></li>
+<li><a href="./function::user_ulong.3stap.html">function::user_ulong.3stap</a></li>
+<li><a href="./function::user_ulong_warn.3stap.html">function::user_ulong_warn.3stap</a></li>
+<li><a href="./function::user_ushort.3stap.html">function::user_ushort.3stap</a></li>
+<li><a href="./function::user_ushort_warn.3stap.html">function::user_ushort_warn.3stap</a></li>
+<li><a href="./function::usrdev2kerndev.3stap.html">function::usrdev2kerndev.3stap</a></li>
+<li><a href="./function::ustack.3stap.html">function::ustack.3stap</a></li>
+<li><a href="./function::usymdata.3stap.html">function::usymdata.3stap</a></li>
+<li><a href="./function::usymname.3stap.html">function::usymname.3stap</a></li>
+<li><a href="./function::vm_fault_contains.3stap.html">function::vm_fault_contains.3stap</a></li>
+<li><a href="./function::warn.3stap.html">function::warn.3stap</a></li>
+<li><a href="./probe::ioblock.end.3stap.html">probe::ioblock.end.3stap</a></li>
+<li><a href="./probe::ioblock.request.3stap.html">probe::ioblock.request.3stap</a></li>
+<li><a href="./probe::ioblock_trace.bounce.3stap.html">probe::ioblock_trace.bounce.3stap</a></li>
+<li><a href="./probe::ioblock_trace.end.3stap.html">probe::ioblock_trace.end.3stap</a></li>
+<li><a href="./probe::ioblock_trace.request.3stap.html">probe::ioblock_trace.request.3stap</a></li>
+<li><a href="./probe::ioscheduler.elv_add_request.3stap.html">probe::ioscheduler.elv_add_request.3stap</a></li>
+<li><a href="./probe::ioscheduler.elv_add_request.kp.3stap.html">probe::ioscheduler.elv_add_request.kp.3stap</a></li>
+<li><a href="./probe::ioscheduler.elv_add_request.tp.3stap.html">probe::ioscheduler.elv_add_request.tp.3stap</a></li>
+<li><a href="./probe::ioscheduler.elv_completed_request.3stap.html">probe::ioscheduler.elv_completed_request.3stap</a></li>
+<li><a href="./probe::ioscheduler.elv_next_request.3stap.html">probe::ioscheduler.elv_next_request.3stap</a></li>
+<li><a href="./probe::ioscheduler.elv_next_request.return.3stap.html">probe::ioscheduler.elv_next_request.return.3stap</a></li>
+<li><a href="./probe::ioscheduler_trace.elv_abort_request.3stap.html">probe::ioscheduler_trace.elv_abort_request.3stap</a></li>
+<li><a href="./probe::ioscheduler_trace.elv_completed_request.3stap.html">probe::ioscheduler_trace.elv_completed_request.3stap</a></li>
+<li><a href="./probe::ioscheduler_trace.elv_issue_request.3stap.html">probe::ioscheduler_trace.elv_issue_request.3stap</a></li>
+<li><a href="./probe::ioscheduler_trace.elv_requeue_request.3stap.html">probe::ioscheduler_trace.elv_requeue_request.3stap</a></li>
+<li><a href="./probe::ioscheduler_trace.plug.3stap.html">probe::ioscheduler_trace.plug.3stap</a></li>
+<li><a href="./probe::ioscheduler_trace.unplug_io.3stap.html">probe::ioscheduler_trace.unplug_io.3stap</a></li>
+<li><a href="./probe::ioscheduler_trace.unplug_timer.3stap.html">probe::ioscheduler_trace.unplug_timer.3stap</a></li>
+<li><a href="./probe::ipmib.ForwDatagrams.3stap.html">probe::ipmib.ForwDatagrams.3stap</a></li>
+<li><a href="./probe::ipmib.FragFails.3stap.html">probe::ipmib.FragFails.3stap</a></li>
+<li><a href="./probe::ipmib.FragOKs.3stap.html">probe::ipmib.FragOKs.3stap</a></li>
+<li><a href="./probe::ipmib.InAddrErrors.3stap.html">probe::ipmib.InAddrErrors.3stap</a></li>
+<li><a href="./probe::ipmib.InDiscards.3stap.html">probe::ipmib.InDiscards.3stap</a></li>
+<li><a href="./probe::ipmib.InNoRoutes.3stap.html">probe::ipmib.InNoRoutes.3stap</a></li>
+<li><a href="./probe::ipmib.InReceives.3stap.html">probe::ipmib.InReceives.3stap</a></li>
+<li><a href="./probe::ipmib.InUnknownProtos.3stap.html">probe::ipmib.InUnknownProtos.3stap</a></li>
+<li><a href="./probe::ipmib.OutRequests.3stap.html">probe::ipmib.OutRequests.3stap</a></li>
+<li><a href="./probe::ipmib.ReasmReqds.3stap.html">probe::ipmib.ReasmReqds.3stap</a></li>
+<li><a href="./probe::ipmib.ReasmTimeout.3stap.html">probe::ipmib.ReasmTimeout.3stap</a></li>
+<li><a href="./probe::irq_handler.entry.3stap.html">probe::irq_handler.entry.3stap</a></li>
+<li><a href="./probe::irq_handler.exit.3stap.html">probe::irq_handler.exit.3stap</a></li>
+<li><a href="./probe::kprocess.create.3stap.html">probe::kprocess.create.3stap</a></li>
+<li><a href="./probe::kprocess.exec.3stap.html">probe::kprocess.exec.3stap</a></li>
+<li><a href="./probe::kprocess.exec_complete.3stap.html">probe::kprocess.exec_complete.3stap</a></li>
+<li><a href="./probe::kprocess.exit.3stap.html">probe::kprocess.exit.3stap</a></li>
+<li><a href="./probe::kprocess.release.3stap.html">probe::kprocess.release.3stap</a></li>
+<li><a href="./probe::kprocess.start.3stap.html">probe::kprocess.start.3stap</a></li>
+<li><a href="./probe::linuxmib.DelayedACKs.3stap.html">probe::linuxmib.DelayedACKs.3stap</a></li>
+<li><a href="./probe::linuxmib.ListenDrops.3stap.html">probe::linuxmib.ListenDrops.3stap</a></li>
+<li><a href="./probe::linuxmib.ListenOverflows.3stap.html">probe::linuxmib.ListenOverflows.3stap</a></li>
+<li><a href="./probe::linuxmib.TCPMemoryPressures.3stap.html">probe::linuxmib.TCPMemoryPressures.3stap</a></li>
+<li><a href="./probe::netdev.change_mac.3stap.html">probe::netdev.change_mac.3stap</a></li>
+<li><a href="./probe::netdev.change_mtu.3stap.html">probe::netdev.change_mtu.3stap</a></li>
+<li><a href="./probe::netdev.change_rx_flag.3stap.html">probe::netdev.change_rx_flag.3stap</a></li>
+<li><a href="./probe::netdev.close.3stap.html">probe::netdev.close.3stap</a></li>
+<li><a href="./probe::netdev.get_stats.3stap.html">probe::netdev.get_stats.3stap</a></li>
+<li><a href="./probe::netdev.hard_transmit.3stap.html">probe::netdev.hard_transmit.3stap</a></li>
+<li><a href="./probe::netdev.ioctl.3stap.html">probe::netdev.ioctl.3stap</a></li>
+<li><a href="./probe::netdev.open.3stap.html">probe::netdev.open.3stap</a></li>
+<li><a href="./probe::netdev.receive.3stap.html">probe::netdev.receive.3stap</a></li>
+<li><a href="./probe::netdev.register.3stap.html">probe::netdev.register.3stap</a></li>
+<li><a href="./probe::netdev.rx.3stap.html">probe::netdev.rx.3stap</a></li>
+<li><a href="./probe::netdev.set_promiscuity.3stap.html">probe::netdev.set_promiscuity.3stap</a></li>
+<li><a href="./probe::netdev.transmit.3stap.html">probe::netdev.transmit.3stap</a></li>
+<li><a href="./probe::netdev.unregister.3stap.html">probe::netdev.unregister.3stap</a></li>
+<li><a href="./probe::netfilter.arp.forward.3stap.html">probe::netfilter.arp.forward.3stap</a></li>
+<li><a href="./probe::netfilter.arp.in.3stap.html">probe::netfilter.arp.in.3stap</a></li>
+<li><a href="./probe::netfilter.arp.out.3stap.html">probe::netfilter.arp.out.3stap</a></li>
+<li><a href="./probe::netfilter.bridge.forward.3stap.html">probe::netfilter.bridge.forward.3stap</a></li>
+<li><a href="./probe::netfilter.bridge.local_in.3stap.html">probe::netfilter.bridge.local_in.3stap</a></li>
+<li><a href="./probe::netfilter.bridge.local_out.3stap.html">probe::netfilter.bridge.local_out.3stap</a></li>
+<li><a href="./probe::netfilter.bridge.post_routing.3stap.html">probe::netfilter.bridge.post_routing.3stap</a></li>
+<li><a href="./probe::netfilter.bridge.pre_routing.3stap.html">probe::netfilter.bridge.pre_routing.3stap</a></li>
+<li><a href="./probe::netfilter.ip.forward.3stap.html">probe::netfilter.ip.forward.3stap</a></li>
+<li><a href="./probe::netfilter.ip.local_in.3stap.html">probe::netfilter.ip.local_in.3stap</a></li>
+<li><a href="./probe::netfilter.ip.local_out.3stap.html">probe::netfilter.ip.local_out.3stap</a></li>
+<li><a href="./probe::netfilter.ip.post_routing.3stap.html">probe::netfilter.ip.post_routing.3stap</a></li>
+<li><a href="./probe::netfilter.ip.pre_routing.3stap.html">probe::netfilter.ip.pre_routing.3stap</a></li>
+<li><a href="./probe::nfs.aop.readpage.3stap.html">probe::nfs.aop.readpage.3stap</a></li>
+<li><a href="./probe::nfs.aop.readpages.3stap.html">probe::nfs.aop.readpages.3stap</a></li>
+<li><a href="./probe::nfs.aop.release_page.3stap.html">probe::nfs.aop.release_page.3stap</a></li>
+<li><a href="./probe::nfs.aop.set_page_dirty.3stap.html">probe::nfs.aop.set_page_dirty.3stap</a></li>
+<li><a href="./probe::nfs.aop.write_begin.3stap.html">probe::nfs.aop.write_begin.3stap</a></li>
+<li><a href="./probe::nfs.aop.write_end.3stap.html">probe::nfs.aop.write_end.3stap</a></li>
+<li><a href="./probe::nfs.aop.writepage.3stap.html">probe::nfs.aop.writepage.3stap</a></li>
+<li><a href="./probe::nfs.aop.writepages.3stap.html">probe::nfs.aop.writepages.3stap</a></li>
+<li><a href="./probe::nfsd.close.3stap.html">probe::nfsd.close.3stap</a></li>
+<li><a href="./probe::nfsd.commit.3stap.html">probe::nfsd.commit.3stap</a></li>
+<li><a href="./probe::nfsd.create.3stap.html">probe::nfsd.create.3stap</a></li>
+<li><a href="./probe::nfsd.createv3.3stap.html">probe::nfsd.createv3.3stap</a></li>
+<li><a href="./probe::nfsd.dispatch.3stap.html">probe::nfsd.dispatch.3stap</a></li>
+<li><a href="./probe::nfsd.lookup.3stap.html">probe::nfsd.lookup.3stap</a></li>
+<li><a href="./probe::nfsd.open.3stap.html">probe::nfsd.open.3stap</a></li>
+<li><a href="./probe::nfsd.proc.commit.3stap.html">probe::nfsd.proc.commit.3stap</a></li>
+<li><a href="./probe::nfsd.proc.create.3stap.html">probe::nfsd.proc.create.3stap</a></li>
+<li><a href="./probe::nfsd.proc.lookup.3stap.html">probe::nfsd.proc.lookup.3stap</a></li>
+<li><a href="./probe::nfsd.proc.read.3stap.html">probe::nfsd.proc.read.3stap</a></li>
+<li><a href="./probe::nfsd.proc.remove.3stap.html">probe::nfsd.proc.remove.3stap</a></li>
+<li><a href="./probe::nfsd.proc.rename.3stap.html">probe::nfsd.proc.rename.3stap</a></li>
+<li><a href="./probe::nfsd.proc.write.3stap.html">probe::nfsd.proc.write.3stap</a></li>
+<li><a href="./probe::nfsd.read.3stap.html">probe::nfsd.read.3stap</a></li>
+<li><a href="./probe::nfsd.rename.3stap.html">probe::nfsd.rename.3stap</a></li>
+<li><a href="./probe::nfsd.unlink.3stap.html">probe::nfsd.unlink.3stap</a></li>
+<li><a href="./probe::nfsd.write.3stap.html">probe::nfsd.write.3stap</a></li>
+<li><a href="./probe::nfs.fop.aio_read.3stap.html">probe::nfs.fop.aio_read.3stap</a></li>
+<li><a href="./probe::nfs.fop.aio_write.3stap.html">probe::nfs.fop.aio_write.3stap</a></li>
+<li><a href="./probe::nfs.fop.check_flags.3stap.html">probe::nfs.fop.check_flags.3stap</a></li>
+<li><a href="./probe::nfs.fop.flush.3stap.html">probe::nfs.fop.flush.3stap</a></li>
+<li><a href="./probe::nfs.fop.fsync.3stap.html">probe::nfs.fop.fsync.3stap</a></li>
+<li><a href="./probe::nfs.fop.llseek.3stap.html">probe::nfs.fop.llseek.3stap</a></li>
+<li><a href="./probe::nfs.fop.lock.3stap.html">probe::nfs.fop.lock.3stap</a></li>
+<li><a href="./probe::nfs.fop.mmap.3stap.html">probe::nfs.fop.mmap.3stap</a></li>
+<li><a href="./probe::nfs.fop.open.3stap.html">probe::nfs.fop.open.3stap</a></li>
+<li><a href="./probe::nfs.fop.read.3stap.html">probe::nfs.fop.read.3stap</a></li>
+<li><a href="./probe::nfs.fop.read_iter.3stap.html">probe::nfs.fop.read_iter.3stap</a></li>
+<li><a href="./probe::nfs.fop.release.3stap.html">probe::nfs.fop.release.3stap</a></li>
+<li><a href="./probe::nfs.fop.sendfile.3stap.html">probe::nfs.fop.sendfile.3stap</a></li>
+<li><a href="./probe::nfs.fop.write.3stap.html">probe::nfs.fop.write.3stap</a></li>
+<li><a href="./probe::nfs.fop.write_iter.3stap.html">probe::nfs.fop.write_iter.3stap</a></li>
+<li><a href="./probe::nfs.proc.commit.3stap.html">probe::nfs.proc.commit.3stap</a></li>
+<li><a href="./probe::nfs.proc.commit_done.3stap.html">probe::nfs.proc.commit_done.3stap</a></li>
+<li><a href="./probe::nfs.proc.commit_setup.3stap.html">probe::nfs.proc.commit_setup.3stap</a></li>
+<li><a href="./probe::nfs.proc.create.3stap.html">probe::nfs.proc.create.3stap</a></li>
+<li><a href="./probe::nfs.proc.handle_exception.3stap.html">probe::nfs.proc.handle_exception.3stap</a></li>
+<li><a href="./probe::nfs.proc.lookup.3stap.html">probe::nfs.proc.lookup.3stap</a></li>
+<li><a href="./probe::nfs.proc.open.3stap.html">probe::nfs.proc.open.3stap</a></li>
+<li><a href="./probe::nfs.proc.read.3stap.html">probe::nfs.proc.read.3stap</a></li>
+<li><a href="./probe::nfs.proc.read_done.3stap.html">probe::nfs.proc.read_done.3stap</a></li>
+<li><a href="./probe::nfs.proc.read_setup.3stap.html">probe::nfs.proc.read_setup.3stap</a></li>
+<li><a href="./probe::nfs.proc.release.3stap.html">probe::nfs.proc.release.3stap</a></li>
+<li><a href="./probe::nfs.proc.remove.3stap.html">probe::nfs.proc.remove.3stap</a></li>
+<li><a href="./probe::nfs.proc.rename.3stap.html">probe::nfs.proc.rename.3stap</a></li>
+<li><a href="./probe::nfs.proc.rename_done.3stap.html">probe::nfs.proc.rename_done.3stap</a></li>
+<li><a href="./probe::nfs.proc.rename_setup.3stap.html">probe::nfs.proc.rename_setup.3stap</a></li>
+<li><a href="./probe::nfs.proc.write.3stap.html">probe::nfs.proc.write.3stap</a></li>
+<li><a href="./probe::nfs.proc.write_done.3stap.html">probe::nfs.proc.write_done.3stap</a></li>
+<li><a href="./probe::nfs.proc.write_setup.3stap.html">probe::nfs.proc.write_setup.3stap</a></li>
+<li><a href="./probe::scheduler.balance.3stap.html">probe::scheduler.balance.3stap</a></li>
+<li><a href="./probe::scheduler.cpu_off.3stap.html">probe::scheduler.cpu_off.3stap</a></li>
+<li><a href="./probe::scheduler.cpu_on.3stap.html">probe::scheduler.cpu_on.3stap</a></li>
+<li><a href="./probe::scheduler.ctxswitch.3stap.html">probe::scheduler.ctxswitch.3stap</a></li>
+<li><a href="./probe::scheduler.kthread_stop.3stap.html">probe::scheduler.kthread_stop.3stap</a></li>
+<li><a href="./probe::scheduler.kthread_stop.return.3stap.html">probe::scheduler.kthread_stop.return.3stap</a></li>
+<li><a href="./probe::scheduler.migrate.3stap.html">probe::scheduler.migrate.3stap</a></li>
+<li><a href="./probe::scheduler.process_exit.3stap.html">probe::scheduler.process_exit.3stap</a></li>
+<li><a href="./probe::scheduler.process_fork.3stap.html">probe::scheduler.process_fork.3stap</a></li>
+<li><a href="./probe::scheduler.process_free.3stap.html">probe::scheduler.process_free.3stap</a></li>
+<li><a href="./probe::scheduler.process_wait.3stap.html">probe::scheduler.process_wait.3stap</a></li>
+<li><a href="./probe::scheduler.signal_send.3stap.html">probe::scheduler.signal_send.3stap</a></li>
+<li><a href="./probe::scheduler.tick.3stap.html">probe::scheduler.tick.3stap</a></li>
+<li><a href="./probe::scheduler.wait_task.3stap.html">probe::scheduler.wait_task.3stap</a></li>
+<li><a href="./probe::scheduler.wakeup.3stap.html">probe::scheduler.wakeup.3stap</a></li>
+<li><a href="./probe::scheduler.wakeup_new.3stap.html">probe::scheduler.wakeup_new.3stap</a></li>
+<li><a href="./probe::scsi.iocompleted.3stap.html">probe::scsi.iocompleted.3stap</a></li>
+<li><a href="./probe::scsi.iodispatching.3stap.html">probe::scsi.iodispatching.3stap</a></li>
+<li><a href="./probe::scsi.iodone.3stap.html">probe::scsi.iodone.3stap</a></li>
+<li><a href="./probe::scsi.ioentry.3stap.html">probe::scsi.ioentry.3stap</a></li>
+<li><a href="./probe::scsi.ioexecute.3stap.html">probe::scsi.ioexecute.3stap</a></li>
+<li><a href="./probe::scsi.set_state.3stap.html">probe::scsi.set_state.3stap</a></li>
+<li><a href="./probe::signal.check_ignored.3stap.html">probe::signal.check_ignored.3stap</a></li>
+<li><a href="./probe::signal.check_ignored.return.3stap.html">probe::signal.check_ignored.return.3stap</a></li>
+<li><a href="./probe::signal.checkperm.3stap.html">probe::signal.checkperm.3stap</a></li>
+<li><a href="./probe::signal.checkperm.return.3stap.html">probe::signal.checkperm.return.3stap</a></li>
+<li><a href="./probe::signal.do_action.3stap.html">probe::signal.do_action.3stap</a></li>
+<li><a href="./probe::signal.do_action.return.3stap.html">probe::signal.do_action.return.3stap</a></li>
+<li><a href="./probe::signal.flush.3stap.html">probe::signal.flush.3stap</a></li>
+<li><a href="./probe::signal.force_segv.3stap.html">probe::signal.force_segv.3stap</a></li>
+<li><a href="./probe::signal.force_segv.return.3stap.html">probe::signal.force_segv.return.3stap</a></li>
+<li><a href="./probe::signal.handle.3stap.html">probe::signal.handle.3stap</a></li>
+<li><a href="./probe::signal.handle.return.3stap.html">probe::signal.handle.return.3stap</a></li>
+<li><a href="./probe::signal.pending.3stap.html">probe::signal.pending.3stap</a></li>
+<li><a href="./probe::signal.pending.return.3stap.html">probe::signal.pending.return.3stap</a></li>
+<li><a href="./probe::signal.procmask.3stap.html">probe::signal.procmask.3stap</a></li>
+<li><a href="./probe::signal.procmask.return.3stap.html">probe::signal.procmask.return.3stap</a></li>
+<li><a href="./probe::signal.send.3stap.html">probe::signal.send.3stap</a></li>
+<li><a href="./probe::signal.send.return.3stap.html">probe::signal.send.return.3stap</a></li>
+<li><a href="./probe::signal.send_sig_queue.3stap.html">probe::signal.send_sig_queue.3stap</a></li>
+<li><a href="./probe::signal.send_sig_queue.return.3stap.html">probe::signal.send_sig_queue.return.3stap</a></li>
+<li><a href="./probe::signal.syskill.3stap.html">probe::signal.syskill.3stap</a></li>
+<li><a href="./probe::signal.syskill.return.3stap.html">probe::signal.syskill.return.3stap</a></li>
+<li><a href="./probe::signal.sys_tgkill.3stap.html">probe::signal.sys_tgkill.3stap</a></li>
+<li><a href="./probe::signal.sys_tgkill.return.3stap.html">probe::signal.sys_tgkill.return.3stap</a></li>
+<li><a href="./probe::signal.sys_tkill.3stap.html">probe::signal.sys_tkill.3stap</a></li>
+<li><a href="./probe::signal.systkill.return.3stap.html">probe::signal.systkill.return.3stap</a></li>
+<li><a href="./probe::signal.wakeup.3stap.html">probe::signal.wakeup.3stap</a></li>
+<li><a href="./probe::socket.aio_read.3stap.html">probe::socket.aio_read.3stap</a></li>
+<li><a href="./probe::socket.aio_read.return.3stap.html">probe::socket.aio_read.return.3stap</a></li>
+<li><a href="./probe::socket.aio_write.3stap.html">probe::socket.aio_write.3stap</a></li>
+<li><a href="./probe::socket.aio_write.return.3stap.html">probe::socket.aio_write.return.3stap</a></li>
+<li><a href="./probe::socket.close.3stap.html">probe::socket.close.3stap</a></li>
+<li><a href="./probe::socket.close.return.3stap.html">probe::socket.close.return.3stap</a></li>
+<li><a href="./probe::socket.create.3stap.html">probe::socket.create.3stap</a></li>
+<li><a href="./probe::socket.create.return.3stap.html">probe::socket.create.return.3stap</a></li>
+<li><a href="./probe::socket.readv.3stap.html">probe::socket.readv.3stap</a></li>
+<li><a href="./probe::socket.readv.return.3stap.html">probe::socket.readv.return.3stap</a></li>
+<li><a href="./probe::socket.receive.3stap.html">probe::socket.receive.3stap</a></li>
+<li><a href="./probe::socket.recvmsg.3stap.html">probe::socket.recvmsg.3stap</a></li>
+<li><a href="./probe::socket.recvmsg.return.3stap.html">probe::socket.recvmsg.return.3stap</a></li>
+<li><a href="./probe::socket.send.3stap.html">probe::socket.send.3stap</a></li>
+<li><a href="./probe::socket.sendmsg.3stap.html">probe::socket.sendmsg.3stap</a></li>
+<li><a href="./probe::socket.sendmsg.return.3stap.html">probe::socket.sendmsg.return.3stap</a></li>
+<li><a href="./probe::socket.writev.3stap.html">probe::socket.writev.3stap</a></li>
+<li><a href="./probe::socket.writev.return.3stap.html">probe::socket.writev.return.3stap</a></li>
+<li><a href="./probe::softirq.entry.3stap.html">probe::softirq.entry.3stap</a></li>
+<li><a href="./probe::softirq.exit.3stap.html">probe::softirq.exit.3stap</a></li>
+<li><a href="./probe::stap.cache_add_mod.3stap.html">probe::stap.cache_add_mod.3stap</a></li>
+<li><a href="./probe::stap.cache_add_nss.3stap.html">probe::stap.cache_add_nss.3stap</a></li>
+<li><a href="./probe::stap.cache_add_src.3stap.html">probe::stap.cache_add_src.3stap</a></li>
+<li><a href="./probe::stap.cache_clean.3stap.html">probe::stap.cache_clean.3stap</a></li>
+<li><a href="./probe::stap.cache_get.3stap.html">probe::stap.cache_get.3stap</a></li>
+<li><a href="./probe::stapio.receive_control_message.3stap.html">probe::stapio.receive_control_message.3stap</a></li>
+<li><a href="./probe::stap.pass0.3stap.html">probe::stap.pass0.3stap</a></li>
+<li><a href="./probe::stap.pass0.end.3stap.html">probe::stap.pass0.end.3stap</a></li>
+<li><a href="./probe::stap.pass1a.3stap.html">probe::stap.pass1a.3stap</a></li>
+<li><a href="./probe::stap.pass1b.3stap.html">probe::stap.pass1b.3stap</a></li>
+<li><a href="./probe::stap.pass1.end.3stap.html">probe::stap.pass1.end.3stap</a></li>
+<li><a href="./probe::stap.pass2.3stap.html">probe::stap.pass2.3stap</a></li>
+<li><a href="./probe::stap.pass2.end.3stap.html">probe::stap.pass2.end.3stap</a></li>
+<li><a href="./probe::stap.pass3.3stap.html">probe::stap.pass3.3stap</a></li>
+<li><a href="./probe::stap.pass3.end.3stap.html">probe::stap.pass3.end.3stap</a></li>
+<li><a href="./probe::stap.pass4.3stap.html">probe::stap.pass4.3stap</a></li>
+<li><a href="./probe::stap.pass4.end.3stap.html">probe::stap.pass4.end.3stap</a></li>
+<li><a href="./probe::stap.pass5.3stap.html">probe::stap.pass5.3stap</a></li>
+<li><a href="./probe::stap.pass5.end.3stap.html">probe::stap.pass5.end.3stap</a></li>
+<li><a href="./probe::stap.pass6.3stap.html">probe::stap.pass6.3stap</a></li>
+<li><a href="./probe::stap.pass6.end.3stap.html">probe::stap.pass6.end.3stap</a></li>
+<li><a href="./probe::staprun.insert_module.3stap.html">probe::staprun.insert_module.3stap</a></li>
+<li><a href="./probe::staprun.remove_module.3stap.html">probe::staprun.remove_module.3stap</a></li>
+<li><a href="./probe::staprun.send_control_message.3stap.html">probe::staprun.send_control_message.3stap</a></li>
+<li><a href="./probe::stap.system.3stap.html">probe::stap.system.3stap</a></li>
+<li><a href="./probe::stap.system.return.3stap.html">probe::stap.system.return.3stap</a></li>
+<li><a href="./probe::stap.system.spawn.3stap.html">probe::stap.system.spawn.3stap</a></li>
+<li><a href="./probe::sunrpc.clnt.bind_new_program.3stap.html">probe::sunrpc.clnt.bind_new_program.3stap</a></li>
+<li><a href="./probe::sunrpc.clnt.call_async.3stap.html">probe::sunrpc.clnt.call_async.3stap</a></li>
+<li><a href="./probe::sunrpc.clnt.call_sync.3stap.html">probe::sunrpc.clnt.call_sync.3stap</a></li>
+<li><a href="./probe::sunrpc.clnt.clone_client.3stap.html">probe::sunrpc.clnt.clone_client.3stap</a></li>
+<li><a href="./probe::sunrpc.clnt.create_client.3stap.html">probe::sunrpc.clnt.create_client.3stap</a></li>
+<li><a href="./probe::sunrpc.clnt.restart_call.3stap.html">probe::sunrpc.clnt.restart_call.3stap</a></li>
+<li><a href="./probe::sunrpc.clnt.shutdown_client.3stap.html">probe::sunrpc.clnt.shutdown_client.3stap</a></li>
+<li><a href="./probe::sunrpc.sched.delay.3stap.html">probe::sunrpc.sched.delay.3stap</a></li>
+<li><a href="./probe::sunrpc.sched.execute.3stap.html">probe::sunrpc.sched.execute.3stap</a></li>
+<li><a href="./probe::sunrpc.sched.new_task.3stap.html">probe::sunrpc.sched.new_task.3stap</a></li>
+<li><a href="./probe::sunrpc.sched.release_task.3stap.html">probe::sunrpc.sched.release_task.3stap</a></li>
+<li><a href="./probe::sunrpc.svc.create.3stap.html">probe::sunrpc.svc.create.3stap</a></li>
+<li><a href="./probe::sunrpc.svc.destroy.3stap.html">probe::sunrpc.svc.destroy.3stap</a></li>
+<li><a href="./probe::sunrpc.svc.drop.3stap.html">probe::sunrpc.svc.drop.3stap</a></li>
+<li><a href="./probe::sunrpc.svc.process.3stap.html">probe::sunrpc.svc.process.3stap</a></li>
+<li><a href="./probe::sunrpc.svc.recv.3stap.html">probe::sunrpc.svc.recv.3stap</a></li>
+<li><a href="./probe::sunrpc.svc.register.3stap.html">probe::sunrpc.svc.register.3stap</a></li>
+<li><a href="./probe::sunrpc.svc.send.3stap.html">probe::sunrpc.svc.send.3stap</a></li>
+<li><a href="./probe::tcp.disconnect.3stap.html">probe::tcp.disconnect.3stap</a></li>
+<li><a href="./probe::tcp.disconnect.return.3stap.html">probe::tcp.disconnect.return.3stap</a></li>
+<li><a href="./probe::tcpmib.ActiveOpens.3stap.html">probe::tcpmib.ActiveOpens.3stap</a></li>
+<li><a href="./probe::tcpmib.AttemptFails.3stap.html">probe::tcpmib.AttemptFails.3stap</a></li>
+<li><a href="./probe::tcpmib.CurrEstab.3stap.html">probe::tcpmib.CurrEstab.3stap</a></li>
+<li><a href="./probe::tcpmib.EstabResets.3stap.html">probe::tcpmib.EstabResets.3stap</a></li>
+<li><a href="./probe::tcpmib.InSegs.3stap.html">probe::tcpmib.InSegs.3stap</a></li>
+<li><a href="./probe::tcpmib.OutRsts.3stap.html">probe::tcpmib.OutRsts.3stap</a></li>
+<li><a href="./probe::tcpmib.OutSegs.3stap.html">probe::tcpmib.OutSegs.3stap</a></li>
+<li><a href="./probe::tcpmib.PassiveOpens.3stap.html">probe::tcpmib.PassiveOpens.3stap</a></li>
+<li><a href="./probe::tcpmib.RetransSegs.3stap.html">probe::tcpmib.RetransSegs.3stap</a></li>
+<li><a href="./probe::tcp.receive.3stap.html">probe::tcp.receive.3stap</a></li>
+<li><a href="./probe::tcp.recvmsg.3stap.html">probe::tcp.recvmsg.3stap</a></li>
+<li><a href="./probe::tcp.recvmsg.return.3stap.html">probe::tcp.recvmsg.return.3stap</a></li>
+<li><a href="./probe::tcp.sendmsg.3stap.html">probe::tcp.sendmsg.3stap</a></li>
+<li><a href="./probe::tcp.sendmsg.return.3stap.html">probe::tcp.sendmsg.return.3stap</a></li>
+<li><a href="./probe::tcp.setsockopt.3stap.html">probe::tcp.setsockopt.3stap</a></li>
+<li><a href="./probe::tcp.setsockopt.return.3stap.html">probe::tcp.setsockopt.return.3stap</a></li>
+<li><a href="./probe::tty.init.3stap.html">probe::tty.init.3stap</a></li>
+<li><a href="./probe::tty.ioctl.3stap.html">probe::tty.ioctl.3stap</a></li>
+<li><a href="./probe::tty.open.3stap.html">probe::tty.open.3stap</a></li>
+<li><a href="./probe::tty.poll.3stap.html">probe::tty.poll.3stap</a></li>
+<li><a href="./probe::tty.read.3stap.html">probe::tty.read.3stap</a></li>
+<li><a href="./probe::tty.receive.3stap.html">probe::tty.receive.3stap</a></li>
+<li><a href="./probe::tty.register.3stap.html">probe::tty.register.3stap</a></li>
+<li><a href="./probe::tty.release.3stap.html">probe::tty.release.3stap</a></li>
+<li><a href="./probe::tty.resize.3stap.html">probe::tty.resize.3stap</a></li>
+<li><a href="./probe::tty.unregister.3stap.html">probe::tty.unregister.3stap</a></li>
+<li><a href="./probe::tty.write.3stap.html">probe::tty.write.3stap</a></li>
+<li><a href="./probe::udp.disconnect.3stap.html">probe::udp.disconnect.3stap</a></li>
+<li><a href="./probe::udp.disconnect.return.3stap.html">probe::udp.disconnect.return.3stap</a></li>
+<li><a href="./probe::udp.recvmsg.3stap.html">probe::udp.recvmsg.3stap</a></li>
+<li><a href="./probe::udp.recvmsg.return.3stap.html">probe::udp.recvmsg.return.3stap</a></li>
+<li><a href="./probe::udp.sendmsg.3stap.html">probe::udp.sendmsg.3stap</a></li>
+<li><a href="./probe::udp.sendmsg.return.3stap.html">probe::udp.sendmsg.return.3stap</a></li>
+<li><a href="./probe::vm.brk.3stap.html">probe::vm.brk.3stap</a></li>
+<li><a href="./probe::vm.kfree.3stap.html">probe::vm.kfree.3stap</a></li>
+<li><a href="./probe::vm.kmalloc.3stap.html">probe::vm.kmalloc.3stap</a></li>
+<li><a href="./probe::vm.kmalloc_node.3stap.html">probe::vm.kmalloc_node.3stap</a></li>
+<li><a href="./probe::vm.kmem_cache_alloc.3stap.html">probe::vm.kmem_cache_alloc.3stap</a></li>
+<li><a href="./probe::vm.kmem_cache_alloc_node.3stap.html">probe::vm.kmem_cache_alloc_node.3stap</a></li>
+<li><a href="./probe::vm.kmem_cache_free.3stap.html">probe::vm.kmem_cache_free.3stap</a></li>
+<li><a href="./probe::vm.mmap.3stap.html">probe::vm.mmap.3stap</a></li>
+<li><a href="./probe::vm.munmap.3stap.html">probe::vm.munmap.3stap</a></li>
+<li><a href="./probe::vm.oom_kill.3stap.html">probe::vm.oom_kill.3stap</a></li>
+<li><a href="./probe::vm.pagefault.3stap.html">probe::vm.pagefault.3stap</a></li>
+<li><a href="./probe::vm.pagefault.return.3stap.html">probe::vm.pagefault.return.3stap</a></li>
+<li><a href="./probe::vm.write_shared.3stap.html">probe::vm.write_shared.3stap</a></li>
+<li><a href="./probe::vm.write_shared_copy.3stap.html">probe::vm.write_shared_copy.3stap</a></li>
+<li><a href="./probe::workqueue.create.3stap.html">probe::workqueue.create.3stap</a></li>
+<li><a href="./probe::workqueue.destroy.3stap.html">probe::workqueue.destroy.3stap</a></li>
+<li><a href="./probe::workqueue.execute.3stap.html">probe::workqueue.execute.3stap</a></li>
+<li><a href="./probe::workqueue.insert.3stap.html">probe::workqueue.insert.3stap</a></li>
+<li><a href="./stapex.3stap.html">stapex.3stap</a></li>
+<li><a href="./stapfuncs.3stap.html">stapfuncs.3stap</a></li>
+<li><a href="./stapprobes.3stap.html">stapprobes.3stap</a></li>
+<li><a href="./stapvars.3stap.html">stapvars.3stap</a></li>
+<li><a href="./tapset::ansi.3stap.html">tapset::ansi.3stap</a></li>
+<li><a href="./tapset::atomic.3stap.html">tapset::atomic.3stap</a></li>
+<li><a href="./tapset::context.3stap.html">tapset::context.3stap</a></li>
+<li><a href="./tapset::context-caller.3stap.html">tapset::context-caller.3stap</a></li>
+<li><a href="./tapset::context-envvar.3stap.html">tapset::context-envvar.3stap</a></li>
+<li><a href="./tapset::context-symbols.3stap.html">tapset::context-symbols.3stap</a></li>
+<li><a href="./tapset::context-unwind.3stap.html">tapset::context-unwind.3stap</a></li>
+<li><a href="./tapset::conversions.3stap.html">tapset::conversions.3stap</a></li>
+<li><a href="./tapset::conversions-guru.3stap.html">tapset::conversions-guru.3stap</a></li>
+<li><a href="./tapset::ctime.3stap.html">tapset::ctime.3stap</a></li>
+<li><a href="./tapset::dentry.3stap.html">tapset::dentry.3stap</a></li>
+<li><a href="./tapset::dev.3stap.html">tapset::dev.3stap</a></li>
+<li><a href="./tapset::errno.3stap.html">tapset::errno.3stap</a></li>
+<li><a href="./tapset::guru-delay.3stap.html">tapset::guru-delay.3stap</a></li>
+<li><a href="./tapset::guru-signal.3stap.html">tapset::guru-signal.3stap</a></li>
+<li><a href="./tapset::indent.3stap.html">tapset::indent.3stap</a></li>
+<li><a href="./tapset::inet.3stap.html">tapset::inet.3stap</a></li>
+<li><a href="./tapset::inet_sock.3stap.html">tapset::inet_sock.3stap</a></li>
+<li><a href="./tapset::ioblock.3stap.html">tapset::ioblock.3stap</a></li>
+<li><a href="./tapset::ioscheduler.3stap.html">tapset::ioscheduler.3stap</a></li>
+<li><a href="./tapset::ip.3stap.html">tapset::ip.3stap</a></li>
+<li><a href="./tapset::ipmib.3stap.html">tapset::ipmib.3stap</a></li>
+<li><a href="./tapset::ipmib-filter-default.3stap.html">tapset::ipmib-filter-default.3stap</a></li>
+<li><a href="./tapset::irq.3stap.html">tapset::irq.3stap</a></li>
+<li><a href="./tapset::kprocess.3stap.html">tapset::kprocess.3stap</a></li>
+<li><a href="./tapset::linuxmib.3stap.html">tapset::linuxmib.3stap</a></li>
+<li><a href="./tapset::linuxmib-filter-default.3stap.html">tapset::linuxmib-filter-default.3stap</a></li>
+<li><a href="./tapset::loadavg.3stap.html">tapset::loadavg.3stap</a></li>
+<li><a href="./tapset::logging.3stap.html">tapset::logging.3stap</a></li>
+<li><a href="./tapset::memory.3stap.html">tapset::memory.3stap</a></li>
+<li><a href="./tapset::netfilter.3stap.html">tapset::netfilter.3stap</a></li>
+<li><a href="./tapset::networking.3stap.html">tapset::networking.3stap</a></li>
+<li><a href="./tapset::nfs.3stap.html">tapset::nfs.3stap</a></li>
+<li><a href="./tapset::nfsd.3stap.html">tapset::nfsd.3stap</a></li>
+<li><a href="./tapset::nfsderrno.3stap.html">tapset::nfsderrno.3stap</a></li>
+<li><a href="./tapset::nfs_proc.3stap.html">tapset::nfs_proc.3stap</a></li>
+<li><a href="./tapset::panic.3stap.html">tapset::panic.3stap</a></li>
+<li><a href="./tapset::pn.3stap.html">tapset::pn.3stap</a></li>
+<li><a href="./tapset::proc_mem.3stap.html">tapset::proc_mem.3stap</a></li>
+<li><a href="./tapset::pstrace.3stap.html">tapset::pstrace.3stap</a></li>
+<li><a href="./tapset::queue_stats.3stap.html">tapset::queue_stats.3stap</a></li>
+<li><a href="./tapset::random.3stap.html">tapset::random.3stap</a></li>
+<li><a href="./tapset::registers.3stap.html">tapset::registers.3stap</a></li>
+<li><a href="./tapset::rlimit.3stap.html">tapset::rlimit.3stap</a></li>
+<li><a href="./tapset::rpc.3stap.html">tapset::rpc.3stap</a></li>
+<li><a href="./tapset::scheduler.3stap.html">tapset::scheduler.3stap</a></li>
+<li><a href="./tapset::scsi.3stap.html">tapset::scsi.3stap</a></li>
+<li><a href="./tapset::signal.3stap.html">tapset::signal.3stap</a></li>
+<li><a href="./tapset::socket.3stap.html">tapset::socket.3stap</a></li>
+<li><a href="./tapset::speculative.3stap.html">tapset::speculative.3stap</a></li>
+<li><a href="./tapset::stap_staticmarkers.3stap.html">tapset::stap_staticmarkers.3stap</a></li>
+<li><a href="./tapset::stopwatch.3stap.html">tapset::stopwatch.3stap</a></li>
+<li><a href="./tapset::string.3stap.html">tapset::string.3stap</a></li>
+<li><a href="./tapset::system.3stap.html">tapset::system.3stap</a></li>
+<li><a href="./tapset::target_set.3stap.html">tapset::target_set.3stap</a></li>
+<li><a href="./tapset::task.3stap.html">tapset::task.3stap</a></li>
+<li><a href="./tapset::task_ancestry.3stap.html">tapset::task_ancestry.3stap</a></li>
+<li><a href="./tapset::task_time.3stap.html">tapset::task_time.3stap</a></li>
+<li><a href="./tapset::tcp.3stap.html">tapset::tcp.3stap</a></li>
+<li><a href="./tapset::tcpmib.3stap.html">tapset::tcpmib.3stap</a></li>
+<li><a href="./tapset::tcpmib-filter-default.3stap.html">tapset::tcpmib-filter-default.3stap</a></li>
+<li><a href="./tapset::timestamp.3stap.html">tapset::timestamp.3stap</a></li>
+<li><a href="./tapset::timestamp_gtod.3stap.html">tapset::timestamp_gtod.3stap</a></li>
+<li><a href="./tapset::timestamp_monotonic.3stap.html">tapset::timestamp_monotonic.3stap</a></li>
+<li><a href="./tapset::tokenize.3stap.html">tapset::tokenize.3stap</a></li>
+<li><a href="./tapset::tty.3stap.html">tapset::tty.3stap</a></li>
+<li><a href="./tapset::tzinfo.3stap.html">tapset::tzinfo.3stap</a></li>
+<li><a href="./tapset::ucontext.3stap.html">tapset::ucontext.3stap</a></li>
+<li><a href="./tapset::ucontext-symbols.3stap.html">tapset::ucontext-symbols.3stap</a></li>
+<li><a href="./tapset::ucontext-unwind.3stap.html">tapset::ucontext-unwind.3stap</a></li>
+<li><a href="./tapset::uconversions.3stap.html">tapset::uconversions.3stap</a></li>
+<li><a href="./tapset::udp.3stap.html">tapset::udp.3stap</a></li>
+<li><a href="./error::buildid.7stap.html">error::buildid.7stap</a></li>
+<li><a href="./error::dwarf.7stap.html">error::dwarf.7stap</a></li>
+<li><a href="./error::fault.7stap.html">error::fault.7stap</a></li>
+<li><a href="./error::inode-uprobes.7stap.html">error::inode-uprobes.7stap</a></li>
+<li><a href="./error::pass1.7stap.html">error::pass1.7stap</a></li>
+<li><a href="./error::pass2.7stap.html">error::pass2.7stap</a></li>
+<li><a href="./error::pass3.7stap.html">error::pass3.7stap</a></li>
+<li><a href="./error::pass4.7stap.html">error::pass4.7stap</a></li>
+<li><a href="./error::pass5.7stap.html">error::pass5.7stap</a></li>
+<li><a href="./error::process-tracking.7stap.html">error::process-tracking.7stap</a></li>
+<li><a href="./error::reporting.7stap.html">error::reporting.7stap</a></li>
+<li><a href="./error::sdt.7stap.html">error::sdt.7stap</a></li>
+<li><a href="./stappaths.7.html">stappaths.7</a></li>
+<li><a href="./warning::debuginfo.7stap.html">warning::debuginfo.7stap</a></li>
+<li><a href="./warning::symbols.7stap.html">warning::symbols.7stap</a></li>
+<li><a href="./stapdyn.8.html">stapdyn.8</a></li>
+<li><a href="./staprun.8.html">staprun.8</a></li>
+<li><a href="./stap-server.8.html">stap-server.8</a></li>
+<li><a href="./stapsh.8.html">stapsh.8</a></li>
+<li><a href="./systemtap.8.html">systemtap.8</a></li>
+</ul></body></html>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IOBLOCK\&.END</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IOBLOCK\&.END</H1>
+Section: IO Scheduler and block IO Taps (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ioblock.end - Fires whenever a block I/O transfer is complete.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ioblock.end
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+<P>
+
+<I>name</I>
+- name of the probe point
+<I>devname</I>
+- block device name
+<I>ino</I>
+- i-node number of the mapped file
+<I>bytes_done</I>
+- number of bytes transferred
+<I>sector</I>
+- beginning sector for the entire bio
+<I>flags</I>
+- see below BIO_UPTODATE 0 ok after I/O completion BIO_RW_BLOCK 1 RW_AHEAD set, and read/write would block BIO_EOF 2 out-out-bounds error BIO_SEG_VALID 3 nr_hw_seg valid BIO_CLONED 4 doesn't own data BIO_BOUNCED 5 bio is a bounce bio BIO_USER_MAPPED 6 contains user pages BIO_EOPNOTSUPP 7 not supported
+<I>error</I>
+- 0 on success
+<I>rw</I>
+- binary trace for read/write request
+<I>vcnt</I>
+- bio vector count which represents number of array element (page, offset, length) which makes up this I/O request
+<I>idx</I>
+- offset into the bio vector array
+<I>phys_segments</I>
+- number of segments in this bio after physical address coalescing is performed.
+<I>hw_segments</I>
+- number of segments after physical and DMA remapping hardware coalescing is performed
+<I>size</I>
+- total size in bytes
+<A NAME="lbAF"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process signals the transfer is done.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAF">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IOBLOCK\&.REQ</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IOBLOCK\&.REQ</H1>
+Section: IO Scheduler and block IO Taps (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ioblock.request - Fires whenever making a generic block I/O request.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ioblock.request
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+<P>
+
+<I>name</I>
+- name of the probe point
+<I>devname</I>
+- block device name
+<I>ino</I>
+- i-node number of the mapped file
+<I>sector</I>
+- beginning sector for the entire bio
+<I>flags</I>
+- see below BIO_UPTODATE 0 ok after I/O completion BIO_RW_BLOCK 1 RW_AHEAD set, and read/write would block BIO_EOF 2 out-out-bounds error BIO_SEG_VALID 3 nr_hw_seg valid BIO_CLONED 4 doesn't own data BIO_BOUNCED 5 bio is a bounce bio BIO_USER_MAPPED 6 contains user pages BIO_EOPNOTSUPP 7 not supported
+<P>
+
+<I>rw</I>
+- binary trace for read/write request
+<I>vcnt</I>
+- bio vector count which represents number of array element (page, offset, length) which make up this I/O request
+<I>idx</I>
+- offset into the bio vector array
+<I>phys_segments</I>
+- number of segments in this bio after physical address coalescing is performed
+<I>hw_segments</I>
+- number of segments after physical and DMA remapping hardware coalescing is performed
+<I>size</I>
+- total size in bytes
+<I>bdev</I>
+- target block device
+<I>bdev_contains</I>
+- points to the device object which contains the partition (when bio structure represents a partition)
+<I>p_start_sect</I>
+- points to the start sector of the partition structure of the device
+<A NAME="lbAF"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process makes block I/O request
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAF">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IOBLOCK_TRACE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IOBLOCK_TRACE</H1>
+Section: IO Scheduler and block IO Taps (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ioblock_trace.bounce - Fires whenever a buffer bounce is needed for at least one page of a block IO request.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ioblock_trace.bounce
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+<P>
+
+<I>name</I>
+- name of the probe point
+<I>q</I>
+- request queue on which this bio was queued.
+<I>devname</I>
+- device for which a buffer bounce was needed.
+<I>ino</I>
+- i-node number of the mapped file
+<I>bytes_done</I>
+- number of bytes transferred
+<I>sector</I>
+- beginning sector for the entire bio
+<I>flags</I>
+- see below BIO_UPTODATE 0 ok after I/O completion BIO_RW_BLOCK 1 RW_AHEAD set, and read/write would block BIO_EOF 2 out-out-bounds error BIO_SEG_VALID 3 nr_hw_seg valid BIO_CLONED 4 doesn't own data BIO_BOUNCED 5 bio is a bounce bio BIO_USER_MAPPED 6 contains user pages BIO_EOPNOTSUPP 7 not supported
+<I>rw</I>
+- binary trace for read/write request
+<I>vcnt</I>
+- bio vector count which represents number of array element (page, offset, length) which makes up this I/O request
+<I>idx</I>
+- offset into the bio vector array
+<I>phys_segments</I>
+- number of segments in this bio after physical address coalescing is performed.
+<I>size</I>
+- total size in bytes
+<I>bdev</I>
+- target block device
+<I>bdev_contains</I>
+- points to the device object which contains the partition (when bio structure represents a partition)
+<I>p_start_sect</I>
+- points to the start sector of the partition structure of the device
+<A NAME="lbAF"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process creating a block IO request.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAF">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IOBLOCK_TRACE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IOBLOCK_TRACE</H1>
+Section: IO Scheduler and block IO Taps (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ioblock_trace.end - Fires whenever a block I/O transfer is complete.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ioblock_trace.end
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+<P>
+
+<I>name</I>
+- name of the probe point
+<I>q</I>
+- request queue on which this bio was queued.
+<I>devname</I>
+- block device name
+<I>ino</I>
+- i-node number of the mapped file
+<I>bytes_done</I>
+- number of bytes transferred
+<I>sector</I>
+- beginning sector for the entire bio
+<I>flags</I>
+- see below BIO_UPTODATE 0 ok after I/O completion BIO_RW_BLOCK 1 RW_AHEAD set, and read/write would block BIO_EOF 2 out-out-bounds error BIO_SEG_VALID 3 nr_hw_seg valid BIO_CLONED 4 doesn't own data BIO_BOUNCED 5 bio is a bounce bio BIO_USER_MAPPED 6 contains user pages BIO_EOPNOTSUPP 7 not supported
+<P>
+
+<I>rw</I>
+- binary trace for read/write request
+<I>vcnt</I>
+- bio vector count which represents number of array element (page, offset, length) which makes up this I/O request
+<I>idx</I>
+- offset into the bio vector array
+<I>phys_segments</I>
+- number of segments in this bio after physical address coalescing is performed.
+<I>size</I>
+- total size in bytes
+<I>bdev</I>
+- target block device
+<I>bdev_contains</I>
+- points to the device object which contains the partition (when bio structure represents a partition)
+<I>p_start_sect</I>
+- points to the start sector of the partition structure of the device
+<A NAME="lbAF"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process signals the transfer is done.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAF">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IOBLOCK_TRACE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IOBLOCK_TRACE</H1>
+Section: IO Scheduler and block IO Taps (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ioblock_trace.request - Fires just as a generic block I/O request is created for a bio.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ioblock_trace.request
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+<P>
+
+<I>name</I>
+- name of the probe point
+<I>q</I>
+- request queue on which this bio was queued.
+<I>devname</I>
+- block device name
+<I>ino</I>
+- i-node number of the mapped file
+<I>bytes_done</I>
+- number of bytes transferred
+<I>sector</I>
+- beginning sector for the entire bio
+<I>flags</I>
+- see below BIO_UPTODATE 0 ok after I/O completion BIO_RW_BLOCK 1 RW_AHEAD set, and read/write would block BIO_EOF 2 out-out-bounds error BIO_SEG_VALID 3 nr_hw_seg valid BIO_CLONED 4 doesn't own data BIO_BOUNCED 5 bio is a bounce bio BIO_USER_MAPPED 6 contains user pages BIO_EOPNOTSUPP 7 not supported
+<P>
+
+<I>rw</I>
+- binary trace for read/write request
+<I>vcnt</I>
+- bio vector count which represents number of array element (page, offset, length) which make up this I/O request
+<I>idx</I>
+- offset into the bio vector array
+<I>phys_segments</I>
+- number of segments in this bio after physical address coalescing is performed.
+<I>size</I>
+- total size in bytes
+<I>bdev</I>
+- target block device
+<I>bdev_contains</I>
+- points to the device object which contains the partition (when bio structure represents a partition)
+<I>p_start_sect</I>
+- points to the start sector of the partition structure of the device
+<A NAME="lbAF"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process makes block I/O request
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAF">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IOSCHEDULER\&</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IOSCHEDULER\&</H1>
+Section: IO Scheduler and block IO Taps (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ioscheduler.elv_add_request - probe to indicate request is added to the request queue.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ioscheduler.elv_add_request
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>rq_flags</I>
+<DL COMPACT><DT><DD>
+Request flags.
+</DL>
+
+<P>
+
+<I>disk_minor</I>
+<DL COMPACT><DT><DD>
+Disk minor number of request.
+</DL>
+
+<P>
+
+<I>q</I>
+<DL COMPACT><DT><DD>
+Pointer to request queue.
+</DL>
+
+<P>
+
+<I>rq</I>
+<DL COMPACT><DT><DD>
+Address of request.
+</DL>
+
+<P>
+
+<I>elevator_name</I>
+<DL COMPACT><DT><DD>
+The type of I/O elevator currently enabled.
+</DL>
+
+<P>
+
+<I>disk_major</I>
+<DL COMPACT><DT><DD>
+Disk major no of request.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IOSCHEDULER\&</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IOSCHEDULER\&</H1>
+Section: IO Scheduler and block IO Taps (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ioscheduler.elv_add_request.kp - kprobe based probe to indicate that a request was added to the request queue
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ioscheduler.elv_add_request.kp
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>q</I>
+<DL COMPACT><DT><DD>
+pointer to request queue
+</DL>
+
+<P>
+
+<I>rq</I>
+<DL COMPACT><DT><DD>
+Address of the request
+</DL>
+
+<P>
+
+<I>disk_minor</I>
+<DL COMPACT><DT><DD>
+Disk minor number of the request
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>disk_major</I>
+<DL COMPACT><DT><DD>
+Disk major number of the request
+</DL>
+
+<P>
+
+<I>elevator_name</I>
+<DL COMPACT><DT><DD>
+The type of I/O elevator currently enabled
+</DL>
+
+<P>
+
+<I>rq_flags</I>
+<DL COMPACT><DT><DD>
+Request flags
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IOSCHEDULER\&</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IOSCHEDULER\&</H1>
+Section: IO Scheduler and block IO Taps (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ioscheduler.elv_add_request.tp - tracepoint based probe to indicate a request is added to the request queue.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ioscheduler.elv_add_request.tp
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>rq_flags</I>
+<DL COMPACT><DT><DD>
+Request flags.
+</DL>
+
+<P>
+
+<I>rq</I>
+<DL COMPACT><DT><DD>
+Address of request.
+</DL>
+
+<P>
+
+<I>q</I>
+<DL COMPACT><DT><DD>
+Pointer to request queue.
+</DL>
+
+<P>
+
+<I>disk_minor</I>
+<DL COMPACT><DT><DD>
+Disk minor number of request.
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>disk_major</I>
+<DL COMPACT><DT><DD>
+Disk major no of request.
+</DL>
+
+<P>
+
+<I>elevator_name</I>
+<DL COMPACT><DT><DD>
+The type of I/O elevator currently enabled.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IOSCHEDULER\&</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IOSCHEDULER\&</H1>
+Section: IO Scheduler and block IO Taps (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ioscheduler.elv_completed_request - Fires when a request is completed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ioscheduler.elv_completed_request
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>disk_major</I>
+<DL COMPACT><DT><DD>
+Disk major number of the request
+</DL>
+
+<P>
+
+<I>elevator_name</I>
+<DL COMPACT><DT><DD>
+The type of I/O elevator currently enabled
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>disk_minor</I>
+<DL COMPACT><DT><DD>
+Disk minor number of the request
+</DL>
+
+<P>
+
+<I>rq</I>
+<DL COMPACT><DT><DD>
+Address of the request
+</DL>
+
+<P>
+
+<I>rq_flags</I>
+<DL COMPACT><DT><DD>
+Request flags
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IOSCHEDULER\&</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IOSCHEDULER\&</H1>
+Section: IO Scheduler and block IO Taps (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ioscheduler.elv_next_request - Fires when a request is retrieved from the request queue
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ioscheduler.elv_next_request
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>elevator_name</I>
+<DL COMPACT><DT><DD>
+The type of I/O elevator currently enabled
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IOSCHEDULER\&</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IOSCHEDULER\&</H1>
+Section: IO Scheduler and block IO Taps (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ioscheduler.elv_next_request.return - Fires when a request retrieval issues a return signal
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ioscheduler.elv_next_request.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>rq_flags</I>
+<DL COMPACT><DT><DD>
+Request flags
+</DL>
+
+<P>
+
+<I>disk_major</I>
+<DL COMPACT><DT><DD>
+Disk major number of the request
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>disk_minor</I>
+<DL COMPACT><DT><DD>
+Disk minor number of the request
+</DL>
+
+<P>
+
+<I>rq</I>
+<DL COMPACT><DT><DD>
+Address of the request
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IOSCHEDULER_T</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IOSCHEDULER_T</H1>
+Section: IO Scheduler and block IO Taps (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ioscheduler_trace.elv_abort_request - Fires when a request is aborted.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ioscheduler_trace.elv_abort_request
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>disk_minor</I>
+<DL COMPACT><DT><DD>
+Disk minor number of request.
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>rq</I>
+<DL COMPACT><DT><DD>
+Address of request.
+</DL>
+
+<P>
+
+<I>disk_major</I>
+<DL COMPACT><DT><DD>
+Disk major no of request.
+</DL>
+
+<P>
+
+<I>elevator_name</I>
+<DL COMPACT><DT><DD>
+The type of I/O elevator currently enabled.
+</DL>
+
+<P>
+
+<I>rq_flags</I>
+<DL COMPACT><DT><DD>
+Request flags.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IOSCHEDULER_T</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IOSCHEDULER_T</H1>
+Section: IO Scheduler and block IO Taps (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ioscheduler_trace.elv_completed_request - Fires when a request is
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ioscheduler_trace.elv_completed_request
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>rq</I>
+<DL COMPACT><DT><DD>
+Address of request.
+</DL>
+
+<P>
+
+<I>disk_minor</I>
+<DL COMPACT><DT><DD>
+Disk minor number of request.
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>disk_major</I>
+<DL COMPACT><DT><DD>
+Disk major no of request.
+</DL>
+
+<P>
+
+<I>elevator_name</I>
+<DL COMPACT><DT><DD>
+The type of I/O elevator currently enabled.
+</DL>
+
+<P>
+
+<I>rq_flags</I>
+<DL COMPACT><DT><DD>
+Request flags.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+completed.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IOSCHEDULER_T</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IOSCHEDULER_T</H1>
+Section: IO Scheduler and block IO Taps (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ioscheduler_trace.elv_issue_request - Fires when a request is
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ioscheduler_trace.elv_issue_request
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>rq</I>
+<DL COMPACT><DT><DD>
+Address of request.
+</DL>
+
+<P>
+
+<I>disk_minor</I>
+<DL COMPACT><DT><DD>
+Disk minor number of request.
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>disk_major</I>
+<DL COMPACT><DT><DD>
+Disk major no of request.
+</DL>
+
+<P>
+
+<I>elevator_name</I>
+<DL COMPACT><DT><DD>
+The type of I/O elevator currently enabled.
+</DL>
+
+<P>
+
+<I>rq_flags</I>
+<DL COMPACT><DT><DD>
+Request flags.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+scheduled.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IOSCHEDULER_T</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IOSCHEDULER_T</H1>
+Section: IO Scheduler and block IO Taps (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ioscheduler_trace.elv_requeue_request - Fires when a request is
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ioscheduler_trace.elv_requeue_request
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>disk_major</I>
+<DL COMPACT><DT><DD>
+Disk major no of request.
+</DL>
+
+<P>
+
+<I>elevator_name</I>
+<DL COMPACT><DT><DD>
+The type of I/O elevator currently enabled.
+</DL>
+
+<P>
+
+<I>rq</I>
+<DL COMPACT><DT><DD>
+Address of request.
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>disk_minor</I>
+<DL COMPACT><DT><DD>
+Disk minor number of request.
+</DL>
+
+<P>
+
+<I>rq_flags</I>
+<DL COMPACT><DT><DD>
+Request flags.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+put back on the queue, when the hadware cannot accept more requests.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IOSCHEDULER_T</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IOSCHEDULER_T</H1>
+Section: IO Scheduler and block IO Taps (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ioscheduler_trace.plug - Fires when a request queue is plugged;
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ioscheduler_trace.plug
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>rq_queue</I>
+<DL COMPACT><DT><DD>
+request queue
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+ie, requests in the queue cannot be serviced by block driver.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IOSCHEDULER_T</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IOSCHEDULER_T</H1>
+Section: IO Scheduler and block IO Taps (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ioscheduler_trace.unplug_io - Fires when a request queue is unplugged;
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ioscheduler_trace.unplug_io
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>rq_queue</I>
+<DL COMPACT><DT><DD>
+request queue
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Either, when number of pending requests in the queue exceeds threshold or, upon expiration of timer that was activated when queue was plugged.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IOSCHEDULER_T</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IOSCHEDULER_T</H1>
+Section: IO Scheduler and block IO Taps (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ioscheduler_trace.unplug_timer - Fires when unplug timer associated
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ioscheduler_trace.unplug_timer
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>rq_queue</I>
+<DL COMPACT><DT><DD>
+request queue
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+with a request queue expires.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IPMIB\&.FORWD</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IPMIB\&.FORWD</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ipmib.ForwDatagrams - Count forwarded packet
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ipmib.ForwDatagrams
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be added to the counter (default value of 1)
+</DL>
+
+<P>
+
+<I>skb</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sk_buff being acted on
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>ipmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>ForwDatagrams</I>
+(equivalent to SNMP's MIB IPSTATS_MIB_OUTFORWDATAGRAMS)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IPMIB\&.FRAGF</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IPMIB\&.FRAGF</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ipmib.FragFails - Count datagram fragmented unsuccessfully
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ipmib.FragFails
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+Value to be added to the counter (default value of 1)
+</DL>
+
+<P>
+
+<I>skb</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sk_buff being acted on
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>ipmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>FragFails</I>
+(equivalent to SNMP's MIB IPSTATS_MIB_FRAGFAILS)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IPMIB\&.FRAGO</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IPMIB\&.FRAGO</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ipmib.FragOKs - Count datagram fragmented successfully
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ipmib.FragOKs
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be added to the counter (default value of 1)
+</DL>
+
+<P>
+
+<I>skb</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sk_buff being acted on
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>ipmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>FragOKs</I>
+(equivalent to SNMP's MIB IPSTATS_MIB_FRAGOKS)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IPMIB\&.INADD</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IPMIB\&.INADD</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ipmib.InAddrErrors - Count arriving packets with an incorrect address
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ipmib.InAddrErrors
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>skb</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sk_buff being acted on
+</DL>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be added to the counter (default value of 1)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>ipmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>InAddrErrors</I>
+(equivalent to SNMP's MIB IPSTATS_MIB_INADDRERRORS)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IPMIB\&.INDIS</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IPMIB\&.INDIS</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ipmib.InDiscards - Count discarded inbound packets
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ipmib.InDiscards
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be added to the counter (default value of 1)
+</DL>
+
+<P>
+
+<I>skb</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sk_buff being acted on
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>ipmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>InDiscards</I>
+(equivalent to SNMP's MIB STATS_MIB_INDISCARDS)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IPMIB\&.INNOR</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IPMIB\&.INNOR</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ipmib.InNoRoutes - Count an arriving packet with no matching socket
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ipmib.InNoRoutes
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be added to the counter (default value of 1)
+</DL>
+
+<P>
+
+<I>skb</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sk_buff being acted on
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>ipmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>InNoRoutes</I>
+(equivalent to SNMP's MIB IPSTATS_MIB_INNOROUTES)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IPMIB\&.INREC</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IPMIB\&.INREC</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ipmib.InReceives - Count an arriving packet
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ipmib.InReceives
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be added to the counter (default value of 1)
+</DL>
+
+<P>
+
+<I>skb</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sk_buff being acted on
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>ipmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>InReceives</I>
+(equivalent to SNMP's MIB IPSTATS_MIB_INRECEIVES)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IPMIB\&.INUNK</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IPMIB\&.INUNK</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ipmib.InUnknownProtos - Count arriving packets with an unbound proto
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ipmib.InUnknownProtos
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be added to the counter (default value of 1)
+</DL>
+
+<P>
+
+<I>skb</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sk_buff being acted on
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>ipmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>InUnknownProtos</I>
+(equivalent to SNMP's MIB IPSTATS_MIB_INUNKNOWNPROTOS)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IPMIB\&.OUTRE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IPMIB\&.OUTRE</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ipmib.OutRequests - Count a request to send a packet
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ipmib.OutRequests
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>skb</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sk_buff being acted on
+</DL>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be added to the counter (default value of 1)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>ipmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>OutRequests</I>
+(equivalent to SNMP's MIB IPSTATS_MIB_OUTREQUESTS)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IPMIB\&.REASM</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IPMIB\&.REASM</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ipmib.ReasmReqds - Count number of packet fragments reassembly requests
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ipmib.ReasmReqds
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be added to the counter (default value of 1)
+</DL>
+
+<P>
+
+<I>skb</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sk_buff being acted on
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>ipmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>ReasmReqds</I>
+(equivalent to SNMP's MIB IPSTATS_MIB_REASMREQDS)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IPMIB\&.REASM</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IPMIB\&.REASM</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::ipmib.ReasmTimeout - Count Reassembly Timeouts
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+ipmib.ReasmTimeout
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>skb</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sk_buff being acted on
+</DL>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be added to the counter (default value of 1)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>ipmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>ReasmTimeout</I>
+(equivalent to SNMP's MIB IPSTATS_MIB_REASMTIMEOUT)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IRQ_HANDLER\&</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IRQ_HANDLER\&</H1>
+Section: Interrupt Request (IRQ) Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::irq_handler.entry - Execution of interrupt handler starting
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+irq_handler.entry
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>action</I>
+<DL COMPACT><DT><DD>
+struct irqaction* for this interrupt num
+</DL>
+
+<P>
+
+<I>thread_fn</I>
+<DL COMPACT><DT><DD>
+interrupt handler function for threaded interrupts
+</DL>
+
+<P>
+
+<I>next_irqaction</I>
+<DL COMPACT><DT><DD>
+pointer to next irqaction for shared interrupts
+</DL>
+
+<P>
+
+<I>dir</I>
+<DL COMPACT><DT><DD>
+pointer to the proc/irq/NN/name entry
+</DL>
+
+<P>
+
+<I>thread</I>
+<DL COMPACT><DT><DD>
+thread pointer for threaded interrupts
+</DL>
+
+<P>
+
+<I>dev_name</I>
+<DL COMPACT><DT><DD>
+name of device
+</DL>
+
+<P>
+
+<I>thread_flags</I>
+<DL COMPACT><DT><DD>
+Flags related to thread
+</DL>
+
+<P>
+
+<I>flags_str</I>
+<DL COMPACT><DT><DD>
+symbolic string representation of IRQ flags
+</DL>
+
+<P>
+
+<I>dev_id</I>
+<DL COMPACT><DT><DD>
+Cookie to identify device
+</DL>
+
+<P>
+
+<I>irq</I>
+<DL COMPACT><DT><DD>
+irq number
+</DL>
+
+<P>
+
+<I>handler</I>
+<DL COMPACT><DT><DD>
+interrupt handler function
+</DL>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+Flags for IRQ handler
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::IRQ_HANDLER\&</TITLE>
+</HEAD><BODY>
+<H1>PROBE::IRQ_HANDLER\&</H1>
+Section: Interrupt Request (IRQ) Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::irq_handler.exit - Execution of interrupt handler completed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+irq_handler.exit
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>thread</I>
+<DL COMPACT><DT><DD>
+thread pointer for threaded interrupts
+</DL>
+
+<P>
+
+<I>dev_name</I>
+<DL COMPACT><DT><DD>
+name of device
+</DL>
+
+<P>
+
+<I>ret</I>
+<DL COMPACT><DT><DD>
+return value of the handler
+</DL>
+
+<P>
+
+<I>action</I>
+<DL COMPACT><DT><DD>
+struct irqaction*
+</DL>
+
+<P>
+
+<I>thread_fn</I>
+<DL COMPACT><DT><DD>
+interrupt handler function for threaded interrupts
+</DL>
+
+<P>
+
+<I>dir</I>
+<DL COMPACT><DT><DD>
+pointer to the proc/irq/NN/name entry
+</DL>
+
+<P>
+
+<I>next_irqaction</I>
+<DL COMPACT><DT><DD>
+pointer to next irqaction for shared interrupts
+</DL>
+
+<P>
+
+<I>handler</I>
+<DL COMPACT><DT><DD>
+interrupt handler function that was executed
+</DL>
+
+<P>
+
+<I>dev_id</I>
+<DL COMPACT><DT><DD>
+Cookie to identify device
+</DL>
+
+<P>
+
+<I>irq</I>
+<DL COMPACT><DT><DD>
+interrupt number
+</DL>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+flags for IRQ handler
+</DL>
+
+<P>
+
+<I>thread_flags</I>
+<DL COMPACT><DT><DD>
+Flags related to thread
+</DL>
+
+<P>
+
+<I>flags_str</I>
+<DL COMPACT><DT><DD>
+symbolic string representation of IRQ flags
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::KPROCESS\&.CR</TITLE>
+</HEAD><BODY>
+<H1>PROBE::KPROCESS\&.CR</H1>
+Section: Kernel Process Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::kprocess.create - Fires whenever a new process or thread is successfully created
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+kprocess.create
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>new_tid</I>
+<DL COMPACT><DT><DD>
+The TID of the newly created task
+</DL>
+
+<P>
+
+<I>new_pid</I>
+<DL COMPACT><DT><DD>
+The PID of the newly created process
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+Parent of the created process.
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires whenever a new process is successfully created, either as a result of fork (or one of its syscall variants), or a new kernel thread.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::KPROCESS\&.EX</TITLE>
+</HEAD><BODY>
+<H1>PROBE::KPROCESS\&.EX</H1>
+Section: Kernel Process Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::kprocess.exec - Attempt to exec to a new program
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+kprocess.exec
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>argstr</I>
+<DL COMPACT><DT><DD>
+A string containing the filename followed by the arguments to pass, excluding 0th arg (SystemTap v2.5+)
+</DL>
+
+<P>
+
+<I>filename</I>
+<DL COMPACT><DT><DD>
+The path to the new executable
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the system call ("execve") (SystemTap v2.5+)
+</DL>
+
+<P>
+
+<I>args</I>
+<DL COMPACT><DT><DD>
+The arguments to pass to the new executable, including the 0th arg (SystemTap v2.5+)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The caller of exec.
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires whenever a process attempts to exec to a new program. Aliased to the syscall.execve probe in SystemTap v2.5+.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::KPROCESS\&.EX</TITLE>
+</HEAD><BODY>
+<H1>PROBE::KPROCESS\&.EX</H1>
+Section: Kernel Process Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::kprocess.exec_complete - Return from exec to a new program
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+kprocess.exec_complete
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>success</I>
+<DL COMPACT><DT><DD>
+A boolean indicating whether the exec was successful
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the system call ("execve") (SystemTap v2.5+)
+</DL>
+
+<P>
+
+<I>retstr</I>
+<DL COMPACT><DT><DD>
+A string representation of errno (SystemTap v2.5+)
+</DL>
+
+<P>
+
+<I>errno</I>
+<DL COMPACT><DT><DD>
+The error number resulting from the exec
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+On success, the context of the new executable. On failure, remains in the context of the caller.
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires at the completion of an exec call. Aliased to the syscall.execve.return probe in SystemTap v2.5+.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::KPROCESS\&.EX</TITLE>
+</HEAD><BODY>
+<H1>PROBE::KPROCESS\&.EX</H1>
+Section: Kernel Process Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::kprocess.exit - Exit from process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+kprocess.exit
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>code</I>
+<DL COMPACT><DT><DD>
+The exit code of the process
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process which is terminating.
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires when a process terminates. This will always be followed by a kprocess.release, though the latter may be delayed if the process waits in a zombie state.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::KPROCESS\&.RE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::KPROCESS\&.RE</H1>
+Section: Kernel Process Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::kprocess.release - Process released
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+kprocess.release
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>released_pid</I>
+<DL COMPACT><DT><DD>
+PID of the process being released
+</DL>
+
+<P>
+
+<I>pid</I>
+<DL COMPACT><DT><DD>
+Same as
+<I>released_pid</I>
+for compatibility (deprecated)
+</DL>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+A task handle to the process being released
+</DL>
+
+<P>
+
+<I>released_tid</I>
+<DL COMPACT><DT><DD>
+TID of the task being released
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The context of the parent, if it wanted notification of this process' termination, else the context of the process itself.
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires when a process is released from the kernel. This always follows a kprocess.exit, though it may be delayed somewhat if the process waits in a zombie state.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::KPROCESS\&.ST</TITLE>
+</HEAD><BODY>
+<H1>PROBE::KPROCESS\&.ST</H1>
+Section: Kernel Process Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::kprocess.start - Starting new process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+kprocess.start
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+None
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+Newly created process.
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires immediately before a new process begins execution.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::LINUXMIB\&.DE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::LINUXMIB\&.DE</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::linuxmib.DelayedACKs - Count of delayed acks
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+linuxmib.DelayedACKs
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+Value to be added to the counter (default value of 1)
+</DL>
+
+<P>
+
+<I>sk</I>
+<DL COMPACT><DT><DD>
+Pointer to the struct sock being acted on
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>linuxmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>DelayedACKs</I>
+(equivalent to SNMP's MIB LINUX_MIB_DELAYEDACKS)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::LINUXMIB\&.LI</TITLE>
+</HEAD><BODY>
+<H1>PROBE::LINUXMIB\&.LI</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::linuxmib.ListenDrops - Count of times conn request that were dropped
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+linuxmib.ListenDrops
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>sk</I>
+<DL COMPACT><DT><DD>
+Pointer to the struct sock being acted on
+</DL>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+Value to be added to the counter (default value of 1)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>linuxmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>ListenDrops</I>
+(equivalent to SNMP's MIB LINUX_MIB_LISTENDROPS)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::LINUXMIB\&.LI</TITLE>
+</HEAD><BODY>
+<H1>PROBE::LINUXMIB\&.LI</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::linuxmib.ListenOverflows - Count of times a listen queue overflowed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+linuxmib.ListenOverflows
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>sk</I>
+<DL COMPACT><DT><DD>
+Pointer to the struct sock being acted on
+</DL>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+Value to be added to the counter (default value of 1)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>linuxmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>ListenOverflows</I>
+(equivalent to SNMP's MIB LINUX_MIB_LISTENOVERFLOWS)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::LINUXMIB\&.TC</TITLE>
+</HEAD><BODY>
+<H1>PROBE::LINUXMIB\&.TC</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::linuxmib.TCPMemoryPressures - Count of times memory pressure was used
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+linuxmib.TCPMemoryPressures
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+Value to be added to the counter (default value of 1)
+</DL>
+
+<P>
+
+<I>sk</I>
+<DL COMPACT><DT><DD>
+Pointer to the struct sock being acted on
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>linuxmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>TCPMemoryPressures</I>
+(equivalent to SNMP's MIB LINUX_MIB_TCPMEMORYPRESSURES)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETDEV\&.CHAN</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETDEV\&.CHAN</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netdev.change_mac - Called when the netdev_name has the MAC changed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netdev.change_mac
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>new_mac</I>
+<DL COMPACT><DT><DD>
+The new MAC address
+</DL>
+
+<P>
+
+<I>dev_name</I>
+<DL COMPACT><DT><DD>
+The device that will have the MAC changed
+</DL>
+
+<P>
+
+<I>old_mac</I>
+<DL COMPACT><DT><DD>
+The current MAC address
+</DL>
+
+<P>
+
+<I>mac_len</I>
+<DL COMPACT><DT><DD>
+The MAC length
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETDEV\&.CHAN</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETDEV\&.CHAN</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netdev.change_mtu - Called when the netdev MTU is changed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netdev.change_mtu
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>old_mtu</I>
+<DL COMPACT><DT><DD>
+The current MTU
+</DL>
+
+<P>
+
+<I>new_mtu</I>
+<DL COMPACT><DT><DD>
+The new MTU
+</DL>
+
+<P>
+
+<I>dev_name</I>
+<DL COMPACT><DT><DD>
+The device that will have the MTU changed
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETDEV\&.CHAN</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETDEV\&.CHAN</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netdev.change_rx_flag - Called when the device RX flag will be changed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netdev.change_rx_flag
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+The new flags
+</DL>
+
+<P>
+
+<I>dev_name</I>
+<DL COMPACT><DT><DD>
+The device that will be changed
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETDEV\&.CLOS</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETDEV\&.CLOS</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netdev.close - Called when the device is closed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netdev.close
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>dev_name</I>
+<DL COMPACT><DT><DD>
+The device that is going to be closed
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETDEV\&.GET_</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETDEV\&.GET_</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netdev.get_stats - Called when someone asks the device statistics
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netdev.get_stats
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>dev_name</I>
+<DL COMPACT><DT><DD>
+The device that is going to provide the statistics
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETDEV\&.HARD</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETDEV\&.HARD</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netdev.hard_transmit - Called when the devices is going to TX (hard)
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netdev.hard_transmit
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+The protocol used in the transmission
+</DL>
+
+<P>
+
+<I>dev_name</I>
+<DL COMPACT><DT><DD>
+The device scheduled to transmit
+</DL>
+
+<P>
+
+<I>truesize</I>
+<DL COMPACT><DT><DD>
+The size of the data to be transmitted.
+</DL>
+
+<P>
+
+<I>length</I>
+<DL COMPACT><DT><DD>
+The length of the transmit buffer.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETDEV\&.IOCT</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETDEV\&.IOCT</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netdev.ioctl - Called when the device suffers an IOCTL
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netdev.ioctl
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>arg</I>
+<DL COMPACT><DT><DD>
+The IOCTL argument (usually the netdev interface)
+</DL>
+
+<P>
+
+<I>cmd</I>
+<DL COMPACT><DT><DD>
+The IOCTL request
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETDEV\&.OPEN</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETDEV\&.OPEN</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netdev.open - Called when the device is opened
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netdev.open
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>dev_name</I>
+<DL COMPACT><DT><DD>
+The device that is going to be opened
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETDEV\&.RECE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETDEV\&.RECE</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netdev.receive - Data received from network device.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netdev.receive
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>dev_name</I>
+<DL COMPACT><DT><DD>
+The name of the device. e.g: eth0, ath1.
+</DL>
+
+<P>
+
+<I>length</I>
+<DL COMPACT><DT><DD>
+The length of the receiving buffer.
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Protocol of received packet.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETDEV\&.REGI</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETDEV\&.REGI</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netdev.register - Called when the device is registered
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netdev.register
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>dev_name</I>
+<DL COMPACT><DT><DD>
+The device that is going to be registered
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETDEV\&.RX</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETDEV\&.RX</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netdev.rx - Called when the device is going to receive a packet
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netdev.rx
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>dev_name</I>
+<DL COMPACT><DT><DD>
+The device received the packet
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+The packet protocol
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETDEV\&.SET_</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETDEV\&.SET_</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netdev.set_promiscuity - Called when the device enters/leaves promiscuity
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netdev.set_promiscuity
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>enable</I>
+<DL COMPACT><DT><DD>
+If the device is entering promiscuity mode
+</DL>
+
+<P>
+
+<I>dev_name</I>
+<DL COMPACT><DT><DD>
+The device that is entering/leaving promiscuity mode
+</DL>
+
+<P>
+
+<I>inc</I>
+<DL COMPACT><DT><DD>
+Count the number of promiscuity openers
+</DL>
+
+<P>
+
+<I>disable</I>
+<DL COMPACT><DT><DD>
+If the device is leaving promiscuity mode
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETDEV\&.TRAN</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETDEV\&.TRAN</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netdev.transmit - Network device transmitting buffer
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netdev.transmit
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>length</I>
+<DL COMPACT><DT><DD>
+The length of the transmit buffer.
+</DL>
+
+<P>
+
+<I>truesize</I>
+<DL COMPACT><DT><DD>
+The size of the data to be transmitted.
+</DL>
+
+<P>
+
+<I>dev_name</I>
+<DL COMPACT><DT><DD>
+The name of the device. e.g: eth0, ath1.
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+The protocol of this packet(defined in include/linux/if_ether.h).
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETDEV\&.UNRE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETDEV\&.UNRE</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netdev.unregister - Called when the device is being unregistered
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netdev.unregister
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>dev_name</I>
+<DL COMPACT><DT><DD>
+The device that is going to be unregistered
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETFILTER\&.A</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETFILTER\&.A</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netfilter.arp.forward - - Called for each ARP packet to be forwarded
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netfilter.arp.forward
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>ar_sha</I>
+<DL COMPACT><DT><DD>
+Ethernet+IP only (ar_pro==0x800): source hardware (MAC) address
+</DL>
+
+<P>
+
+<I>ar_pro</I>
+<DL COMPACT><DT><DD>
+Format of protocol address
+</DL>
+
+<P>
+
+<I>outdev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet will be routed to (if known)
+</DL>
+
+<P>
+
+<I>nf_stop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stop' verdict
+</DL>
+
+<P>
+
+<I>ar_pln</I>
+<DL COMPACT><DT><DD>
+Length of protocol address
+</DL>
+
+<P>
+
+<I>nf_stolen</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stolen' verdict
+</DL>
+
+<P>
+
+<I>ar_tip</I>
+<DL COMPACT><DT><DD>
+Ethernet+IP only (ar_pro==0x800): target IP address
+</DL>
+
+<P>
+
+<I>pf</I>
+<DL COMPACT><DT><DD>
+Protocol family -- always
+"arp"
+</DL>
+
+<P>
+
+<I>nf_repeat</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'repeat' verdict
+</DL>
+
+<P>
+
+<I>ar_op</I>
+<DL COMPACT><DT><DD>
+ARP opcode (command)
+</DL>
+
+<P>
+
+<I>indev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet was received on (if known)
+</DL>
+
+<P>
+
+<I>nf_accept</I>
+<DL COMPACT><DT><DD>
+Constant used to signify an 'accept' verdict
+</DL>
+
+<P>
+
+<I>nf_queue</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'queue' verdict
+</DL>
+
+<P>
+
+<I>outdev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing output device, 0 if unknown
+</DL>
+
+<P>
+
+<I>ar_hrd</I>
+<DL COMPACT><DT><DD>
+Format of hardware address
+</DL>
+
+<P>
+
+<I>ar_tha</I>
+<DL COMPACT><DT><DD>
+Ethernet+IP only (ar_pro==0x800): target hardware (MAC) address
+</DL>
+
+<P>
+
+<I>ar_data</I>
+<DL COMPACT><DT><DD>
+Address of ARP packet data region (after the header)
+</DL>
+
+<P>
+
+<I>length</I>
+<DL COMPACT><DT><DD>
+The length of the packet buffer contents, in bytes
+</DL>
+
+<P>
+
+<I>indev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing input device, 0 if unknown
+</DL>
+
+<P>
+
+<I>ar_sip</I>
+<DL COMPACT><DT><DD>
+Ethernet+IP only (ar_pro==0x800): source IP address
+</DL>
+
+<P>
+
+<I>arphdr</I>
+<DL COMPACT><DT><DD>
+Address of ARP header
+</DL>
+
+<P>
+
+<I>nf_drop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'drop' verdict
+</DL>
+
+<P>
+
+<I>ar_hln</I>
+<DL COMPACT><DT><DD>
+Length of hardware address
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETFILTER\&.A</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETFILTER\&.A</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netfilter.arp.in - - Called for each incoming ARP packet
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netfilter.arp.in
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>nf_stolen</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stolen' verdict
+</DL>
+
+<P>
+
+<I>ar_pln</I>
+<DL COMPACT><DT><DD>
+Length of protocol address
+</DL>
+
+<P>
+
+<I>ar_tip</I>
+<DL COMPACT><DT><DD>
+Ethernet+IP only (ar_pro==0x800): target IP address
+</DL>
+
+<P>
+
+<I>outdev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet will be routed to (if known)
+</DL>
+
+<P>
+
+<I>nf_stop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stop' verdict
+</DL>
+
+<P>
+
+<I>ar_sha</I>
+<DL COMPACT><DT><DD>
+Ethernet+IP only (ar_pro==0x800): source hardware (MAC) address
+</DL>
+
+<P>
+
+<I>ar_pro</I>
+<DL COMPACT><DT><DD>
+Format of protocol address
+</DL>
+
+<P>
+
+<I>ar_tha</I>
+<DL COMPACT><DT><DD>
+Ethernet+IP only (ar_pro==0x800): target hardware (MAC) address
+</DL>
+
+<P>
+
+<I>nf_repeat</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'repeat' verdict
+</DL>
+
+<P>
+
+<I>ar_op</I>
+<DL COMPACT><DT><DD>
+ARP opcode (command)
+</DL>
+
+<P>
+
+<I>indev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet was received on (if known)
+</DL>
+
+<P>
+
+<I>nf_queue</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'queue' verdict
+</DL>
+
+<P>
+
+<I>nf_accept</I>
+<DL COMPACT><DT><DD>
+Constant used to signify an 'accept' verdict
+</DL>
+
+<P>
+
+<I>ar_hrd</I>
+<DL COMPACT><DT><DD>
+Format of hardware address
+</DL>
+
+<P>
+
+<I>outdev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing output device, 0 if unknown
+</DL>
+
+<P>
+
+<I>pf</I>
+<DL COMPACT><DT><DD>
+Protocol family -- always
+"arp"
+</DL>
+
+<P>
+
+<I>ar_data</I>
+<DL COMPACT><DT><DD>
+Address of ARP packet data region (after the header)
+</DL>
+
+<P>
+
+<I>length</I>
+<DL COMPACT><DT><DD>
+The length of the packet buffer contents, in bytes
+</DL>
+
+<P>
+
+<I>ar_hln</I>
+<DL COMPACT><DT><DD>
+Length of hardware address
+</DL>
+
+<P>
+
+<I>ar_sip</I>
+<DL COMPACT><DT><DD>
+Ethernet+IP only (ar_pro==0x800): source IP address
+</DL>
+
+<P>
+
+<I>arphdr</I>
+<DL COMPACT><DT><DD>
+Address of ARP header
+</DL>
+
+<P>
+
+<I>nf_drop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'drop' verdict
+</DL>
+
+<P>
+
+<I>indev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing input device, 0 if unknown
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETFILTER\&.A</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETFILTER\&.A</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netfilter.arp.out - - Called for each outgoing ARP packet
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netfilter.arp.out
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>nf_stop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stop' verdict
+</DL>
+
+<P>
+
+<I>outdev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet will be routed to (if known)
+</DL>
+
+<P>
+
+<I>ar_pro</I>
+<DL COMPACT><DT><DD>
+Format of protocol address
+</DL>
+
+<P>
+
+<I>ar_sha</I>
+<DL COMPACT><DT><DD>
+Ethernet+IP only (ar_pro==0x800): source hardware (MAC) address
+</DL>
+
+<P>
+
+<I>ar_tip</I>
+<DL COMPACT><DT><DD>
+Ethernet+IP only (ar_pro==0x800): target IP address
+</DL>
+
+<P>
+
+<I>nf_stolen</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stolen' verdict
+</DL>
+
+<P>
+
+<I>ar_pln</I>
+<DL COMPACT><DT><DD>
+Length of protocol address
+</DL>
+
+<P>
+
+<I>outdev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing output device, 0 if unknown
+</DL>
+
+<P>
+
+<I>nf_queue</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'queue' verdict
+</DL>
+
+<P>
+
+<I>nf_accept</I>
+<DL COMPACT><DT><DD>
+Constant used to signify an 'accept' verdict
+</DL>
+
+<P>
+
+<I>ar_hrd</I>
+<DL COMPACT><DT><DD>
+Format of hardware address
+</DL>
+
+<P>
+
+<I>indev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet was received on (if known)
+</DL>
+
+<P>
+
+<I>nf_repeat</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'repeat' verdict
+</DL>
+
+<P>
+
+<I>ar_op</I>
+<DL COMPACT><DT><DD>
+ARP opcode (command)
+</DL>
+
+<P>
+
+<I>pf</I>
+<DL COMPACT><DT><DD>
+Protocol family -- always
+"arp"
+</DL>
+
+<P>
+
+<I>ar_tha</I>
+<DL COMPACT><DT><DD>
+Ethernet+IP only (ar_pro==0x800): target hardware (MAC) address
+</DL>
+
+<P>
+
+<I>length</I>
+<DL COMPACT><DT><DD>
+The length of the packet buffer contents, in bytes
+</DL>
+
+<P>
+
+<I>ar_data</I>
+<DL COMPACT><DT><DD>
+Address of ARP packet data region (after the header)
+</DL>
+
+<P>
+
+<I>indev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing input device, 0 if unknown
+</DL>
+
+<P>
+
+<I>ar_hln</I>
+<DL COMPACT><DT><DD>
+Length of hardware address
+</DL>
+
+<P>
+
+<I>nf_drop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'drop' verdict
+</DL>
+
+<P>
+
+<I>arphdr</I>
+<DL COMPACT><DT><DD>
+Address of ARP header
+</DL>
+
+<P>
+
+<I>ar_sip</I>
+<DL COMPACT><DT><DD>
+Ethernet+IP only (ar_pro==0x800): source IP address
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:40 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETFILTER\&.B</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETFILTER\&.B</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netfilter.bridge.forward - Called on an incoming bridging packet destined for some other computer
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netfilter.bridge.forward
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>indev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing input device, 0 if unknown
+</DL>
+
+<P>
+
+<I>nf_drop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'drop' verdict
+</DL>
+
+<P>
+
+<I>length</I>
+<DL COMPACT><DT><DD>
+The length of the packet buffer contents, in bytes
+</DL>
+
+<P>
+
+<I>indev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet was received on (if known)
+</DL>
+
+<P>
+
+<I>nf_repeat</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'repeat' verdict
+</DL>
+
+<P>
+
+<I>nf_queue</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'queue' verdict
+</DL>
+
+<P>
+
+<I>nf_accept</I>
+<DL COMPACT><DT><DD>
+Constant used to signify an 'accept' verdict
+</DL>
+
+<P>
+
+<I>outdev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing output device, 0 if unknown
+</DL>
+
+<P>
+
+<I>pf</I>
+<DL COMPACT><DT><DD>
+Protocol family -- always
+"bridge"
+</DL>
+
+<P>
+
+<I>outdev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet will be routed to (if known)
+</DL>
+
+<P>
+
+<I>nf_stop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stop' verdict
+</DL>
+
+<P>
+
+<I>nf_stolen</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stolen' verdict
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETFILTER\&.B</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETFILTER\&.B</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netfilter.bridge.local_in - Called on a bridging packet destined for the local computer
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netfilter.bridge.local_in
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>length</I>
+<DL COMPACT><DT><DD>
+The length of the packet buffer contents, in bytes
+</DL>
+
+<P>
+
+<I>indev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing input device, 0 if unknown
+</DL>
+
+<P>
+
+<I>nf_drop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'drop' verdict
+</DL>
+
+<P>
+
+<I>outdev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet will be routed to (if known)
+</DL>
+
+<P>
+
+<I>nf_stop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stop' verdict
+</DL>
+
+<P>
+
+<I>nf_stolen</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stolen' verdict
+</DL>
+
+<P>
+
+<I>indev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet was received on (if known)
+</DL>
+
+<P>
+
+<I>nf_repeat</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'repeat' verdict
+</DL>
+
+<P>
+
+<I>nf_queue</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'queue' verdict
+</DL>
+
+<P>
+
+<I>nf_accept</I>
+<DL COMPACT><DT><DD>
+Constant used to signify an 'accept' verdict
+</DL>
+
+<P>
+
+<I>outdev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing output device, 0 if unknown
+</DL>
+
+<P>
+
+<I>pf</I>
+<DL COMPACT><DT><DD>
+Protocol family -- always
+"bridge"
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETFILTER\&.B</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETFILTER\&.B</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netfilter.bridge.local_out - Called on a bridging packet coming from a local process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netfilter.bridge.local_out
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>nf_queue</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'queue' verdict
+</DL>
+
+<P>
+
+<I>outdev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing output device, 0 if unknown
+</DL>
+
+<P>
+
+<I>nf_accept</I>
+<DL COMPACT><DT><DD>
+Constant used to signify an 'accept' verdict
+</DL>
+
+<P>
+
+<I>nf_repeat</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'repeat' verdict
+</DL>
+
+<P>
+
+<I>indev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet was received on (if known)
+</DL>
+
+<P>
+
+<I>pf</I>
+<DL COMPACT><DT><DD>
+Protocol family -- always
+"bridge"
+</DL>
+
+<P>
+
+<I>nf_stolen</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stolen' verdict
+</DL>
+
+<P>
+
+<I>nf_stop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stop' verdict
+</DL>
+
+<P>
+
+<I>outdev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet will be routed to (if known)
+</DL>
+
+<P>
+
+<I>nf_drop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'drop' verdict
+</DL>
+
+<P>
+
+<I>indev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing input device, 0 if unknown
+</DL>
+
+<P>
+
+<I>length</I>
+<DL COMPACT><DT><DD>
+The length of the packet buffer contents, in bytes
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETFILTER\&.B</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETFILTER\&.B</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netfilter.bridge.post_routing - - Called before a bridging packet hits the wire
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netfilter.bridge.post_routing
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>indev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing input device, 0 if unknown
+</DL>
+
+<P>
+
+<I>nf_drop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'drop' verdict
+</DL>
+
+<P>
+
+<I>length</I>
+<DL COMPACT><DT><DD>
+The length of the packet buffer contents, in bytes
+</DL>
+
+<P>
+
+<I>pf</I>
+<DL COMPACT><DT><DD>
+Protocol family -- always
+"bridge"
+</DL>
+
+<P>
+
+<I>nf_queue</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'queue' verdict
+</DL>
+
+<P>
+
+<I>outdev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing output device, 0 if unknown
+</DL>
+
+<P>
+
+<I>nf_accept</I>
+<DL COMPACT><DT><DD>
+Constant used to signify an 'accept' verdict
+</DL>
+
+<P>
+
+<I>nf_repeat</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'repeat' verdict
+</DL>
+
+<P>
+
+<I>indev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet was received on (if known)
+</DL>
+
+<P>
+
+<I>nf_stop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stop' verdict
+</DL>
+
+<P>
+
+<I>outdev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet will be routed to (if known)
+</DL>
+
+<P>
+
+<I>nf_stolen</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stolen' verdict
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETFILTER\&.B</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETFILTER\&.B</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netfilter.bridge.pre_routing - - Called before a bridging packet is routed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netfilter.bridge.pre_routing
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>nf_stop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stop' verdict
+</DL>
+
+<P>
+
+<I>outdev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet will be routed to (if known)
+</DL>
+
+<P>
+
+<I>nf_stolen</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stolen' verdict
+</DL>
+
+<P>
+
+<I>pf</I>
+<DL COMPACT><DT><DD>
+Protocol family -- always
+"bridge"
+</DL>
+
+<P>
+
+<I>outdev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing output device, 0 if unknown
+</DL>
+
+<P>
+
+<I>nf_queue</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'queue' verdict
+</DL>
+
+<P>
+
+<I>nf_accept</I>
+<DL COMPACT><DT><DD>
+Constant used to signify an 'accept' verdict
+</DL>
+
+<P>
+
+<I>nf_repeat</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'repeat' verdict
+</DL>
+
+<P>
+
+<I>indev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet was received on (if known)
+</DL>
+
+<P>
+
+<I>length</I>
+<DL COMPACT><DT><DD>
+The length of the packet buffer contents, in bytes
+</DL>
+
+<P>
+
+<I>indev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing input device, 0 if unknown
+</DL>
+
+<P>
+
+<I>nf_drop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'drop' verdict
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETFILTER\&.I</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETFILTER\&.I</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netfilter.ip.forward - Called on an incoming IP packet addressed to some other computer
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netfilter.ip.forward
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>syn</I>
+<DL COMPACT><DT><DD>
+TCP SYN flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>length</I>
+<DL COMPACT><DT><DD>
+The length of the packet buffer contents, in bytes
+</DL>
+
+<P>
+
+<I>ipproto_tcp</I>
+<DL COMPACT><DT><DD>
+Constant used to signify that the packet protocol is TCP
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+IP address family
+</DL>
+
+<P>
+
+<I>ipproto_udp</I>
+<DL COMPACT><DT><DD>
+Constant used to signify that the packet protocol is UDP
+</DL>
+
+<P>
+
+<I>saddr</I>
+<DL COMPACT><DT><DD>
+A string representing the source IP address
+</DL>
+
+<P>
+
+<I>iphdr</I>
+<DL COMPACT><DT><DD>
+Address of IP header
+</DL>
+
+<P>
+
+<I>indev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing input device, 0 if unknown
+</DL>
+
+<P>
+
+<I>ack</I>
+<DL COMPACT><DT><DD>
+TCP ACK flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>rst</I>
+<DL COMPACT><DT><DD>
+TCP RST flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>nf_drop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'drop' verdict
+</DL>
+
+<P>
+
+<I>nf_stop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stop' verdict
+</DL>
+
+<P>
+
+<I>outdev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet will be routed to (if known)
+</DL>
+
+<P>
+
+<I>psh</I>
+<DL COMPACT><DT><DD>
+TCP PSH flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>fin</I>
+<DL COMPACT><DT><DD>
+TCP FIN flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>daddr</I>
+<DL COMPACT><DT><DD>
+A string representing the destination IP address
+</DL>
+
+<P>
+
+<I>nf_stolen</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stolen' verdict
+</DL>
+
+<P>
+
+<I>pf</I>
+<DL COMPACT><DT><DD>
+Protocol family -- either
+"ipv4"
+or
+"ipv6"
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Packet protocol from driver (ipv4 only)
+</DL>
+
+<P>
+
+<I>nf_accept</I>
+<DL COMPACT><DT><DD>
+Constant used to signify an 'accept' verdict
+</DL>
+
+<P>
+
+<I>nf_queue</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'queue' verdict
+</DL>
+
+<P>
+
+<I>outdev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing output device, 0 if unknown
+</DL>
+
+<P>
+
+<I>urg</I>
+<DL COMPACT><DT><DD>
+TCP URG flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>indev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet was received on (if known)
+</DL>
+
+<P>
+
+<I>sport</I>
+<DL COMPACT><DT><DD>
+TCP or UDP source port (ipv4 only)
+</DL>
+
+<P>
+
+<I>nf_repeat</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'repeat' verdict
+</DL>
+
+<P>
+
+<I>dport</I>
+<DL COMPACT><DT><DD>
+TCP or UDP destination port (ipv4 only)
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETFILTER\&.I</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETFILTER\&.I</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netfilter.ip.local_in - Called on an incoming IP packet addressed to the local computer
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netfilter.ip.local_in
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>syn</I>
+<DL COMPACT><DT><DD>
+TCP SYN flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>ipproto_tcp</I>
+<DL COMPACT><DT><DD>
+Constant used to signify that the packet protocol is TCP
+</DL>
+
+<P>
+
+<I>length</I>
+<DL COMPACT><DT><DD>
+The length of the packet buffer contents, in bytes
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+IP address family
+</DL>
+
+<P>
+
+<I>ipproto_udp</I>
+<DL COMPACT><DT><DD>
+Constant used to signify that the packet protocol is UDP
+</DL>
+
+<P>
+
+<I>iphdr</I>
+<DL COMPACT><DT><DD>
+Address of IP header
+</DL>
+
+<P>
+
+<I>saddr</I>
+<DL COMPACT><DT><DD>
+A string representing the source IP address
+</DL>
+
+<P>
+
+<I>indev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing input device, 0 if unknown
+</DL>
+
+<P>
+
+<I>rst</I>
+<DL COMPACT><DT><DD>
+TCP RST flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>ack</I>
+<DL COMPACT><DT><DD>
+TCP ACK flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>nf_drop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'drop' verdict
+</DL>
+
+<P>
+
+<I>nf_stop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stop' verdict
+</DL>
+
+<P>
+
+<I>psh</I>
+<DL COMPACT><DT><DD>
+TCP PSH flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>outdev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet will be routed to (if known)
+</DL>
+
+<P>
+
+<I>fin</I>
+<DL COMPACT><DT><DD>
+TCP FIN flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>daddr</I>
+<DL COMPACT><DT><DD>
+A string representing the destination IP address
+</DL>
+
+<P>
+
+<I>nf_stolen</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stolen' verdict
+</DL>
+
+<P>
+
+<I>pf</I>
+<DL COMPACT><DT><DD>
+Protocol family -- either
+"ipv4"
+or
+"ipv6"
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Packet protocol from driver (ipv4 only)
+</DL>
+
+<P>
+
+<I>nf_accept</I>
+<DL COMPACT><DT><DD>
+Constant used to signify an 'accept' verdict
+</DL>
+
+<P>
+
+<I>nf_queue</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'queue' verdict
+</DL>
+
+<P>
+
+<I>outdev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing output device, 0 if unknown
+</DL>
+
+<P>
+
+<I>indev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet was received on (if known)
+</DL>
+
+<P>
+
+<I>urg</I>
+<DL COMPACT><DT><DD>
+TCP URG flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>sport</I>
+<DL COMPACT><DT><DD>
+TCP or UDP source port (ipv4 only)
+</DL>
+
+<P>
+
+<I>nf_repeat</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'repeat' verdict
+</DL>
+
+<P>
+
+<I>dport</I>
+<DL COMPACT><DT><DD>
+TCP or UDP destination port (ipv4 only)
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETFILTER\&.I</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETFILTER\&.I</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netfilter.ip.local_out - Called on an outgoing IP packet
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netfilter.ip.local_out
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>length</I>
+<DL COMPACT><DT><DD>
+The length of the packet buffer contents, in bytes
+</DL>
+
+<P>
+
+<I>ipproto_tcp</I>
+<DL COMPACT><DT><DD>
+Constant used to signify that the packet protocol is TCP
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+IP address family
+</DL>
+
+<P>
+
+<I>ipproto_udp</I>
+<DL COMPACT><DT><DD>
+Constant used to signify that the packet protocol is UDP
+</DL>
+
+<P>
+
+<I>syn</I>
+<DL COMPACT><DT><DD>
+TCP SYN flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>nf_drop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'drop' verdict
+</DL>
+
+<P>
+
+<I>saddr</I>
+<DL COMPACT><DT><DD>
+A string representing the source IP address
+</DL>
+
+<P>
+
+<I>iphdr</I>
+<DL COMPACT><DT><DD>
+Address of IP header
+</DL>
+
+<P>
+
+<I>indev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing input device, 0 if unknown
+</DL>
+
+<P>
+
+<I>ack</I>
+<DL COMPACT><DT><DD>
+TCP ACK flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>rst</I>
+<DL COMPACT><DT><DD>
+TCP RST flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>fin</I>
+<DL COMPACT><DT><DD>
+TCP FIN flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>daddr</I>
+<DL COMPACT><DT><DD>
+A string representing the destination IP address
+</DL>
+
+<P>
+
+<I>nf_stolen</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stolen' verdict
+</DL>
+
+<P>
+
+<I>nf_stop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stop' verdict
+</DL>
+
+<P>
+
+<I>psh</I>
+<DL COMPACT><DT><DD>
+TCP PSH flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>outdev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet will be routed to (if known)
+</DL>
+
+<P>
+
+<I>dport</I>
+<DL COMPACT><DT><DD>
+TCP or UDP destination port (ipv4 only)
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Packet protocol from driver (ipv4 only)
+</DL>
+
+<P>
+
+<I>pf</I>
+<DL COMPACT><DT><DD>
+Protocol family -- either
+"ipv4"
+or
+"ipv6"
+</DL>
+
+<P>
+
+<I>nf_queue</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'queue' verdict
+</DL>
+
+<P>
+
+<I>nf_accept</I>
+<DL COMPACT><DT><DD>
+Constant used to signify an 'accept' verdict
+</DL>
+
+<P>
+
+<I>outdev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing output device, 0 if unknown
+</DL>
+
+<P>
+
+<I>urg</I>
+<DL COMPACT><DT><DD>
+TCP URG flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>sport</I>
+<DL COMPACT><DT><DD>
+TCP or UDP source port (ipv4 only)
+</DL>
+
+<P>
+
+<I>nf_repeat</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'repeat' verdict
+</DL>
+
+<P>
+
+<I>indev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet was received on (if known)
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETFILTER\&.I</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETFILTER\&.I</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netfilter.ip.post_routing - Called immediately before an outgoing IP packet leaves the computer
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netfilter.ip.post_routing
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Packet protocol from driver (ipv4 only)
+</DL>
+
+<P>
+
+<I>pf</I>
+<DL COMPACT><DT><DD>
+Protocol family -- either
+"ipv4"
+or
+"ipv6"
+</DL>
+
+<P>
+
+<I>nf_accept</I>
+<DL COMPACT><DT><DD>
+Constant used to signify an 'accept' verdict
+</DL>
+
+<P>
+
+<I>nf_queue</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'queue' verdict
+</DL>
+
+<P>
+
+<I>outdev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing output device, 0 if unknown
+</DL>
+
+<P>
+
+<I>urg</I>
+<DL COMPACT><DT><DD>
+TCP URG flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>sport</I>
+<DL COMPACT><DT><DD>
+TCP or UDP source port (ipv4 only)
+</DL>
+
+<P>
+
+<I>indev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet was received on (if known)
+</DL>
+
+<P>
+
+<I>nf_repeat</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'repeat' verdict
+</DL>
+
+<P>
+
+<I>dport</I>
+<DL COMPACT><DT><DD>
+TCP or UDP destination port (ipv4 only)
+</DL>
+
+<P>
+
+<I>nf_stop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stop' verdict
+</DL>
+
+<P>
+
+<I>outdev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet will be routed to (if known)
+</DL>
+
+<P>
+
+<I>psh</I>
+<DL COMPACT><DT><DD>
+TCP PSH flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>fin</I>
+<DL COMPACT><DT><DD>
+TCP FIN flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>daddr</I>
+<DL COMPACT><DT><DD>
+A string representing the destination IP address
+</DL>
+
+<P>
+
+<I>nf_stolen</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stolen' verdict
+</DL>
+
+<P>
+
+<I>saddr</I>
+<DL COMPACT><DT><DD>
+A string representing the source IP address
+</DL>
+
+<P>
+
+<I>iphdr</I>
+<DL COMPACT><DT><DD>
+Address of IP header
+</DL>
+
+<P>
+
+<I>indev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing input device, 0 if unknown
+</DL>
+
+<P>
+
+<I>rst</I>
+<DL COMPACT><DT><DD>
+TCP RST flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>ack</I>
+<DL COMPACT><DT><DD>
+TCP ACK flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>nf_drop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'drop' verdict
+</DL>
+
+<P>
+
+<I>syn</I>
+<DL COMPACT><DT><DD>
+TCP SYN flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>length</I>
+<DL COMPACT><DT><DD>
+The length of the packet buffer contents, in bytes
+</DL>
+
+<P>
+
+<I>ipproto_tcp</I>
+<DL COMPACT><DT><DD>
+Constant used to signify that the packet protocol is TCP
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+IP address family
+</DL>
+
+<P>
+
+<I>ipproto_udp</I>
+<DL COMPACT><DT><DD>
+Constant used to signify that the packet protocol is UDP
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NETFILTER\&.I</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NETFILTER\&.I</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::netfilter.ip.pre_routing - Called before an IP packet is routed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+netfilter.ip.pre_routing
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>nf_stolen</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stolen' verdict
+</DL>
+
+<P>
+
+<I>fin</I>
+<DL COMPACT><DT><DD>
+TCP FIN flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>daddr</I>
+<DL COMPACT><DT><DD>
+A string representing the destination IP address
+</DL>
+
+<P>
+
+<I>outdev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet will be routed to (if known)
+</DL>
+
+<P>
+
+<I>psh</I>
+<DL COMPACT><DT><DD>
+TCP PSH flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>nf_stop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'stop' verdict
+</DL>
+
+<P>
+
+<I>dport</I>
+<DL COMPACT><DT><DD>
+TCP or UDP destination port (ipv4 only)
+</DL>
+
+<P>
+
+<I>urg</I>
+<DL COMPACT><DT><DD>
+TCP URG flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>sport</I>
+<DL COMPACT><DT><DD>
+TCP or UDP source port (ipv4 only)
+</DL>
+
+<P>
+
+<I>indev_name</I>
+<DL COMPACT><DT><DD>
+Name of network device packet was received on (if known)
+</DL>
+
+<P>
+
+<I>nf_repeat</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'repeat' verdict
+</DL>
+
+<P>
+
+<I>nf_accept</I>
+<DL COMPACT><DT><DD>
+Constant used to signify an 'accept' verdict
+</DL>
+
+<P>
+
+<I>nf_queue</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'queue' verdict
+</DL>
+
+<P>
+
+<I>outdev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing output device, 0 if unknown
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Packet protocol from driver (ipv4 only)
+</DL>
+
+<P>
+
+<I>pf</I>
+<DL COMPACT><DT><DD>
+Protocol family - either 'ipv4' or 'ipv6'
+</DL>
+
+<P>
+
+<I>ipproto_udp</I>
+<DL COMPACT><DT><DD>
+Constant used to signify that the packet protocol is UDP
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+IP address family
+</DL>
+
+<P>
+
+<I>length</I>
+<DL COMPACT><DT><DD>
+The length of the packet buffer contents, in bytes
+</DL>
+
+<P>
+
+<I>ipproto_tcp</I>
+<DL COMPACT><DT><DD>
+Constant used to signify that the packet protocol is TCP
+</DL>
+
+<P>
+
+<I>syn</I>
+<DL COMPACT><DT><DD>
+TCP SYN flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>nf_drop</I>
+<DL COMPACT><DT><DD>
+Constant used to signify a 'drop' verdict
+</DL>
+
+<P>
+
+<I>ack</I>
+<DL COMPACT><DT><DD>
+TCP ACK flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>rst</I>
+<DL COMPACT><DT><DD>
+TCP RST flag (if protocol is TCP; ipv4 only)
+</DL>
+
+<P>
+
+<I>indev</I>
+<DL COMPACT><DT><DD>
+Address of net_device representing input device, 0 if unknown
+</DL>
+
+<P>
+
+<I>iphdr</I>
+<DL COMPACT><DT><DD>
+Address of IP header
+</DL>
+
+<P>
+
+<I>saddr</I>
+<DL COMPACT><DT><DD>
+A string representing the source IP address
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.AOP\&.R</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.AOP\&.R</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.aop.readpage - NFS client synchronously reading a page
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.aop.readpage
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+number of pages to be read in this execution
+</DL>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+device identifier
+</DL>
+
+<P>
+
+<I>sb_flag</I>
+<DL COMPACT><DT><DD>
+super block flags
+</DL>
+
+<P>
+
+<I>i_flag</I>
+<DL COMPACT><DT><DD>
+file flags
+</DL>
+
+<P>
+
+<I>page_index</I>
+<DL COMPACT><DT><DD>
+offset within mapping, can used a page identifier and position identifier in the page frame
+</DL>
+
+<P>
+
+<I>i_size</I>
+<DL COMPACT><DT><DD>
+file length in bytes
+</DL>
+
+<P>
+
+<I>ino</I>
+<DL COMPACT><DT><DD>
+inode number
+</DL>
+
+<P>
+
+<I>__page</I>
+<DL COMPACT><DT><DD>
+the address of page
+</DL>
+
+<P>
+
+<I>file</I>
+<DL COMPACT><DT><DD>
+file argument
+</DL>
+
+<P>
+
+<I>rsize</I>
+<DL COMPACT><DT><DD>
+read size (in bytes)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Read the page over, only fires when a previous async read operation failed
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.AOP\&.R</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.AOP\&.R</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.aop.readpages - NFS client reading multiple pages
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.aop.readpages
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>rpages</I>
+<DL COMPACT><DT><DD>
+read size (in pages)
+</DL>
+
+<P>
+
+<I>ino</I>
+<DL COMPACT><DT><DD>
+inode number
+</DL>
+
+<P>
+
+<I>file</I>
+<DL COMPACT><DT><DD>
+filp argument
+</DL>
+
+<P>
+
+<I>rsize</I>
+<DL COMPACT><DT><DD>
+read size (in bytes)
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+number of pages attempted to read in this execution
+</DL>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+device identifier
+</DL>
+
+<P>
+
+<I>nr_pages</I>
+<DL COMPACT><DT><DD>
+number of pages attempted to read in this execution
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires when in readahead way, read several pages once
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.AOP\&.R</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.AOP\&.R</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.aop.release_page - NFS client releasing page
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.aop.release_page
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>__page</I>
+<DL COMPACT><DT><DD>
+the address of page
+</DL>
+
+<P>
+
+<I>ino</I>
+<DL COMPACT><DT><DD>
+inode number
+</DL>
+
+<P>
+
+<I>page_index</I>
+<DL COMPACT><DT><DD>
+offset within mapping, can used a page identifier and position identifier in the page frame
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+release pages
+</DL>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+device identifier
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires when do a release operation on NFS.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.AOP\&.S</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.AOP\&.S</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.aop.set_page_dirty - NFS client marking page as dirty
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.aop.set_page_dirty
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>__page</I>
+<DL COMPACT><DT><DD>
+the address of page
+</DL>
+
+<P>
+
+<I>page_flag</I>
+<DL COMPACT><DT><DD>
+page flags
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This probe attaches to the generic __set_page_dirty_nobuffers function. Thus, this probe is going to fire on many other file systems in addition to the NFS client.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.AOP\&.W</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.AOP\&.W</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.aop.write_begin - NFS client begin to write data
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.aop.write_begin
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>page_index</I>
+<DL COMPACT><DT><DD>
+offset within mapping, can used a page identifier and position identifier in the page frame
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+write bytes
+</DL>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+device identifier
+</DL>
+
+<P>
+
+<I>__page</I>
+<DL COMPACT><DT><DD>
+the address of page
+</DL>
+
+<P>
+
+<I>offset</I>
+<DL COMPACT><DT><DD>
+start address of this write operation
+</DL>
+
+<P>
+
+<I>to</I>
+<DL COMPACT><DT><DD>
+end address of this write operation
+</DL>
+
+<P>
+
+<I>ino</I>
+<DL COMPACT><DT><DD>
+inode number
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Occurs when write operation occurs on nfs. It prepare a page for writing, look for a request corresponding to the page. If there is one, and it belongs to another file, it flush it out before it tries to copy anything into the page. Also do the same if it finds a request from an existing dropped page
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.AOP\&.W</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.AOP\&.W</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.aop.write_end - NFS client complete writing data
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.aop.write_end
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>__page</I>
+<DL COMPACT><DT><DD>
+the address of page
+</DL>
+
+<P>
+
+<I>ino</I>
+<DL COMPACT><DT><DD>
+inode number
+</DL>
+
+<P>
+
+<I>to</I>
+<DL COMPACT><DT><DD>
+end address of this write operation
+</DL>
+
+<P>
+
+<I>offset</I>
+<DL COMPACT><DT><DD>
+start address of this write operation
+</DL>
+
+<P>
+
+<I>sb_flag</I>
+<DL COMPACT><DT><DD>
+super block flags
+</DL>
+
+<P>
+
+<I>i_flag</I>
+<DL COMPACT><DT><DD>
+file flags
+</DL>
+
+<P>
+
+<I>page_index</I>
+<DL COMPACT><DT><DD>
+offset within mapping, can used a page identifier and position identifier in the page frame
+</DL>
+
+<P>
+
+<I>i_size</I>
+<DL COMPACT><DT><DD>
+file length in bytes
+</DL>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+device identifier
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+write bytes
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires when do a write operation on nfs, often after prepare_write
+<P>
+
+Update and possibly write a cached page of an NFS file.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.AOP\&.W</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.AOP\&.W</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.aop.writepage - NFS client writing a mapped page to the NFS server
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.aop.writepage
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>for_reclaim</I>
+<DL COMPACT><DT><DD>
+a flag of writeback_control, indicates if it's invoked from the page allocator
+</DL>
+
+<P>
+
+<I>__page</I>
+<DL COMPACT><DT><DD>
+the address of page
+</DL>
+
+<P>
+
+<I>i_state</I>
+<DL COMPACT><DT><DD>
+inode state flags
+</DL>
+
+<P>
+
+<I>ino</I>
+<DL COMPACT><DT><DD>
+inode number
+</DL>
+
+<P>
+
+<I>sb_flag</I>
+<DL COMPACT><DT><DD>
+super block flags
+</DL>
+
+<P>
+
+<I>i_flag</I>
+<DL COMPACT><DT><DD>
+file flags
+</DL>
+
+<P>
+
+<I>page_index</I>
+<DL COMPACT><DT><DD>
+offset within mapping, can used a page identifier and position identifier in the page frame
+</DL>
+
+<P>
+
+<I>i_size</I>
+<DL COMPACT><DT><DD>
+file length in bytes
+</DL>
+
+<P>
+
+<I>for_kupdate</I>
+<DL COMPACT><DT><DD>
+a flag of writeback_control, indicates if it's a kupdate writeback
+</DL>
+
+<P>
+
+<I>wsize</I>
+<DL COMPACT><DT><DD>
+write size
+</DL>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+device identifier
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+number of pages to be written in this execution
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The priority of wb is decided by the flags
+<I>for_reclaim</I>
+and
+<I>for_kupdate</I>.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.AOP\&.W</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.AOP\&.W</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.aop.writepages - NFS client writing several dirty pages to the NFS server
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.aop.writepages
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>ino</I>
+<DL COMPACT><DT><DD>
+inode number
+</DL>
+
+<P>
+
+<I>wpages</I>
+<DL COMPACT><DT><DD>
+write size (in pages)
+</DL>
+
+<P>
+
+<I>for_reclaim</I>
+<DL COMPACT><DT><DD>
+a flag of writeback_control, indicates if it's invoked from the page allocator
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+number of pages attempted to be written in this execution
+</DL>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+device identifier
+</DL>
+
+<P>
+
+<I>nr_to_write</I>
+<DL COMPACT><DT><DD>
+number of pages attempted to be written in this execution
+</DL>
+
+<P>
+
+<I>wsize</I>
+<DL COMPACT><DT><DD>
+write size
+</DL>
+
+<P>
+
+<I>for_kupdate</I>
+<DL COMPACT><DT><DD>
+a flag of writeback_control, indicates if it's a kupdate writeback
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The priority of wb is decided by the flags
+<I>for_reclaim</I>
+and
+<I>for_kupdate</I>.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.FOP\&.A</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.FOP\&.A</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.fop.aio_read - NFS client aio_read file operation
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.fop.aio_read
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>buf</I>
+<DL COMPACT><DT><DD>
+the address of buf in user space
+</DL>
+
+<P>
+
+<I>count</I>
+<DL COMPACT><DT><DD>
+read bytes
+</DL>
+
+<P>
+
+<I>attrtimeo</I>
+<DL COMPACT><DT><DD>
+how long the cached information is assumed to be valid. We need to revalidate the cached attrs for this inode if jiffies - read_cache_jiffies > attrtimeo.
+</DL>
+
+<P>
+
+<I>cache_valid</I>
+<DL COMPACT><DT><DD>
+cache related bit mask flag
+</DL>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+device identifier
+</DL>
+
+<P>
+
+<I>parent_name</I>
+<DL COMPACT><DT><DD>
+parent dir name
+</DL>
+
+<P>
+
+<I>pos</I>
+<DL COMPACT><DT><DD>
+current position of file
+</DL>
+
+<P>
+
+<I>cache_time</I>
+<DL COMPACT><DT><DD>
+when we started read-caching this inode
+</DL>
+
+<P>
+
+<I>ino</I>
+<DL COMPACT><DT><DD>
+inode number
+</DL>
+
+<P>
+
+<I>file_name</I>
+<DL COMPACT><DT><DD>
+file name
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.FOP\&.A</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.FOP\&.A</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.fop.aio_write - NFS client aio_write file operation
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.fop.aio_write
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>buf</I>
+<DL COMPACT><DT><DD>
+the address of buf in user space
+</DL>
+
+<P>
+
+<I>count</I>
+<DL COMPACT><DT><DD>
+read bytes
+</DL>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+device identifier
+</DL>
+
+<P>
+
+<I>pos</I>
+<DL COMPACT><DT><DD>
+offset of the file
+</DL>
+
+<P>
+
+<I>parent_name</I>
+<DL COMPACT><DT><DD>
+parent dir name
+</DL>
+
+<P>
+
+<I>ino</I>
+<DL COMPACT><DT><DD>
+inode number
+</DL>
+
+<P>
+
+<I>file_name</I>
+<DL COMPACT><DT><DD>
+file name
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.FOP\&.C</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.FOP\&.C</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.fop.check_flags - NFS client checking flag operation
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.fop.check_flags
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>flag</I>
+<DL COMPACT><DT><DD>
+file flag
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.FOP\&.F</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.FOP\&.F</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.fop.flush - NFS client flush file operation
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.fop.flush
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+device identifier
+</DL>
+
+<P>
+
+<I>ino</I>
+<DL COMPACT><DT><DD>
+inode number
+</DL>
+
+<P>
+
+<I>ndirty</I>
+<DL COMPACT><DT><DD>
+number of dirty page
+</DL>
+
+<P>
+
+<I>mode</I>
+<DL COMPACT><DT><DD>
+file mode
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.FOP\&.F</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.FOP\&.F</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.fop.fsync - NFS client fsync operation
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.fop.fsync
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>ndirty</I>
+<DL COMPACT><DT><DD>
+number of dirty pages
+</DL>
+
+<P>
+
+<I>ino</I>
+<DL COMPACT><DT><DD>
+inode number
+</DL>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+device identifier
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.FOP\&.L</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.FOP\&.L</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.fop.llseek - NFS client llseek operation
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.fop.llseek
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>whence_str</I>
+<DL COMPACT><DT><DD>
+symbolic string representation of the position to seek from
+</DL>
+
+<P>
+
+<I>offset</I>
+<DL COMPACT><DT><DD>
+the offset of the file will be repositioned
+</DL>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+device identifier
+</DL>
+
+<P>
+
+<I>whence</I>
+<DL COMPACT><DT><DD>
+the position to seek from
+</DL>
+
+<P>
+
+<I>ino</I>
+<DL COMPACT><DT><DD>
+inode number
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.FOP\&.L</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.FOP\&.L</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.fop.lock - NFS client file lock operation
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.fop.lock
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>i_mode</I>
+<DL COMPACT><DT><DD>
+file type and access rights
+</DL>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+device identifier
+</DL>
+
+<P>
+
+<I>fl_type</I>
+<DL COMPACT><DT><DD>
+lock type
+</DL>
+
+<P>
+
+<I>ino</I>
+<DL COMPACT><DT><DD>
+inode number
+</DL>
+
+<P>
+
+<I>fl_end</I>
+<DL COMPACT><DT><DD>
+ending offset of locked region
+</DL>
+
+<P>
+
+<I>cmd</I>
+<DL COMPACT><DT><DD>
+cmd arguments
+</DL>
+
+<P>
+
+<I>fl_flag</I>
+<DL COMPACT><DT><DD>
+lock flags
+</DL>
+
+<P>
+
+<I>fl_start</I>
+<DL COMPACT><DT><DD>
+starting offset of locked region
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.FOP\&.M</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.FOP\&.M</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.fop.mmap - NFS client mmap operation
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.fop.mmap
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>vm_flag</I>
+<DL COMPACT><DT><DD>
+vm flags
+</DL>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+device identifier
+</DL>
+
+<P>
+
+<I>buf</I>
+<DL COMPACT><DT><DD>
+the address of buf in user space
+</DL>
+
+<P>
+
+<I>attrtimeo</I>
+<DL COMPACT><DT><DD>
+how long the cached information is assumed to be valid. We need to revalidate the cached attrs for this inode if jiffies - read_cache_jiffies > attrtimeo.
+</DL>
+
+<P>
+
+<I>cache_valid</I>
+<DL COMPACT><DT><DD>
+cache related bit mask flag
+</DL>
+
+<P>
+
+<I>vm_end</I>
+<DL COMPACT><DT><DD>
+the first byte after end address within vm_mm
+</DL>
+
+<P>
+
+<I>cache_time</I>
+<DL COMPACT><DT><DD>
+when we started read-caching this inode
+</DL>
+
+<P>
+
+<I>file_name</I>
+<DL COMPACT><DT><DD>
+file name
+</DL>
+
+<P>
+
+<I>ino</I>
+<DL COMPACT><DT><DD>
+inode number
+</DL>
+
+<P>
+
+<I>parent_name</I>
+<DL COMPACT><DT><DD>
+parent dir name
+</DL>
+
+<P>
+
+<I>vm_start</I>
+<DL COMPACT><DT><DD>
+start address within vm_mm
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.FOP\&.O</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.FOP\&.O</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.fop.open - NFS client file open operation
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.fop.open
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>file_name</I>
+<DL COMPACT><DT><DD>
+file name
+</DL>
+
+<P>
+
+<I>ino</I>
+<DL COMPACT><DT><DD>
+inode number
+</DL>
+
+<P>
+
+<I>flag</I>
+<DL COMPACT><DT><DD>
+file flag
+</DL>
+
+<P>
+
+<I>i_size</I>
+<DL COMPACT><DT><DD>
+file length in bytes
+</DL>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+device identifier
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.FOP\&.R</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.FOP\&.R</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.fop.read - NFS client read operation
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.fop.read
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>devname</I>
+<DL COMPACT><DT><DD>
+block device name
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+SystemTap uses the vfs.do_sync_read probe to implement this probe and as a result will get operations other than the NFS client read operations.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.FOP\&.R</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.FOP\&.R</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.fop.read_iter - NFS client read_iter file operation
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.fop.read_iter
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>cache_time</I>
+<DL COMPACT><DT><DD>
+when we started read-caching this inode
+</DL>
+
+<P>
+
+<I>file_name</I>
+<DL COMPACT><DT><DD>
+file name
+</DL>
+
+<P>
+
+<I>ino</I>
+<DL COMPACT><DT><DD>
+inode number
+</DL>
+
+<P>
+
+<I>pos</I>
+<DL COMPACT><DT><DD>
+current position of file
+</DL>
+
+<P>
+
+<I>parent_name</I>
+<DL COMPACT><DT><DD>
+parent dir name
+</DL>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+device identifier
+</DL>
+
+<P>
+
+<I>count</I>
+<DL COMPACT><DT><DD>
+read bytes
+</DL>
+
+<P>
+
+<I>attrtimeo</I>
+<DL COMPACT><DT><DD>
+how long the cached information is assumed to be valid. We need to revalidate the cached attrs for this inode if jiffies - read_cache_jiffies > attrtimeo.
+</DL>
+
+<P>
+
+<I>cache_valid</I>
+<DL COMPACT><DT><DD>
+cache related bit mask flag
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.FOP\&.R</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.FOP\&.R</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.fop.release - NFS client release page operation
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.fop.release
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>ino</I>
+<DL COMPACT><DT><DD>
+inode number
+</DL>
+
+<P>
+
+<I>mode</I>
+<DL COMPACT><DT><DD>
+file mode
+</DL>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+device identifier
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.FOP\&.S</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.FOP\&.S</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.fop.sendfile - NFS client send file operation
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.fop.sendfile
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>cache_time</I>
+<DL COMPACT><DT><DD>
+when we started read-caching this inode
+</DL>
+
+<P>
+
+<I>ino</I>
+<DL COMPACT><DT><DD>
+inode number
+</DL>
+
+<P>
+
+<I>ppos</I>
+<DL COMPACT><DT><DD>
+current position of file
+</DL>
+
+<P>
+
+<I>count</I>
+<DL COMPACT><DT><DD>
+read bytes
+</DL>
+
+<P>
+
+<I>attrtimeo</I>
+<DL COMPACT><DT><DD>
+how long the cached information is assumed to be valid. We need to revalidate the cached attrs for this inode if jiffies - read_cache_jiffies > attrtimeo.
+</DL>
+
+<P>
+
+<I>cache_valid</I>
+<DL COMPACT><DT><DD>
+cache related bit mask flag
+</DL>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+device identifier
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.FOP\&.W</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.FOP\&.W</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.fop.write - NFS client write operation
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.fop.write
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>devname</I>
+<DL COMPACT><DT><DD>
+block device name
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+SystemTap uses the vfs.do_sync_write probe to implement this probe and as a result will get operations other than the NFS client write operations.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.FOP\&.W</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.FOP\&.W</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.fop.write_iter - NFS client write_iter file operation
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.fop.write_iter
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>count</I>
+<DL COMPACT><DT><DD>
+read bytes
+</DL>
+
+<P>
+
+<I>dev</I>
+<DL COMPACT><DT><DD>
+device identifier
+</DL>
+
+<P>
+
+<I>pos</I>
+<DL COMPACT><DT><DD>
+offset of the file
+</DL>
+
+<P>
+
+<I>parent_name</I>
+<DL COMPACT><DT><DD>
+parent dir name
+</DL>
+
+<P>
+
+<I>ino</I>
+<DL COMPACT><DT><DD>
+inode number
+</DL>
+
+<P>
+
+<I>file_name</I>
+<DL COMPACT><DT><DD>
+file name
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.PROC\&.</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.PROC\&.</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.proc.commit - NFS client committing data on server
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.proc.commit
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>bitmask0</I>
+<DL COMPACT><DT><DD>
+V4 bitmask representing the set of attributes supported on this filesystem
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+read bytes in this execution
+</DL>
+
+<P>
+
+<I>server_ip</I>
+<DL COMPACT><DT><DD>
+IP address of server
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+NFS version
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<P>
+
+<I>bitmask1</I>
+<DL COMPACT><DT><DD>
+V4 bitmask representing the set of attributes supported on this filesystem
+</DL>
+
+<P>
+
+<I>offset</I>
+<DL COMPACT><DT><DD>
+the file offset
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+All the nfs.proc.commit kernel functions were removed in kernel commit 200baa in December 2006, so these probes do not exist on Linux 2.6.21 and newer kernels.
+<P>
+
+Fires when client writes the buffered data to disk. The buffered data is asynchronously written by client earlier. The commit function works in sync way. This probe point does not exist in NFSv2.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.PROC\&.</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.PROC\&.</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.proc.commit_done - NFS client response to a commit RPC task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.proc.commit_done
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+NFS version
+</DL>
+
+<P>
+
+<I>server_ip</I>
+<DL COMPACT><DT><DD>
+IP address of server
+</DL>
+
+<P>
+
+<I>count</I>
+<DL COMPACT><DT><DD>
+number of bytes committed
+</DL>
+
+<P>
+
+<I>status</I>
+<DL COMPACT><DT><DD>
+result of last operation
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<P>
+
+<I>timestamp</I>
+<DL COMPACT><DT><DD>
+V4 timestamp, which is used for lease renewal
+</DL>
+
+<P>
+
+<I>valid</I>
+<DL COMPACT><DT><DD>
+fattr->valid, indicates which fields are valid
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires when a reply to a commit RPC task is received or some commit operation error occur (timeout or socket shutdown).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.PROC\&.</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.PROC\&.</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.proc.commit_setup - NFS client setting up a commit RPC task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.proc.commit_setup
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>offset</I>
+<DL COMPACT><DT><DD>
+the file offset
+</DL>
+
+<P>
+
+<I>bitmask1</I>
+<DL COMPACT><DT><DD>
+V4 bitmask representing the set of attributes supported on this filesystem
+</DL>
+
+<P>
+
+<I>count</I>
+<DL COMPACT><DT><DD>
+bytes in this commit
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+NFS version
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+bytes in this commit
+</DL>
+
+<P>
+
+<I>server_ip</I>
+<DL COMPACT><DT><DD>
+IP address of server
+</DL>
+
+<P>
+
+<I>bitmask0</I>
+<DL COMPACT><DT><DD>
+V4 bitmask representing the set of attributes supported on this filesystem
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The commit_setup function is used to setup a commit RPC task. Is is not doing the actual commit operation. It does not exist in NFSv2.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.PROC\&.</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.PROC\&.</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.proc.create - NFS client creating file on server
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.proc.create
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>fh</I>
+<DL COMPACT><DT><DD>
+file handle of parent dir
+</DL>
+
+<P>
+
+<I>flag</I>
+<DL COMPACT><DT><DD>
+indicates create mode (only for NFSv3 and NFSv4)
+</DL>
+
+<P>
+
+<I>server_ip</I>
+<DL COMPACT><DT><DD>
+IP address of server
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+NFS version (the function is used for all NFS version)
+</DL>
+
+<P>
+
+<I>filename</I>
+<DL COMPACT><DT><DD>
+file name
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<P>
+
+<I>filelen</I>
+<DL COMPACT><DT><DD>
+length of file name
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.PROC\&.</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.PROC\&.</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.proc.handle_exception - NFS client handling an NFSv4 exception
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.proc.handle_exception
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>errorcode</I>
+<DL COMPACT><DT><DD>
+indicates the type of error
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This is the error handling routine for processes for NFSv4.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.PROC\&.</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.PROC\&.</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.proc.lookup - NFS client opens/searches a file on server
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.proc.lookup
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>bitmask1</I>
+<DL COMPACT><DT><DD>
+V4 bitmask representing the set of attributes supported on this filesystem
+</DL>
+
+<P>
+
+<I>filename</I>
+<DL COMPACT><DT><DD>
+the name of file which client opens/searches on server
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+NFS version
+</DL>
+
+<P>
+
+<I>name_len</I>
+<DL COMPACT><DT><DD>
+the length of file name
+</DL>
+
+<P>
+
+<I>server_ip</I>
+<DL COMPACT><DT><DD>
+IP address of server
+</DL>
+
+<P>
+
+<I>bitmask0</I>
+<DL COMPACT><DT><DD>
+V4 bitmask representing the set of attributes supported on this filesystem
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.PROC\&.</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.PROC\&.</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.proc.open - NFS client allocates file read/write context information
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.proc.open
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>mode</I>
+<DL COMPACT><DT><DD>
+file mode
+</DL>
+
+<P>
+
+<I>flag</I>
+<DL COMPACT><DT><DD>
+file flag
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+NFS version (the function is used for all NFS version)
+</DL>
+
+<P>
+
+<I>server_ip</I>
+<DL COMPACT><DT><DD>
+IP address of server
+</DL>
+
+<P>
+
+<I>filename</I>
+<DL COMPACT><DT><DD>
+file name
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Allocate file read/write context information
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.PROC\&.</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.PROC\&.</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.proc.read - NFS client synchronously reads file from server
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.proc.read
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+NFS version
+</DL>
+
+<P>
+
+<I>server_ip</I>
+<DL COMPACT><DT><DD>
+IP address of server
+</DL>
+
+<P>
+
+<I>offset</I>
+<DL COMPACT><DT><DD>
+the file offset
+</DL>
+
+<P>
+
+<I>count</I>
+<DL COMPACT><DT><DD>
+read bytes in this execution
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+used to set task->tk_flags in rpc_init_task function
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+All the nfs.proc.read kernel functions were removed in kernel commit 8e0969 in December 2006, so these probes do not exist on Linux 2.6.21 and newer kernels.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.PROC\&.</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.PROC\&.</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.proc.read_done - NFS client response to a read RPC task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.proc.read_done
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>timestamp</I>
+<DL COMPACT><DT><DD>
+V4 timestamp, which is used for lease renewal
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<P>
+
+<I>status</I>
+<DL COMPACT><DT><DD>
+result of last operation
+</DL>
+
+<P>
+
+<I>server_ip</I>
+<DL COMPACT><DT><DD>
+IP address of server
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+NFS version
+</DL>
+
+<P>
+
+<I>count</I>
+<DL COMPACT><DT><DD>
+number of bytes read
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires when a reply to a read RPC task is received or some read error occurs (timeout or socket shutdown).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.PROC\&.</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.PROC\&.</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.proc.read_setup - NFS client setting up a read RPC task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.proc.read_setup
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>offset</I>
+<DL COMPACT><DT><DD>
+the file offset
+</DL>
+
+<P>
+
+<I>count</I>
+<DL COMPACT><DT><DD>
+read bytes in this execution
+</DL>
+
+<P>
+
+<I>server_ip</I>
+<DL COMPACT><DT><DD>
+IP address of server
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+read bytes in this execution
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+NFS version
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The read_setup function is used to setup a read RPC task. It is not doing the actual read operation.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.PROC\&.</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.PROC\&.</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.proc.release - NFS client releases file read/write context information
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.proc.release
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>flag</I>
+<DL COMPACT><DT><DD>
+file flag
+</DL>
+
+<P>
+
+<I>mode</I>
+<DL COMPACT><DT><DD>
+file mode
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<P>
+
+<I>filename</I>
+<DL COMPACT><DT><DD>
+file name
+</DL>
+
+<P>
+
+<I>server_ip</I>
+<DL COMPACT><DT><DD>
+IP address of server
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+NFS version (the function is used for all NFS version)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Release file read/write context information
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.PROC\&.</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.PROC\&.</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.proc.remove - NFS client removes a file on server
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.proc.remove
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<P>
+
+<I>filelen</I>
+<DL COMPACT><DT><DD>
+length of file name
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+NFS version (the function is used for all NFS version)
+</DL>
+
+<P>
+
+<I>server_ip</I>
+<DL COMPACT><DT><DD>
+IP address of server
+</DL>
+
+<P>
+
+<I>filename</I>
+<DL COMPACT><DT><DD>
+file name
+</DL>
+
+<P>
+
+<I>fh</I>
+<DL COMPACT><DT><DD>
+file handle of parent dir
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.PROC\&.</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.PROC\&.</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.proc.rename - NFS client renames a file on server
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.proc.rename
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>old_name</I>
+<DL COMPACT><DT><DD>
+old file name
+</DL>
+
+<P>
+
+<I>old_filelen</I>
+<DL COMPACT><DT><DD>
+length of old file name
+</DL>
+
+<P>
+
+<I>old_fh</I>
+<DL COMPACT><DT><DD>
+file handle of old parent dir
+</DL>
+
+<P>
+
+<I>new_fh</I>
+<DL COMPACT><DT><DD>
+file handle of new parent dir
+</DL>
+
+<P>
+
+<I>new_name</I>
+<DL COMPACT><DT><DD>
+new file name
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<P>
+
+<I>server_ip</I>
+<DL COMPACT><DT><DD>
+IP address of server
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+NFS version (the function is used for all NFS version)
+</DL>
+
+<P>
+
+<I>new_filelen</I>
+<DL COMPACT><DT><DD>
+length of new file name
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.PROC\&.</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.PROC\&.</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.proc.rename_done - NFS client response to a rename RPC task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.proc.rename_done
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<P>
+
+<I>timestamp</I>
+<DL COMPACT><DT><DD>
+V4 timestamp, which is used for lease renewal
+</DL>
+
+<P>
+
+<I>server_ip</I>
+<DL COMPACT><DT><DD>
+IP address of server
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+NFS version
+</DL>
+
+<P>
+
+<I>status</I>
+<DL COMPACT><DT><DD>
+result of last operation
+</DL>
+
+<P>
+
+<I>old_fh</I>
+<DL COMPACT><DT><DD>
+file handle of old parent dir
+</DL>
+
+<P>
+
+<I>new_fh</I>
+<DL COMPACT><DT><DD>
+file handle of new parent dir
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires when a reply to a rename RPC task is received or some rename error occurs (timeout or socket shutdown).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.PROC\&.</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.PROC\&.</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.proc.rename_setup - NFS client setting up a rename RPC task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.proc.rename_setup
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>fh</I>
+<DL COMPACT><DT><DD>
+file handle of parent dir
+</DL>
+
+<P>
+
+<I>server_ip</I>
+<DL COMPACT><DT><DD>
+IP address of server
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+NFS version
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The rename_setup function is used to setup a rename RPC task. Is is not doing the actual rename operation.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.PROC\&.</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.PROC\&.</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.proc.write - NFS client synchronously writes file to server
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.proc.write
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+used to set task->tk_flags in rpc_init_task function
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+NFS version
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+read bytes in this execution
+</DL>
+
+<P>
+
+<I>server_ip</I>
+<DL COMPACT><DT><DD>
+IP address of server
+</DL>
+
+<P>
+
+<I>bitmask0</I>
+<DL COMPACT><DT><DD>
+V4 bitmask representing the set of attributes supported on this filesystem
+</DL>
+
+<P>
+
+<I>bitmask1</I>
+<DL COMPACT><DT><DD>
+V4 bitmask representing the set of attributes supported on this filesystem
+</DL>
+
+<P>
+
+<I>offset</I>
+<DL COMPACT><DT><DD>
+the file offset
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+All the nfs.proc.write kernel functions were removed in kernel commit 200baa in December 2006, so these probes do not exist on Linux 2.6.21 and newer kernels.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.PROC\&.</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.PROC\&.</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.proc.write_done - NFS client response to a write RPC task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.proc.write_done
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>status</I>
+<DL COMPACT><DT><DD>
+result of last operation
+</DL>
+
+<P>
+
+<I>count</I>
+<DL COMPACT><DT><DD>
+number of bytes written
+</DL>
+
+<P>
+
+<I>server_ip</I>
+<DL COMPACT><DT><DD>
+IP address of server
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+NFS version
+</DL>
+
+<P>
+
+<I>valid</I>
+<DL COMPACT><DT><DD>
+fattr->valid, indicates which fields are valid
+</DL>
+
+<P>
+
+<I>timestamp</I>
+<DL COMPACT><DT><DD>
+V4 timestamp, which is used for lease renewal
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires when a reply to a write RPC task is received or some write error occurs (timeout or socket shutdown).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFS\&.PROC\&.</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFS\&.PROC\&.</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfs.proc.write_setup - NFS client setting up a write RPC task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfs.proc.write_setup
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>bitmask0</I>
+<DL COMPACT><DT><DD>
+V4 bitmask representing the set of attributes supported on this filesystem
+</DL>
+
+<P>
+
+<I>count</I>
+<DL COMPACT><DT><DD>
+bytes written in this execution
+</DL>
+
+<P>
+
+<I>how</I>
+<DL COMPACT><DT><DD>
+used to set args.stable. The stable value could be: NFS_UNSTABLE,NFS_DATA_SYNC,NFS_FILE_SYNC (in nfs.proc3.write_setup and nfs.proc4.write_setup)
+</DL>
+
+<P>
+
+<I>server_ip</I>
+<DL COMPACT><DT><DD>
+IP address of server
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+bytes written in this execution
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+NFS version
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<P>
+
+<I>bitmask1</I>
+<DL COMPACT><DT><DD>
+V4 bitmask representing the set of attributes supported on this filesystem
+</DL>
+
+<P>
+
+<I>offset</I>
+<DL COMPACT><DT><DD>
+the file offset
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The write_setup function is used to setup a write RPC task. It is not doing the actual write operation.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFSD\&.CLOSE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFSD\&.CLOSE</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfsd.close - NFS server closing a file for client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfsd.close
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>filename</I>
+<DL COMPACT><DT><DD>
+file name
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFSD\&.COMMIT</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFSD\&.COMMIT</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfsd.commit - NFS server committing all pending writes to stable storage
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfsd.commit
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>count</I>
+<DL COMPACT><DT><DD>
+read bytes
+</DL>
+
+<P>
+
+<I>offset</I>
+<DL COMPACT><DT><DD>
+the offset of file
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+read bytes
+</DL>
+
+<P>
+
+<I>fh</I>
+<DL COMPACT><DT><DD>
+file handle (the first part is the length of the file handle)
+</DL>
+
+<P>
+
+<I>flag</I>
+<DL COMPACT><DT><DD>
+indicates whether this execution is a sync operation
+</DL>
+
+<P>
+
+<I>client_ip</I>
+<DL COMPACT><DT><DD>
+the ip address of client
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFSD\&.CREATE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFSD\&.CREATE</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfsd.create - NFS server creating a file(regular,dir,device,fifo) for client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfsd.create
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+file type(regular,dir,device,fifo ...)
+</DL>
+
+<P>
+
+<I>iap_valid</I>
+<DL COMPACT><DT><DD>
+Attribute flags
+</DL>
+
+<P>
+
+<I>client_ip</I>
+<DL COMPACT><DT><DD>
+the ip address of client
+</DL>
+
+<P>
+
+<I>iap_mode</I>
+<DL COMPACT><DT><DD>
+file access mode
+</DL>
+
+<P>
+
+<I>fh</I>
+<DL COMPACT><DT><DD>
+file handle (the first part is the length of the file handle)
+</DL>
+
+<P>
+
+<I>filename</I>
+<DL COMPACT><DT><DD>
+file name
+</DL>
+
+<P>
+
+<I>filelen</I>
+<DL COMPACT><DT><DD>
+the length of file name
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Sometimes nfsd will call nfsd_create_v3 instead of this this probe point.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFSD\&.CREATE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFSD\&.CREATE</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfsd.createv3 - NFS server creating a regular file or set file attributes for client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfsd.createv3
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>createmode</I>
+<DL COMPACT><DT><DD>
+create mode .The possible values could be: NFS3_CREATE_EXCLUSIVE, NFS3_CREATE_UNCHECKED, or NFS3_CREATE_GUARDED
+</DL>
+
+<P>
+
+<I>iap_valid</I>
+<DL COMPACT><DT><DD>
+Attribute flags
+</DL>
+
+<P>
+
+<I>iap_mode</I>
+<DL COMPACT><DT><DD>
+file access mode
+</DL>
+
+<P>
+
+<I>client_ip</I>
+<DL COMPACT><DT><DD>
+the ip address of client
+</DL>
+
+<P>
+
+<I>fh</I>
+<DL COMPACT><DT><DD>
+file handle (the first part is the length of the file handle)
+</DL>
+
+<P>
+
+<I>verifier</I>
+<DL COMPACT><DT><DD>
+file attributes (atime,mtime,mode). It's used to reset file attributes for CREATE_EXCLUSIVE
+</DL>
+
+<P>
+
+<I>filename</I>
+<DL COMPACT><DT><DD>
+file name
+</DL>
+
+<P>
+
+<I>filelen</I>
+<DL COMPACT><DT><DD>
+the length of file name
+</DL>
+
+<P>
+
+<I>truncp</I>
+<DL COMPACT><DT><DD>
+trunp arguments, indicates if the file shouldbe truncate
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This probepoints is only called by nfsd3_proc_create and nfsd4_open when op_claim_type is NFS4_OPEN_CLAIM_NULL.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFSD\&.DISPAT</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFSD\&.DISPAT</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfsd.dispatch - NFS server receives an operation from client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfsd.dispatch
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>xid</I>
+<DL COMPACT><DT><DD>
+transmission id
+</DL>
+
+<P>
+
+<I>prog</I>
+<DL COMPACT><DT><DD>
+program number
+</DL>
+
+<P>
+
+<I>proto</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<P>
+
+<I>client_ip</I>
+<DL COMPACT><DT><DD>
+the ip address of client
+</DL>
+
+<P>
+
+<I>proc</I>
+<DL COMPACT><DT><DD>
+procedure number
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+nfs version
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFSD\&.LOOKUP</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFSD\&.LOOKUP</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfsd.lookup - NFS server opening or searching file for a file for client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfsd.lookup
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>filelen</I>
+<DL COMPACT><DT><DD>
+the length of file name
+</DL>
+
+<P>
+
+<I>filename</I>
+<DL COMPACT><DT><DD>
+file name
+</DL>
+
+<P>
+
+<I>fh</I>
+<DL COMPACT><DT><DD>
+file handle of parent dir(the first part is the length of the file handle)
+</DL>
+
+<P>
+
+<I>client_ip</I>
+<DL COMPACT><DT><DD>
+the ip address of client
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFSD\&.OPEN</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFSD\&.OPEN</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfsd.open - NFS server opening a file for client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfsd.open
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+type of file (regular file or dir)
+</DL>
+
+<P>
+
+<I>fh</I>
+<DL COMPACT><DT><DD>
+file handle (the first part is the length of the file handle)
+</DL>
+
+<P>
+
+<I>access</I>
+<DL COMPACT><DT><DD>
+indicates the type of open (read/write/commit/readdir...)
+</DL>
+
+<P>
+
+<I>client_ip</I>
+<DL COMPACT><DT><DD>
+the ip address of client
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFSD\&.PROC\&</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFSD\&.PROC\&</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfsd.proc.commit - NFS server performing a commit operation for client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfsd.proc.commit
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>fh</I>
+<DL COMPACT><DT><DD>
+file handle (the first part is the length of the file handle)
+</DL>
+
+<P>
+
+<I>proto</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+read bytes
+</DL>
+
+<P>
+
+<I>gid</I>
+<DL COMPACT><DT><DD>
+requester's group id
+</DL>
+
+<P>
+
+<I>uid</I>
+<DL COMPACT><DT><DD>
+requester's user id
+</DL>
+
+<P>
+
+<I>client_ip</I>
+<DL COMPACT><DT><DD>
+the ip address of client
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+nfs version
+</DL>
+
+<P>
+
+<I>count</I>
+<DL COMPACT><DT><DD>
+read bytes
+</DL>
+
+<P>
+
+<I>offset</I>
+<DL COMPACT><DT><DD>
+the offset of file
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFSD\&.PROC\&</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFSD\&.PROC\&</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfsd.proc.create - NFS server creating a file for client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfsd.proc.create
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+nfs version
+</DL>
+
+<P>
+
+<I>client_ip</I>
+<DL COMPACT><DT><DD>
+the ip address of client
+</DL>
+
+<P>
+
+<I>uid</I>
+<DL COMPACT><DT><DD>
+requester's user id
+</DL>
+
+<P>
+
+<I>filelen</I>
+<DL COMPACT><DT><DD>
+length of file name
+</DL>
+
+<P>
+
+<I>gid</I>
+<DL COMPACT><DT><DD>
+requester's group id
+</DL>
+
+<P>
+
+<I>filename</I>
+<DL COMPACT><DT><DD>
+file name
+</DL>
+
+<P>
+
+<I>fh</I>
+<DL COMPACT><DT><DD>
+file handle (the first part is the length of the file handle)
+</DL>
+
+<P>
+
+<I>proto</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFSD\&.PROC\&</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFSD\&.PROC\&</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfsd.proc.lookup - NFS server opening or searching for a file for client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfsd.proc.lookup
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>client_ip</I>
+<DL COMPACT><DT><DD>
+the ip address of client
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+nfs version
+</DL>
+
+<P>
+
+<I>filename</I>
+<DL COMPACT><DT><DD>
+file name
+</DL>
+
+<P>
+
+<I>proto</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<P>
+
+<I>fh</I>
+<DL COMPACT><DT><DD>
+file handle of parent dir (the first part is the length of the file handle)
+</DL>
+
+<P>
+
+<I>gid</I>
+<DL COMPACT><DT><DD>
+requester's group id
+</DL>
+
+<P>
+
+<I>filelen</I>
+<DL COMPACT><DT><DD>
+the length of file name
+</DL>
+
+<P>
+
+<I>uid</I>
+<DL COMPACT><DT><DD>
+requester's user id
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFSD\&.PROC\&</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFSD\&.PROC\&</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfsd.proc.read - NFS server reading file for client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfsd.proc.read
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>count</I>
+<DL COMPACT><DT><DD>
+read bytes
+</DL>
+
+<P>
+
+<I>vlen</I>
+<DL COMPACT><DT><DD>
+read blocks
+</DL>
+
+<P>
+
+<I>offset</I>
+<DL COMPACT><DT><DD>
+the offset of file
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+read bytes
+</DL>
+
+<P>
+
+<I>gid</I>
+<DL COMPACT><DT><DD>
+requester's group id
+</DL>
+
+<P>
+
+<I>fh</I>
+<DL COMPACT><DT><DD>
+file handle (the first part is the length of the file handle)
+</DL>
+
+<P>
+
+<I>proto</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<P>
+
+<I>vec</I>
+<DL COMPACT><DT><DD>
+struct kvec, includes buf address in kernel address and length of each buffer
+</DL>
+
+<P>
+
+<I>uid</I>
+<DL COMPACT><DT><DD>
+requester's user id
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+nfs version
+</DL>
+
+<P>
+
+<I>client_ip</I>
+<DL COMPACT><DT><DD>
+the ip address of client
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFSD\&.PROC\&</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFSD\&.PROC\&</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfsd.proc.remove - NFS server removing a file for client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfsd.proc.remove
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>client_ip</I>
+<DL COMPACT><DT><DD>
+the ip address of client
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+nfs version
+</DL>
+
+<P>
+
+<I>filelen</I>
+<DL COMPACT><DT><DD>
+length of file name
+</DL>
+
+<P>
+
+<I>uid</I>
+<DL COMPACT><DT><DD>
+requester's user id
+</DL>
+
+<P>
+
+<I>filename</I>
+<DL COMPACT><DT><DD>
+file name
+</DL>
+
+<P>
+
+<I>proto</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<P>
+
+<I>fh</I>
+<DL COMPACT><DT><DD>
+file handle (the first part is the length of the file handle)
+</DL>
+
+<P>
+
+<I>gid</I>
+<DL COMPACT><DT><DD>
+requester's group id
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFSD\&.PROC\&</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFSD\&.PROC\&</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfsd.proc.rename - NFS Server renaming a file for client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfsd.proc.rename
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>flen</I>
+<DL COMPACT><DT><DD>
+length of old file name
+</DL>
+
+<P>
+
+<I>client_ip</I>
+<DL COMPACT><DT><DD>
+the ip address of client
+</DL>
+
+<P>
+
+<I>uid</I>
+<DL COMPACT><DT><DD>
+requester's user id
+</DL>
+
+<P>
+
+<I>gid</I>
+<DL COMPACT><DT><DD>
+requester's group id
+</DL>
+
+<P>
+
+<I>tname</I>
+<DL COMPACT><DT><DD>
+new file name
+</DL>
+
+<P>
+
+<I>filename</I>
+<DL COMPACT><DT><DD>
+old file name
+</DL>
+
+<P>
+
+<I>tlen</I>
+<DL COMPACT><DT><DD>
+length of new file name
+</DL>
+
+<P>
+
+<I>fh</I>
+<DL COMPACT><DT><DD>
+file handler of old path
+</DL>
+
+<P>
+
+<I>tfh</I>
+<DL COMPACT><DT><DD>
+file handler of new path
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFSD\&.PROC\&</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFSD\&.PROC\&</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfsd.proc.write - NFS server writing data to file for client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfsd.proc.write
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>vlen</I>
+<DL COMPACT><DT><DD>
+read blocks
+</DL>
+
+<P>
+
+<I>count</I>
+<DL COMPACT><DT><DD>
+read bytes
+</DL>
+
+<P>
+
+<I>offset</I>
+<DL COMPACT><DT><DD>
+the offset of file
+</DL>
+
+<P>
+
+<I>fh</I>
+<DL COMPACT><DT><DD>
+file handle (the first part is the length of the file handle)
+</DL>
+
+<P>
+
+<I>proto</I>
+<DL COMPACT><DT><DD>
+transfer protocol
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+read bytes
+</DL>
+
+<P>
+
+<I>gid</I>
+<DL COMPACT><DT><DD>
+requester's group id
+</DL>
+
+<P>
+
+<I>vec</I>
+<DL COMPACT><DT><DD>
+struct kvec, includes buf address in kernel address and length of each buffer
+</DL>
+
+<P>
+
+<I>uid</I>
+<DL COMPACT><DT><DD>
+requester's user id
+</DL>
+
+<P>
+
+<I>client_ip</I>
+<DL COMPACT><DT><DD>
+the ip address of client
+</DL>
+
+<P>
+
+<I>version</I>
+<DL COMPACT><DT><DD>
+nfs version
+</DL>
+
+<P>
+
+<I>stable</I>
+<DL COMPACT><DT><DD>
+argp->stable
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFSD\&.READ</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFSD\&.READ</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfsd.read - NFS server reading data from a file for client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfsd.read
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>client_ip</I>
+<DL COMPACT><DT><DD>
+the ip address of client
+</DL>
+
+<P>
+
+<I>vec</I>
+<DL COMPACT><DT><DD>
+struct kvec, includes buf address in kernel address and length of each buffer
+</DL>
+
+<P>
+
+<I>fh</I>
+<DL COMPACT><DT><DD>
+file handle (the first part is the length of the file handle)
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+read bytes
+</DL>
+
+<P>
+
+<I>offset</I>
+<DL COMPACT><DT><DD>
+the offset of file
+</DL>
+
+<P>
+
+<I>vlen</I>
+<DL COMPACT><DT><DD>
+read blocks
+</DL>
+
+<P>
+
+<I>count</I>
+<DL COMPACT><DT><DD>
+read bytes
+</DL>
+
+<P>
+
+<I>file</I>
+<DL COMPACT><DT><DD>
+argument file, indicates if the file has been opened.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFSD\&.RENAME</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFSD\&.RENAME</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfsd.rename - NFS server renaming a file for client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfsd.rename
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>tfh</I>
+<DL COMPACT><DT><DD>
+file handler of new path
+</DL>
+
+<P>
+
+<I>flen</I>
+<DL COMPACT><DT><DD>
+length of old file name
+</DL>
+
+<P>
+
+<I>client_ip</I>
+<DL COMPACT><DT><DD>
+the ip address of client
+</DL>
+
+<P>
+
+<I>tname</I>
+<DL COMPACT><DT><DD>
+new file name
+</DL>
+
+<P>
+
+<I>tlen</I>
+<DL COMPACT><DT><DD>
+length of new file name
+</DL>
+
+<P>
+
+<I>filename</I>
+<DL COMPACT><DT><DD>
+old file name
+</DL>
+
+<P>
+
+<I>fh</I>
+<DL COMPACT><DT><DD>
+file handler of old path
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFSD\&.UNLINK</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFSD\&.UNLINK</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfsd.unlink - NFS server removing a file or a directory for client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfsd.unlink
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+file type (file or dir)
+</DL>
+
+<P>
+
+<I>client_ip</I>
+<DL COMPACT><DT><DD>
+the ip address of client
+</DL>
+
+<P>
+
+<I>fh</I>
+<DL COMPACT><DT><DD>
+file handle (the first part is the length of the file handle)
+</DL>
+
+<P>
+
+<I>filename</I>
+<DL COMPACT><DT><DD>
+file name
+</DL>
+
+<P>
+
+<I>filelen</I>
+<DL COMPACT><DT><DD>
+the length of file name
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::NFSD\&.WRITE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::NFSD\&.WRITE</H1>
+Section: Network File Storage Tapsets (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::nfsd.write - NFS server writing data to a file for client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+nfsd.write
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+read bytes
+</DL>
+
+<P>
+
+<I>fh</I>
+<DL COMPACT><DT><DD>
+file handle (the first part is the length of the file handle)
+</DL>
+
+<P>
+
+<I>vec</I>
+<DL COMPACT><DT><DD>
+struct kvec, includes buf address in kernel address and length of each buffer
+</DL>
+
+<P>
+
+<I>client_ip</I>
+<DL COMPACT><DT><DD>
+the ip address of client
+</DL>
+
+<P>
+
+<I>file</I>
+<DL COMPACT><DT><DD>
+argument file, indicates if the file has been opened.
+</DL>
+
+<P>
+
+<I>count</I>
+<DL COMPACT><DT><DD>
+read bytes
+</DL>
+
+<P>
+
+<I>vlen</I>
+<DL COMPACT><DT><DD>
+read blocks
+</DL>
+
+<P>
+
+<I>offset</I>
+<DL COMPACT><DT><DD>
+the offset of file
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCHEDULER\&.B</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCHEDULER\&.B</H1>
+Section: Scheduler Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scheduler.balance - A cpu attempting to find more work.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scheduler.balance
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The cpu looking for more work.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCHEDULER\&.C</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCHEDULER\&.C</H1>
+Section: Scheduler Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scheduler.cpu_off - Process is about to stop running on a cpu
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scheduler.cpu_off
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>task_next</I>
+<DL COMPACT><DT><DD>
+the process replacing current
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<I>task_prev</I>
+<DL COMPACT><DT><DD>
+the process leaving the cpu (same as current)
+</DL>
+
+<P>
+
+<I>idle</I>
+<DL COMPACT><DT><DD>
+boolean indicating whether current is the idle process
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process leaving the cpu.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCHEDULER\&.C</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCHEDULER\&.C</H1>
+Section: Scheduler Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scheduler.cpu_on - Process is beginning execution on a cpu
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scheduler.cpu_on
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<I>task_prev</I>
+<DL COMPACT><DT><DD>
+the process that was previously running on this cpu
+</DL>
+
+<P>
+
+<I>idle</I>
+<DL COMPACT><DT><DD>
+- boolean indicating whether current is the idle process
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The resuming process.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCHEDULER\&.C</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCHEDULER\&.C</H1>
+Section: Scheduler Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scheduler.ctxswitch - A context switch is occuring.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scheduler.ctxswitch
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>next_pid</I>
+<DL COMPACT><DT><DD>
+The PID of the process to be switched in
+</DL>
+
+<P>
+
+<I>nexttsk_state</I>
+<DL COMPACT><DT><DD>
+the state of the process to be switched in
+</DL>
+
+<P>
+
+<I>prev_pid</I>
+<DL COMPACT><DT><DD>
+The PID of the process to be switched out
+</DL>
+
+<P>
+
+<I>prev_task_name</I>
+<DL COMPACT><DT><DD>
+The name of the process to be switched out
+</DL>
+
+<P>
+
+<I>prev_priority</I>
+<DL COMPACT><DT><DD>
+The priority of the process to be switched out
+</DL>
+
+<P>
+
+<I>prevtsk_state</I>
+<DL COMPACT><DT><DD>
+the state of the process to be switched out
+</DL>
+
+<P>
+
+<I>prev_tid</I>
+<DL COMPACT><DT><DD>
+The TID of the process to be switched out
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<I>next_task_name</I>
+<DL COMPACT><DT><DD>
+The name of the process to be switched in
+</DL>
+
+<P>
+
+<I>next_priority</I>
+<DL COMPACT><DT><DD>
+The priority of the process to be switched in
+</DL>
+
+<P>
+
+<I>next_tid</I>
+<DL COMPACT><DT><DD>
+The TID of the process to be switched in
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCHEDULER\&.K</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCHEDULER\&.K</H1>
+Section: Scheduler Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scheduler.kthread_stop - A thread created by kthread_create is being stopped
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scheduler.kthread_stop
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>thread_priority</I>
+<DL COMPACT><DT><DD>
+priority of the thread
+</DL>
+
+<P>
+
+<I>thread_pid</I>
+<DL COMPACT><DT><DD>
+PID of the thread being stopped
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCHEDULER\&.K</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCHEDULER\&.K</H1>
+Section: Scheduler Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scheduler.kthread_stop.return - A kthread is stopped and gets the return value
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scheduler.kthread_stop.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>return_value</I>
+<DL COMPACT><DT><DD>
+return value after stopping the thread
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCHEDULER\&.M</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCHEDULER\&.M</H1>
+Section: Scheduler Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scheduler.migrate - Task migrating across cpus
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scheduler.migrate
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>cpu_to</I>
+<DL COMPACT><DT><DD>
+the destination cpu
+</DL>
+
+<P>
+
+<I>cpu_from</I>
+<DL COMPACT><DT><DD>
+the original cpu
+</DL>
+
+<P>
+
+<I>priority</I>
+<DL COMPACT><DT><DD>
+priority of the task being migrated
+</DL>
+
+<P>
+
+<I>pid</I>
+<DL COMPACT><DT><DD>
+PID of the task being migrated
+</DL>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+the process that is being migrated
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCHEDULER\&.P</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCHEDULER\&.P</H1>
+Section: Scheduler Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scheduler.process_exit - Process exiting
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scheduler.process_exit
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<I>pid</I>
+<DL COMPACT><DT><DD>
+PID of the process exiting
+</DL>
+
+<P>
+
+<I>priority</I>
+<DL COMPACT><DT><DD>
+priority of the process exiting
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCHEDULER\&.P</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCHEDULER\&.P</H1>
+Section: Scheduler Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scheduler.process_fork - Process forked
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scheduler.process_fork
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>parent_pid</I>
+<DL COMPACT><DT><DD>
+PID of the parent process
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<I>child_pid</I>
+<DL COMPACT><DT><DD>
+PID of the child process
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCHEDULER\&.P</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCHEDULER\&.P</H1>
+Section: Scheduler Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scheduler.process_free - Scheduler freeing a data structure for a process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scheduler.process_free
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<I>pid</I>
+<DL COMPACT><DT><DD>
+PID of the process getting freed
+</DL>
+
+<P>
+
+<I>priority</I>
+<DL COMPACT><DT><DD>
+priority of the process getting freed
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCHEDULER\&.P</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCHEDULER\&.P</H1>
+Section: Scheduler Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scheduler.process_wait - Scheduler starting to wait on a process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scheduler.process_wait
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<I>pid</I>
+<DL COMPACT><DT><DD>
+PID of the process scheduler is waiting on
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCHEDULER\&.S</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCHEDULER\&.S</H1>
+Section: Scheduler Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scheduler.signal_send - Sending a signal
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scheduler.signal_send
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<I>signal_number</I>
+<DL COMPACT><DT><DD>
+signal number
+</DL>
+
+<P>
+
+<I>pid</I>
+<DL COMPACT><DT><DD>
+pid of the process sending signal
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCHEDULER\&.T</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCHEDULER\&.T</H1>
+Section: Scheduler Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scheduler.tick - Schedulers internal tick, a processes timeslice accounting is updated
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scheduler.tick
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>idle</I>
+<DL COMPACT><DT><DD>
+boolean indicating whether current is the idle process
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process whose accounting will be updated.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCHEDULER\&.W</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCHEDULER\&.W</H1>
+Section: Scheduler Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scheduler.wait_task - Waiting on a task to unschedule (become inactive)
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scheduler.wait_task
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>task_priority</I>
+<DL COMPACT><DT><DD>
+priority of the task
+</DL>
+
+<P>
+
+<I>task_pid</I>
+<DL COMPACT><DT><DD>
+PID of the task the scheduler is waiting on
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCHEDULER\&.W</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCHEDULER\&.W</H1>
+Section: Scheduler Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scheduler.wakeup - Task is woken up
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scheduler.wakeup
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>task_state</I>
+<DL COMPACT><DT><DD>
+state of the task being woken up
+</DL>
+
+<P>
+
+<I>task_pid</I>
+<DL COMPACT><DT><DD>
+PID of the task being woken up
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<I>task_tid</I>
+<DL COMPACT><DT><DD>
+tid of the task being woken up
+</DL>
+
+<P>
+
+<I>task_priority</I>
+<DL COMPACT><DT><DD>
+priority of the task being woken up
+</DL>
+
+<P>
+
+<I>task_cpu</I>
+<DL COMPACT><DT><DD>
+cpu of the task being woken up
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCHEDULER\&.W</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCHEDULER\&.W</H1>
+Section: Scheduler Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scheduler.wakeup_new - Newly created task is woken up for the first time
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scheduler.wakeup_new
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>task_cpu</I>
+<DL COMPACT><DT><DD>
+cpu of the task woken up
+</DL>
+
+<P>
+
+<I>task_priority</I>
+<DL COMPACT><DT><DD>
+priority of the new task
+</DL>
+
+<P>
+
+<I>task_tid</I>
+<DL COMPACT><DT><DD>
+TID of the new task woken up
+</DL>
+
+<P>
+
+<I>task_state</I>
+<DL COMPACT><DT><DD>
+state of the task woken up
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<I>task_pid</I>
+<DL COMPACT><DT><DD>
+PID of the new task woken up
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCSI\&.IOCOMP</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCSI\&.IOCOMP</H1>
+Section: SCSI Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scsi.iocompleted - SCSI mid-layer running the completion processing for block device I/O requests
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scsi.iocompleted
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>host_no</I>
+<DL COMPACT><DT><DD>
+The host number
+</DL>
+
+<P>
+
+<I>lun</I>
+<DL COMPACT><DT><DD>
+The lun number
+</DL>
+
+<P>
+
+<I>device_state_str</I>
+<DL COMPACT><DT><DD>
+The current state of the device, as a string
+</DL>
+
+<P>
+
+<I>channel</I>
+<DL COMPACT><DT><DD>
+The channel number
+</DL>
+
+<P>
+
+<I>dev_id</I>
+<DL COMPACT><DT><DD>
+The scsi device id
+</DL>
+
+<P>
+
+<I>req_addr</I>
+<DL COMPACT><DT><DD>
+The current struct request pointer, as a number
+</DL>
+
+<P>
+
+<I>goodbytes</I>
+<DL COMPACT><DT><DD>
+The bytes completed
+</DL>
+
+<P>
+
+<I>data_direction_str</I>
+<DL COMPACT><DT><DD>
+Data direction, as a string
+</DL>
+
+<P>
+
+<I>data_direction</I>
+<DL COMPACT><DT><DD>
+The data_direction specifies whether this command is from/to the device
+</DL>
+
+<P>
+
+<I>device_state</I>
+<DL COMPACT><DT><DD>
+The current state of the device
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCSI\&.IODISP</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCSI\&.IODISP</H1>
+Section: SCSI Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scsi.iodispatching - SCSI mid-layer dispatched low-level SCSI command
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scsi.iodispatching
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>request_bufflen</I>
+<DL COMPACT><DT><DD>
+The request buffer length
+</DL>
+
+<P>
+
+<I>device_state_str</I>
+<DL COMPACT><DT><DD>
+The current state of the device, as a string
+</DL>
+
+<P>
+
+<I>channel</I>
+<DL COMPACT><DT><DD>
+The channel number
+</DL>
+
+<P>
+
+<I>dev_id</I>
+<DL COMPACT><DT><DD>
+The scsi device id
+</DL>
+
+<P>
+
+<I>host_no</I>
+<DL COMPACT><DT><DD>
+The host number
+</DL>
+
+<P>
+
+<I>lun</I>
+<DL COMPACT><DT><DD>
+The lun number
+</DL>
+
+<P>
+
+<I>data_direction_str</I>
+<DL COMPACT><DT><DD>
+Data direction, as a string
+</DL>
+
+<P>
+
+<I>device_state</I>
+<DL COMPACT><DT><DD>
+The current state of the device
+</DL>
+
+<P>
+
+<I>data_direction</I>
+<DL COMPACT><DT><DD>
+The data_direction specifies whether this command is from/to the device 0 (DMA_BIDIRECTIONAL), 1 (DMA_TO_DEVICE), 2 (DMA_FROM_DEVICE), 3 (DMA_NONE)
+</DL>
+
+<P>
+
+<I>req_addr</I>
+<DL COMPACT><DT><DD>
+The current struct request pointer, as a number
+</DL>
+
+<P>
+
+<I>request_buffer</I>
+<DL COMPACT><DT><DD>
+The request buffer address
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCSI\&.IODONE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCSI\&.IODONE</H1>
+Section: SCSI Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scsi.iodone - SCSI command completed by low level driver and enqueued into the done queue.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scsi.iodone
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>data_direction</I>
+<DL COMPACT><DT><DD>
+The data_direction specifies whether this command is from/to the device.
+</DL>
+
+<P>
+
+<I>device_state</I>
+<DL COMPACT><DT><DD>
+The current state of the device
+</DL>
+
+<P>
+
+<I>data_direction_str</I>
+<DL COMPACT><DT><DD>
+Data direction, as a string
+</DL>
+
+<P>
+
+<I>req_addr</I>
+<DL COMPACT><DT><DD>
+The current struct request pointer, as a number
+</DL>
+
+<P>
+
+<I>dev_id</I>
+<DL COMPACT><DT><DD>
+The scsi device id
+</DL>
+
+<P>
+
+<I>device_state_str</I>
+<DL COMPACT><DT><DD>
+The current state of the device, as a string
+</DL>
+
+<P>
+
+<I>channel</I>
+<DL COMPACT><DT><DD>
+The channel number
+</DL>
+
+<P>
+
+<I>host_no</I>
+<DL COMPACT><DT><DD>
+The host number
+</DL>
+
+<P>
+
+<I>lun</I>
+<DL COMPACT><DT><DD>
+The lun number
+</DL>
+
+<P>
+
+<I>scsi_timer_pending</I>
+<DL COMPACT><DT><DD>
+1 if a timer is pending on this request
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCSI\&.IOENTR</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCSI\&.IOENTR</H1>
+Section: SCSI Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scsi.ioentry - Prepares a SCSI mid-layer request
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scsi.ioentry
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>device_state</I>
+<DL COMPACT><DT><DD>
+The current state of the device
+</DL>
+
+<P>
+
+<I>device_state_str</I>
+<DL COMPACT><DT><DD>
+The current state of the device, as a string
+</DL>
+
+<P>
+
+<I>disk_major</I>
+<DL COMPACT><DT><DD>
+The major number of the disk (-1 if no information)
+</DL>
+
+<P>
+
+<I>disk_minor</I>
+<DL COMPACT><DT><DD>
+The minor number of the disk (-1 if no information)
+</DL>
+
+<P>
+
+<I>req_addr</I>
+<DL COMPACT><DT><DD>
+The current struct request pointer, as a number
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCSI\&.IOEXEC</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCSI\&.IOEXEC</H1>
+Section: SCSI Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scsi.ioexecute - Create mid-layer SCSI request and wait for the result
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scsi.ioexecute
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>lun</I>
+<DL COMPACT><DT><DD>
+The lun number
+</DL>
+
+<P>
+
+<I>host_no</I>
+<DL COMPACT><DT><DD>
+The host number
+</DL>
+
+<P>
+
+<I>retries</I>
+<DL COMPACT><DT><DD>
+Number of times to retry request
+</DL>
+
+<P>
+
+<I>request_bufflen</I>
+<DL COMPACT><DT><DD>
+The data buffer buffer length
+</DL>
+
+<P>
+
+<I>channel</I>
+<DL COMPACT><DT><DD>
+The channel number
+</DL>
+
+<P>
+
+<I>device_state_str</I>
+<DL COMPACT><DT><DD>
+The current state of the device, as a string
+</DL>
+
+<P>
+
+<I>dev_id</I>
+<DL COMPACT><DT><DD>
+The scsi device id
+</DL>
+
+<P>
+
+<I>timeout</I>
+<DL COMPACT><DT><DD>
+Request timeout in seconds
+</DL>
+
+<P>
+
+<I>request_buffer</I>
+<DL COMPACT><DT><DD>
+The data buffer address
+</DL>
+
+<P>
+
+<I>data_direction_str</I>
+<DL COMPACT><DT><DD>
+Data direction, as a string
+</DL>
+
+<P>
+
+<I>device_state</I>
+<DL COMPACT><DT><DD>
+The current state of the device
+</DL>
+
+<P>
+
+<I>data_direction</I>
+<DL COMPACT><DT><DD>
+The data_direction specifies whether this command is from/to the device.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SCSI\&.SET_ST</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SCSI\&.SET_ST</H1>
+Section: SCSI Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::scsi.set_state - Order SCSI device state change
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+scsi.set_state
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>state_str</I>
+<DL COMPACT><DT><DD>
+The new state of the device, as a string
+</DL>
+
+<P>
+
+<I>old_state</I>
+<DL COMPACT><DT><DD>
+The current state of the device
+</DL>
+
+<P>
+
+<I>state</I>
+<DL COMPACT><DT><DD>
+The new state of the device
+</DL>
+
+<P>
+
+<I>dev_id</I>
+<DL COMPACT><DT><DD>
+The scsi device id
+</DL>
+
+<P>
+
+<I>channel</I>
+<DL COMPACT><DT><DD>
+The channel number
+</DL>
+
+<P>
+
+<I>old_state_str</I>
+<DL COMPACT><DT><DD>
+The current state of the device, as a string
+</DL>
+
+<P>
+
+<I>host_no</I>
+<DL COMPACT><DT><DD>
+The host number
+</DL>
+
+<P>
+
+<I>lun</I>
+<DL COMPACT><DT><DD>
+The lun number
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.CHEC</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.CHEC</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.check_ignored - Checking to see signal is ignored
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.check_ignored
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>sig_name</I>
+<DL COMPACT><DT><DD>
+A string representation of the signal
+</DL>
+
+<P>
+
+<I>sig_pid</I>
+<DL COMPACT><DT><DD>
+The PID of the process receiving the signal
+</DL>
+
+<P>
+
+<I>sig</I>
+<DL COMPACT><DT><DD>
+The number of the signal
+</DL>
+
+<P>
+
+<I>pid_name</I>
+<DL COMPACT><DT><DD>
+Name of the process receiving the signal
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.CHEC</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.CHEC</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.check_ignored.return - Check to see signal is ignored completed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.check_ignored.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>retstr</I>
+<DL COMPACT><DT><DD>
+Return value as a string
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.CHEC</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.CHEC</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.checkperm - Check being performed on a sent signal
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.checkperm
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+A task handle to the signal recipient
+</DL>
+
+<P>
+
+<I>sig_pid</I>
+<DL COMPACT><DT><DD>
+The PID of the process receiving the signal
+</DL>
+
+<P>
+
+<I>sig_name</I>
+<DL COMPACT><DT><DD>
+A string representation of the signal
+</DL>
+
+<P>
+
+<I>sig</I>
+<DL COMPACT><DT><DD>
+The number of the signal
+</DL>
+
+<P>
+
+<I>pid_name</I>
+<DL COMPACT><DT><DD>
+Name of the process receiving the signal
+</DL>
+
+<P>
+
+<I>sinfo</I>
+<DL COMPACT><DT><DD>
+The address of the siginfo structure
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>si_code</I>
+<DL COMPACT><DT><DD>
+Indicates the signal type
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.CHEC</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.CHEC</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.checkperm.return - Check performed on a sent signal completed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.checkperm.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>retstr</I>
+<DL COMPACT><DT><DD>
+Return value as a string
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.DO_A</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.DO_A</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.do_action - Examining or changing a signal action
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.do_action
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>sa_mask</I>
+<DL COMPACT><DT><DD>
+The new mask of the signal
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>sig</I>
+<DL COMPACT><DT><DD>
+The signal to be examined/changed
+</DL>
+
+<P>
+
+<I>sigact_addr</I>
+<DL COMPACT><DT><DD>
+The address of the new sigaction struct associated with the signal
+</DL>
+
+<P>
+
+<I>sig_name</I>
+<DL COMPACT><DT><DD>
+A string representation of the signal
+</DL>
+
+<P>
+
+<I>oldsigact_addr</I>
+<DL COMPACT><DT><DD>
+The address of the old sigaction struct associated with the signal
+</DL>
+
+<P>
+
+<I>sa_handler</I>
+<DL COMPACT><DT><DD>
+The new handler of the signal
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.DO_A</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.DO_A</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.do_action.return - Examining or changing a signal action completed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.do_action.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>retstr</I>
+<DL COMPACT><DT><DD>
+Return value as a string
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.FLUS</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.FLUS</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.flush - Flushing all pending signals for a task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.flush
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>pid_name</I>
+<DL COMPACT><DT><DD>
+The name of the process associated with the task performing the flush
+</DL>
+
+<P>
+
+<I>sig_pid</I>
+<DL COMPACT><DT><DD>
+The PID of the process associated with the task performing the flush
+</DL>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+The task handler of the process performing the flush
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.FORC</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.FORC</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.force_segv - Forcing send of SIGSEGV
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.force_segv
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>sig_name</I>
+<DL COMPACT><DT><DD>
+A string representation of the signal
+</DL>
+
+<P>
+
+<I>sig_pid</I>
+<DL COMPACT><DT><DD>
+The PID of the process receiving the signal
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>sig</I>
+<DL COMPACT><DT><DD>
+The number of the signal
+</DL>
+
+<P>
+
+<I>pid_name</I>
+<DL COMPACT><DT><DD>
+Name of the process receiving the signal
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.FORC</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.FORC</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.force_segv.return - Forcing send of SIGSEGV complete
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.force_segv.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>retstr</I>
+<DL COMPACT><DT><DD>
+Return value as a string
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.HAND</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.HAND</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.handle - Signal handler being invoked
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.handle
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>sig_mode</I>
+<DL COMPACT><DT><DD>
+Indicates whether the signal was a user-mode or kernel-mode signal
+</DL>
+
+<P>
+
+<I>ka_addr</I>
+<DL COMPACT><DT><DD>
+The address of the k_sigaction table associated with the signal
+</DL>
+
+<P>
+
+<I>regs</I>
+<DL COMPACT><DT><DD>
+The address of the kernel-mode stack area (deprecated in SystemTap 2.1)
+</DL>
+
+<P>
+
+<I>oldset_addr</I>
+<DL COMPACT><DT><DD>
+The address of the bitmask array of blocked signals (deprecated in SystemTap 2.1)
+</DL>
+
+<P>
+
+<I>sig_name</I>
+<DL COMPACT><DT><DD>
+A string representation of the signal
+</DL>
+
+<P>
+
+<I>sig</I>
+<DL COMPACT><DT><DD>
+The signal number that invoked the signal handler
+</DL>
+
+<P>
+
+<I>sinfo</I>
+<DL COMPACT><DT><DD>
+The address of the siginfo table
+</DL>
+
+<P>
+
+<I>sig_code</I>
+<DL COMPACT><DT><DD>
+The si_code value of the siginfo signal
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.HAND</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.HAND</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.handle.return - Signal handler invocation completed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.handle.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>retstr</I>
+<DL COMPACT><DT><DD>
+Return value as a string
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+(deprecated in SystemTap 2.1)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.PEND</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.PEND</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.pending - Examining pending signal
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.pending
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>sigset_size</I>
+<DL COMPACT><DT><DD>
+The size of the user-space signal set
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>sigset_add</I>
+<DL COMPACT><DT><DD>
+The address of the user-space signal set (sigset_t)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+This probe is used to examine a set of signals pending for delivery to a specific thread. This normally occurs when the do_sigpending kernel function is executed.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.PEND</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.PEND</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.pending.return - Examination of pending signal completed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.pending.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>retstr</I>
+<DL COMPACT><DT><DD>
+Return value as a string
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.PROC</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.PROC</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.procmask - Examining or changing blocked signals
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.procmask
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>sigset</I>
+<DL COMPACT><DT><DD>
+The actual value to be set for sigset_t (correct?)
+</DL>
+
+<P>
+
+<I>oldsigset_addr</I>
+<DL COMPACT><DT><DD>
+The old address of the signal set (sigset_t)
+</DL>
+
+<P>
+
+<I>how</I>
+<DL COMPACT><DT><DD>
+Indicates how to change the blocked signals; possible values are SIG_BLOCK=0 (for blocking signals), SIG_UNBLOCK=1 (for unblocking signals), and SIG_SETMASK=2 for setting the signal mask.
+</DL>
+
+<P>
+
+<I>sigset_addr</I>
+<DL COMPACT><DT><DD>
+The address of the signal set (sigset_t) to be implemented
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.PROC</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.PROC</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.procmask.return - Examining or changing blocked signals completed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.procmask.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>retstr</I>
+<DL COMPACT><DT><DD>
+Return value as a string
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.SEND</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.SEND</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.send - Signal being sent to a process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.send
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>sig_pid</I>
+<DL COMPACT><DT><DD>
+The PID of the process receiving the signal
+</DL>
+
+<P>
+
+<I>sig_name</I>
+<DL COMPACT><DT><DD>
+A string representation of the signal
+</DL>
+
+<P>
+
+<I>shared</I>
+<DL COMPACT><DT><DD>
+Indicates whether the signal is shared by the thread group
+</DL>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+A task handle to the signal recipient
+</DL>
+
+<P>
+
+<I>sinfo</I>
+<DL COMPACT><DT><DD>
+The address of siginfo struct
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+The name of the function used to send out the signal
+</DL>
+
+<P>
+
+<I>si_code</I>
+<DL COMPACT><DT><DD>
+Indicates the signal type
+</DL>
+
+<P>
+
+<I>send2queue</I>
+<DL COMPACT><DT><DD>
+Indicates whether the signal is sent to an existing sigqueue (deprecated in SystemTap 2.1)
+</DL>
+
+<P>
+
+<I>sig</I>
+<DL COMPACT><DT><DD>
+The number of the signal
+</DL>
+
+<P>
+
+<I>pid_name</I>
+<DL COMPACT><DT><DD>
+The name of the signal recipient
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The signal's sender.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.SEND</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.SEND</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.send.return - Signal being sent to a process completed (deprecated in SystemTap 2.1)
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.send.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>retstr</I>
+<DL COMPACT><DT><DD>
+The return value to either __group_send_sig_info, specific_send_sig_info, or send_sigqueue
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+The name of the function used to send out the signal
+</DL>
+
+<P>
+
+<I>send2queue</I>
+<DL COMPACT><DT><DD>
+Indicates whether the sent signal was sent to an existing sigqueue
+</DL>
+
+<P>
+
+<I>shared</I>
+<DL COMPACT><DT><DD>
+Indicates whether the sent signal is shared by the thread group.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The signal's sender. (correct?)
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Possible __group_send_sig_info and specific_send_sig_info return values are as follows;
+<P>
+
+0 -- The signal is successfully sent to a process, which means that, (1) the signal was ignored by the receiving process, (2) this is a non-RT signal and the system already has one queued, and (3) the signal was successfully added to the sigqueue of the receiving process.
+<P>
+
+-EAGAIN -- The sigqueue of the receiving process is overflowing, the signal was RT, and the signal was sent by a user using something other than
+<B>kill</B>.
+<P>
+
+Possible send_group_sigqueue and send_sigqueue return values are as follows;
+<P>
+
+0 -- The signal was either successfully added into the sigqueue of the receiving process, or a SI_TIMER entry is already queued (in which case, the overrun count will be simply incremented).
+<P>
+
+1 -- The signal was ignored by the receiving process.
+<P>
+
+-1 -- (send_sigqueue only) The task was marked exiting, allowing * posix_timer_event to redirect it to the group leader.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.SEND</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.SEND</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.send_sig_queue - Queuing a signal to a process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.send_sig_queue
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>pid_name</I>
+<DL COMPACT><DT><DD>
+Name of the process to which the signal is queued
+</DL>
+
+<P>
+
+<I>sig</I>
+<DL COMPACT><DT><DD>
+The queued signal
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>sigqueue_addr</I>
+<DL COMPACT><DT><DD>
+The address of the signal queue
+</DL>
+
+<P>
+
+<I>sig_name</I>
+<DL COMPACT><DT><DD>
+A string representation of the signal
+</DL>
+
+<P>
+
+<I>sig_pid</I>
+<DL COMPACT><DT><DD>
+The PID of the process to which the signal is queued
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.SEND</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.SEND</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.send_sig_queue.return - Queuing a signal to a process completed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.send_sig_queue.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>retstr</I>
+<DL COMPACT><DT><DD>
+Return value as a string
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.SYS_</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.SYS_</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.sys_tgkill - Sending kill signal to a thread group
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.sys_tgkill
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>pid_name</I>
+<DL COMPACT><DT><DD>
+The name of the signal recipient
+</DL>
+
+<P>
+
+<I>sig</I>
+<DL COMPACT><DT><DD>
+The specific kill signal sent to the process
+</DL>
+
+<P>
+
+<I>sig_name</I>
+<DL COMPACT><DT><DD>
+A string representation of the signal
+</DL>
+
+<P>
+
+<I>sig_pid</I>
+<DL COMPACT><DT><DD>
+The PID of the thread receiving the kill signal
+</DL>
+
+<P>
+
+<I>tgid</I>
+<DL COMPACT><DT><DD>
+The thread group ID of the thread receiving the kill signal
+</DL>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+A task handle to the signal recipient
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The tgkill call is similar to tkill, except that it also allows the caller to specify the thread group ID of the thread to be signalled. This protects against TID reuse.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.SYS_</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.SYS_</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.sys_tgkill.return - Sending kill signal to a thread group completed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.sys_tgkill.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>retstr</I>
+<DL COMPACT><DT><DD>
+The return value to either __group_send_sig_info,
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.SYS_</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.SYS_</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.sys_tkill - Sending a kill signal to a thread
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.sys_tkill
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>pid_name</I>
+<DL COMPACT><DT><DD>
+The name of the signal recipient
+</DL>
+
+<P>
+
+<I>sig</I>
+<DL COMPACT><DT><DD>
+The specific signal sent to the process
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+A task handle to the signal recipient
+</DL>
+
+<P>
+
+<I>sig_name</I>
+<DL COMPACT><DT><DD>
+A string representation of the signal
+</DL>
+
+<P>
+
+<I>sig_pid</I>
+<DL COMPACT><DT><DD>
+The PID of the process receiving the kill signal
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The tkill call is analogous to <A HREF="kill.2.html">kill</A>(2), except that it also allows a process within a specific thread group to be targeted. Such processes are targeted through their unique thread IDs (TID).
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.SYSK</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.SYSK</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.syskill - Sending kill signal to a process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.syskill
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>sig</I>
+<DL COMPACT><DT><DD>
+The specific signal sent to the process
+</DL>
+
+<P>
+
+<I>pid_name</I>
+<DL COMPACT><DT><DD>
+The name of the signal recipient
+</DL>
+
+<P>
+
+<I>sig_name</I>
+<DL COMPACT><DT><DD>
+A string representation of the signal
+</DL>
+
+<P>
+
+<I>sig_pid</I>
+<DL COMPACT><DT><DD>
+The PID of the process receiving the signal
+</DL>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+A task handle to the signal recipient
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.SYSK</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.SYSK</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.syskill.return - Sending kill signal completed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.syskill.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+None
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.SYST</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.SYST</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.systkill.return - Sending kill signal to a thread completed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.systkill.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>retstr</I>
+<DL COMPACT><DT><DD>
+The return value to either __group_send_sig_info,
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SIGNAL\&.WAKE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SIGNAL\&.WAKE</H1>
+Section: Signal Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::signal.wakeup - Sleeping process being wakened for signal
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+signal.wakeup
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>sig_pid</I>
+<DL COMPACT><DT><DD>
+The PID of the process to wake
+</DL>
+
+<P>
+
+<I>resume</I>
+<DL COMPACT><DT><DD>
+Indicates whether to wake up a task in a STOPPED or TRACED state
+</DL>
+
+<P>
+
+<I>state_mask</I>
+<DL COMPACT><DT><DD>
+A string representation indicating the mask of task states to wake. Possible values are TASK_INTERRUPTIBLE, TASK_STOPPED, TASK_TRACED, TASK_WAKEKILL, and TASK_INTERRUPTIBLE.
+</DL>
+
+<P>
+
+<I>pid_name</I>
+<DL COMPACT><DT><DD>
+Name of the process to wake
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SOCKET\&.AIO_</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SOCKET\&.AIO_</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::socket.aio_read - Receiving message via <B>sock_aio_read</B>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+socket.aio_read
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+Socket type value
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Protocol value
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Message size in bytes
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+Socket flags value
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+Protocol family value
+</DL>
+
+<P>
+
+<I>state</I>
+<DL COMPACT><DT><DD>
+Socket state value
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The message sender
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires at the beginning of receiving a message on a socket via the
+<B>sock_aio_read</B>
+function
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SOCKET\&.AIO_</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SOCKET\&.AIO_</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::socket.aio_read.return - Conclusion of message received via <B>sock_aio_read</B>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+socket.aio_read.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+Socket type value
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+Protocol family value
+</DL>
+
+<P>
+
+<I>state</I>
+<DL COMPACT><DT><DD>
+Socket state value
+</DL>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+Socket flags value
+</DL>
+
+<P>
+
+<I>success</I>
+<DL COMPACT><DT><DD>
+Was receive successful? (1 = yes, 0 = no)
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Protocol value
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Size of message received (in bytes) or error code if success = 0
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The message receiver.
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires at the conclusion of receiving a message on a socket via the
+<B>sock_aio_read</B>
+function
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SOCKET\&.AIO_</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SOCKET\&.AIO_</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::socket.aio_write - Message send via <B>sock_aio_write</B>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+socket.aio_write
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>state</I>
+<DL COMPACT><DT><DD>
+Socket state value
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+Protocol family value
+</DL>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+Socket flags value
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Protocol value
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Message size in bytes
+</DL>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+Socket type value
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The message sender
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires at the beginning of sending a message on a socket via the
+<B>sock_aio_write</B>
+function
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SOCKET\&.AIO_</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SOCKET\&.AIO_</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::socket.aio_write.return - Conclusion of message send via <B>sock_aio_write</B>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+socket.aio_write.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+Socket flags value
+</DL>
+
+<P>
+
+<I>success</I>
+<DL COMPACT><DT><DD>
+Was receive successful? (1 = yes, 0 = no)
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Protocol value
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Size of message received (in bytes) or error code if success = 0
+</DL>
+
+<P>
+
+<I>state</I>
+<DL COMPACT><DT><DD>
+Socket state value
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+Protocol family value
+</DL>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+Socket type value
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The message receiver.
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires at the conclusion of sending a message on a socket via the
+<B>sock_aio_write</B>
+function
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SOCKET\&.CLOS</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SOCKET\&.CLOS</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::socket.close - Close a socket
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+socket.close
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+Socket type value
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+Socket flags value
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Protocol value
+</DL>
+
+<P>
+
+<I>state</I>
+<DL COMPACT><DT><DD>
+Socket state value
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+Protocol family value
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The requester (user process or kernel)
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires at the beginning of closing a socket.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SOCKET\&.CLOS</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SOCKET\&.CLOS</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::socket.close.return - Return from closing a socket
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+socket.close.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The requester (user process or kernel)
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires at the conclusion of closing a socket.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SOCKET\&.CREA</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SOCKET\&.CREA</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::socket.create - Creation of a socket
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+socket.create
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+Protocol family value
+</DL>
+
+<P>
+
+<I>requester</I>
+<DL COMPACT><DT><DD>
+Requested by user process or the kernel (1 = kernel, 0 = user)
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Protocol value
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+Socket type value
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The requester (see requester variable)
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires at the beginning of creating a socket.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SOCKET\&.CREA</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SOCKET\&.CREA</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::socket.create.return - Return from Creation of a socket
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+socket.create.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>err</I>
+<DL COMPACT><DT><DD>
+Error code if success == 0
+</DL>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+Socket type value
+</DL>
+
+<P>
+
+<I>success</I>
+<DL COMPACT><DT><DD>
+Was socket creation successful? (1 = yes, 0 = no)
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Protocol value
+</DL>
+
+<P>
+
+<I>requester</I>
+<DL COMPACT><DT><DD>
+Requested by user process or the kernel (1 = kernel, 0 = user)
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+Protocol family value
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The requester (user process or kernel)
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires at the conclusion of creating a socket.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SOCKET\&.READ</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SOCKET\&.READ</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::socket.readv - Receiving a message via <B>sock_readv</B>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+socket.readv
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+Socket flags value
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Message size in bytes
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Protocol value
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+Protocol family value
+</DL>
+
+<P>
+
+<I>state</I>
+<DL COMPACT><DT><DD>
+Socket state value
+</DL>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+Socket type value
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The message sender
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires at the beginning of receiving a message on a socket via the
+<B>sock_readv</B>
+function
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SOCKET\&.READ</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SOCKET\&.READ</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::socket.readv.return - Conclusion of receiving a message via <B>sock_readv</B>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+socket.readv.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Protocol value
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Size of message received (in bytes) or error code if success = 0
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>success</I>
+<DL COMPACT><DT><DD>
+Was receive successful? (1 = yes, 0 = no)
+</DL>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+Socket flags value
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+Protocol family value
+</DL>
+
+<P>
+
+<I>state</I>
+<DL COMPACT><DT><DD>
+Socket state value
+</DL>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+Socket type value
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The message receiver.
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires at the conclusion of receiving a message on a socket via the
+<B>sock_readv</B>
+function
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SOCKET\&.RECE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SOCKET\&.RECE</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::socket.receive - Message received on a socket.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+socket.receive
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+Socket type value
+</DL>
+
+<P>
+
+<I>state</I>
+<DL COMPACT><DT><DD>
+Socket state value
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+Protocol family value
+</DL>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+Socket flags value
+</DL>
+
+<P>
+
+<I>success</I>
+<DL COMPACT><DT><DD>
+Was send successful? (1 = yes, 0 = no)
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Protocol value
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Size of message received (in bytes) or error code if success = 0
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The message receiver
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SOCKET\&.RECV</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SOCKET\&.RECV</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::socket.recvmsg - Message being received on socket
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+socket.recvmsg
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+Socket flags value
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Protocol value
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Message size in bytes
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+Protocol family value
+</DL>
+
+<P>
+
+<I>state</I>
+<DL COMPACT><DT><DD>
+Socket state value
+</DL>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+Socket type value
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The message receiver.
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires at the beginning of receiving a message on a socket via the
+<B>sock_recvmsg</B>
+function
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SOCKET\&.RECV</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SOCKET\&.RECV</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::socket.recvmsg.return - Return from Message being received on socket
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+socket.recvmsg.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+Socket type value
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Protocol value
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Size of message received (in bytes) or error code if success = 0
+</DL>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+Socket flags value
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>success</I>
+<DL COMPACT><DT><DD>
+Was receive successful? (1 = yes, 0 = no)
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+Protocol family value
+</DL>
+
+<P>
+
+<I>state</I>
+<DL COMPACT><DT><DD>
+Socket state value
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The message receiver.
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires at the conclusion of receiving a message on a socket via the
+<B>sock_recvmsg</B>
+function.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SOCKET\&.SEND</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SOCKET\&.SEND</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::socket.send - Message sent on a socket.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+socket.send
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+Socket type value
+</DL>
+
+<P>
+
+<I>state</I>
+<DL COMPACT><DT><DD>
+Socket state value
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+Protocol family value
+</DL>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+Socket flags value
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>success</I>
+<DL COMPACT><DT><DD>
+Was send successful? (1 = yes, 0 = no)
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Protocol value
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Size of message sent (in bytes) or error code if success = 0
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The message sender
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SOCKET\&.SEND</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SOCKET\&.SEND</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::socket.sendmsg - Message is currently being sent on a socket.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+socket.sendmsg
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+Socket flags value
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Protocol value
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Message size in bytes
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+Protocol family value
+</DL>
+
+<P>
+
+<I>state</I>
+<DL COMPACT><DT><DD>
+Socket state value
+</DL>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+Socket type value
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The message sender
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires at the beginning of sending a message on a socket via the
+<B>sock_sendmsg</B>
+function
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SOCKET\&.SEND</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SOCKET\&.SEND</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::socket.sendmsg.return - Return from socket.sendmsg.
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+socket.sendmsg.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+Protocol family value
+</DL>
+
+<P>
+
+<I>state</I>
+<DL COMPACT><DT><DD>
+Socket state value
+</DL>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+Socket flags value
+</DL>
+
+<P>
+
+<I>success</I>
+<DL COMPACT><DT><DD>
+Was send successful? (1 = yes, 0 = no)
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Size of message sent (in bytes) or error code if success = 0
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Protocol value
+</DL>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+Socket type value
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The message sender.
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires at the conclusion of sending a message on a socket via the
+<B>sock_sendmsg</B>
+function
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SOCKET\&.WRIT</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SOCKET\&.WRIT</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::socket.writev - Message sent via <B>socket_writev</B>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+socket.writev
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+Socket type value
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+Protocol family value
+</DL>
+
+<P>
+
+<I>state</I>
+<DL COMPACT><DT><DD>
+Socket state value
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Protocol value
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Message size in bytes
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+Socket flags value
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The message sender
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires at the beginning of sending a message on a socket via the
+<B>sock_writev</B>
+function
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SOCKET\&.WRIT</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SOCKET\&.WRIT</H1>
+Section: Socket Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::socket.writev.return - Conclusion of message sent via <B>socket_writev</B>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+socket.writev.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>state</I>
+<DL COMPACT><DT><DD>
+Socket state value
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+Protocol family value
+</DL>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+Socket flags value
+</DL>
+
+<P>
+
+<I>success</I>
+<DL COMPACT><DT><DD>
+Was send successful? (1 = yes, 0 = no)
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Protocol value
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Size of message sent (in bytes) or error code if success = 0
+</DL>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+Socket type value
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The message receiver.
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires at the conclusion of sending a message on a socket via the
+<B>sock_writev</B>
+function
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SOFTIRQ\&.ENT</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SOFTIRQ\&.ENT</H1>
+Section: Interrupt Request (IRQ) Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::softirq.entry - Execution of handler for a pending softirq starting
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+softirq.entry
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>vec_nr</I>
+<DL COMPACT><DT><DD>
+softirq vector number
+</DL>
+
+<P>
+
+<I>vec</I>
+<DL COMPACT><DT><DD>
+softirq_action vector
+</DL>
+
+<P>
+
+<I>action</I>
+<DL COMPACT><DT><DD>
+pointer to softirq handler just about to execute
+</DL>
+
+<P>
+
+<I>h</I>
+<DL COMPACT><DT><DD>
+struct softirq_action* for current pending softirq
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SOFTIRQ\&.EXI</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SOFTIRQ\&.EXI</H1>
+Section: Interrupt Request (IRQ) Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::softirq.exit - Execution of handler for a pending softirq completed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+softirq.exit
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>action</I>
+<DL COMPACT><DT><DD>
+pointer to softirq handler that just finished execution
+</DL>
+
+<P>
+
+<I>h</I>
+<DL COMPACT><DT><DD>
+struct softirq_action* for just executed softirq
+</DL>
+
+<P>
+
+<I>vec_nr</I>
+<DL COMPACT><DT><DD>
+softirq vector number
+</DL>
+
+<P>
+
+<I>vec</I>
+<DL COMPACT><DT><DD>
+softirq_action vector
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::STAP\&.CACHE_</TITLE>
+</HEAD><BODY>
+<H1>PROBE::STAP\&.CACHE_</H1>
+Section: SystemTap Translator Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::stap.cache_add_mod - Adding kernel instrumentation module to cache
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+stap.cache_add_mod
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>source_path</I>
+<DL COMPACT><DT><DD>
+the path the .ko file is coming from (incl filename)
+</DL>
+
+<P>
+
+<I>dest_path</I>
+<DL COMPACT><DT><DD>
+the path the .ko file is going to (incl filename)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires just before the file is actually moved. Note: if moving fails, cache_add_src and cache_add_nss will not fire.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::STAP\&.CACHE_</TITLE>
+</HEAD><BODY>
+<H1>PROBE::STAP\&.CACHE_</H1>
+Section: SystemTap Translator Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::stap.cache_add_nss - Add NSS (Network Security Services) information to cache
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+stap.cache_add_nss
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>source_path</I>
+<DL COMPACT><DT><DD>
+the path the .sgn file is coming from (incl filename)
+</DL>
+
+<P>
+
+<I>dest_path</I>
+<DL COMPACT><DT><DD>
+the path the .sgn file is coming from (incl filename)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires just before the file is actually moved. Note: stap must compiled with NSS support; if moving the kernel module fails, this probe will not fire.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::STAP\&.CACHE_</TITLE>
+</HEAD><BODY>
+<H1>PROBE::STAP\&.CACHE_</H1>
+Section: SystemTap Translator Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::stap.cache_add_src - Adding C code translation to cache
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+stap.cache_add_src
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>source_path</I>
+<DL COMPACT><DT><DD>
+the path the .c file is coming from (incl filename)
+</DL>
+
+<P>
+
+<I>dest_path</I>
+<DL COMPACT><DT><DD>
+the path the .c file is going to (incl filename)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires just before the file is actually moved. Note: if moving the kernel module fails, this probe will not fire.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::STAP\&.CACHE_</TITLE>
+</HEAD><BODY>
+<H1>PROBE::STAP\&.CACHE_</H1>
+Section: SystemTap Translator Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::stap.cache_clean - Removing file from stap cache
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+stap.cache_clean
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>path</I>
+<DL COMPACT><DT><DD>
+the path to the .ko/.c file being removed
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires just before the call to unlink the module/source file.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::STAP\&.CACHE_</TITLE>
+</HEAD><BODY>
+<H1>PROBE::STAP\&.CACHE_</H1>
+Section: SystemTap Translator Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::stap.cache_get - Found item in stap cache
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+stap.cache_get
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>module_path</I>
+<DL COMPACT><DT><DD>
+the path of the .ko kernel module file
+</DL>
+
+<P>
+
+<I>source_path</I>
+<DL COMPACT><DT><DD>
+the path of the .c source file
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires just before the return of get_from_cache, when the cache grab is successful.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::STAP\&.PASS0</TITLE>
+</HEAD><BODY>
+<H1>PROBE::STAP\&.PASS0</H1>
+Section: SystemTap Translator Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::stap.pass0 - Starting stap pass0 (parsing command line arguments)
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+stap.pass0
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>session</I>
+<DL COMPACT><DT><DD>
+the systemtap_session variable s
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+pass0 fires after command line arguments have been parsed.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Invalid Manpage</TITLE></HEAD>
+<BODY>
+<H1>Invalid Manpage</H1>
+The requested file (stdin) is not a valid (unformatted) man page.</BODY></HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Invalid Manpage</TITLE></HEAD>
+<BODY>
+<H1>Invalid Manpage</H1>
+The requested file (stdin) is not a valid (unformatted) man page.</BODY></HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::STAP\&.PASS1A</TITLE>
+</HEAD><BODY>
+<H1>PROBE::STAP\&.PASS1A</H1>
+Section: SystemTap Translator Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::stap.pass1a - Starting stap pass1 (parsing user script)
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+stap.pass1a
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>session</I>
+<DL COMPACT><DT><DD>
+the systemtap_session variable s
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+pass1a fires just after the call to
+<B>gettimeofday</B>, before the user script is parsed.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::STAP\&.PASS1B</TITLE>
+</HEAD><BODY>
+<H1>PROBE::STAP\&.PASS1B</H1>
+Section: SystemTap Translator Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::stap.pass1b - Starting stap pass1 (parsing library scripts)
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+stap.pass1b
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>session</I>
+<DL COMPACT><DT><DD>
+the systemtap_session variable s
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+pass1b fires just before the library scripts are parsed.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::STAP\&.PASS2</TITLE>
+</HEAD><BODY>
+<H1>PROBE::STAP\&.PASS2</H1>
+Section: SystemTap Translator Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::stap.pass2 - Starting stap pass2 (elaboration)
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+stap.pass2
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>session</I>
+<DL COMPACT><DT><DD>
+the systemtap_session variable s
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+pass2 fires just after the call to
+<B>gettimeofday</B>, just before the call to semantic_pass.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Invalid Manpage</TITLE></HEAD>
+<BODY>
+<H1>Invalid Manpage</H1>
+The requested file (stdin) is not a valid (unformatted) man page.</BODY></HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::STAP\&.PASS3</TITLE>
+</HEAD><BODY>
+<H1>PROBE::STAP\&.PASS3</H1>
+Section: SystemTap Translator Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::stap.pass3 - Starting stap pass3 (translation to C)
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+stap.pass3
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>session</I>
+<DL COMPACT><DT><DD>
+the systemtap_session variable s
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+pass3 fires just after the call to
+<B>gettimeofday</B>, just before the call to translate_pass.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Invalid Manpage</TITLE></HEAD>
+<BODY>
+<H1>Invalid Manpage</H1>
+The requested file (stdin) is not a valid (unformatted) man page.</BODY></HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::STAP\&.PASS4</TITLE>
+</HEAD><BODY>
+<H1>PROBE::STAP\&.PASS4</H1>
+Section: SystemTap Translator Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::stap.pass4 - Starting stap pass4 (compile C code into kernel module)
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+stap.pass4
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>session</I>
+<DL COMPACT><DT><DD>
+the systemtap_session variable s
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+pass4 fires just after the call to
+<B>gettimeofday</B>, just before the call to compile_pass.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Invalid Manpage</TITLE></HEAD>
+<BODY>
+<H1>Invalid Manpage</H1>
+The requested file (stdin) is not a valid (unformatted) man page.</BODY></HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::STAP\&.PASS5</TITLE>
+</HEAD><BODY>
+<H1>PROBE::STAP\&.PASS5</H1>
+Section: SystemTap Translator Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::stap.pass5 - Starting stap pass5 (running the instrumentation)
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+stap.pass5
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>session</I>
+<DL COMPACT><DT><DD>
+the systemtap_session variable s
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+pass5 fires just after the call to
+<B>gettimeofday</B>, just before the call to run_pass.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Invalid Manpage</TITLE></HEAD>
+<BODY>
+<H1>Invalid Manpage</H1>
+The requested file (stdin) is not a valid (unformatted) man page.</BODY></HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::STAP\&.PASS6</TITLE>
+</HEAD><BODY>
+<H1>PROBE::STAP\&.PASS6</H1>
+Section: SystemTap Translator Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::stap.pass6 - Starting stap pass6 (cleanup)
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+stap.pass6
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>session</I>
+<DL COMPACT><DT><DD>
+the systemtap_session variable s
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+pass6 fires just after the cleanup label, essentially the same spot as pass5.end
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Invalid Manpage</TITLE></HEAD>
+<BODY>
+<H1>Invalid Manpage</H1>
+The requested file (stdin) is not a valid (unformatted) man page.</BODY></HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::STAP\&.SYSTEM</TITLE>
+</HEAD><BODY>
+<H1>PROBE::STAP\&.SYSTEM</H1>
+Section: SystemTap Translator Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::stap.system - Starting a command from stap
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+stap.system
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>command</I>
+<DL COMPACT><DT><DD>
+the command string to be run by posix_spawn (as sh -c <str>)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires at the entry of the stap_system command.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::STAP\&.SYSTEM</TITLE>
+</HEAD><BODY>
+<H1>PROBE::STAP\&.SYSTEM</H1>
+Section: SystemTap Translator Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::stap.system.return - Finished a command from stap
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+stap.system.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>ret</I>
+<DL COMPACT><DT><DD>
+a return code associated with running waitpid on the spawned process; a non-zero value indicates error
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires just before the return of the stap_system function, after waitpid.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::STAP\&.SYSTEM</TITLE>
+</HEAD><BODY>
+<H1>PROBE::STAP\&.SYSTEM</H1>
+Section: SystemTap Translator Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::stap.system.spawn - stap spawned new process
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+stap.system.spawn
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>pid</I>
+<DL COMPACT><DT><DD>
+the pid of the spawned process
+</DL>
+
+<P>
+
+<I>ret</I>
+<DL COMPACT><DT><DD>
+the return value from posix_spawn
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires just after the call to posix_spawn.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::STAPIO\&.RECE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::STAPIO\&.RECE</H1>
+Section: SystemTap Translator Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::stapio.receive_control_message - Received a control message
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+stapio.receive_control_message
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>len</I>
+<DL COMPACT><DT><DD>
+the length (in bytes) of the data blob
+</DL>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+type of message being send; defined in runtime/transport/transport_msgs.h
+</DL>
+
+<P>
+
+<I>data</I>
+<DL COMPACT><DT><DD>
+a ptr to a binary blob of data sent as the control message
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires just after a message was receieved and before it's processed.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::STAPRUN\&.INS</TITLE>
+</HEAD><BODY>
+<H1>PROBE::STAPRUN\&.INS</H1>
+Section: SystemTap Translator Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::staprun.insert_module - Inserting SystemTap instrumentation module
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+staprun.insert_module
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>path</I>
+<DL COMPACT><DT><DD>
+the full path to the .ko kernel module about to be inserted
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires just before the call to insert the module.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::STAPRUN\&.REM</TITLE>
+</HEAD><BODY>
+<H1>PROBE::STAPRUN\&.REM</H1>
+Section: SystemTap Translator Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::staprun.remove_module - Removing SystemTap instrumentation module
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+staprun.remove_module
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+the stap module name to be removed (without the .ko extension)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires just before the call to remove the module.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::STAPRUN\&.SEN</TITLE>
+</HEAD><BODY>
+<H1>PROBE::STAPRUN\&.SEN</H1>
+Section: SystemTap Translator Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::staprun.send_control_message - Sending a control message
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+staprun.send_control_message
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>data</I>
+<DL COMPACT><DT><DD>
+a ptr to a binary blob of data sent as the control message
+</DL>
+
+<P>
+
+<I>len</I>
+<DL COMPACT><DT><DD>
+the length (in bytes) of the data blob
+</DL>
+
+<P>
+
+<I>type</I>
+<DL COMPACT><DT><DD>
+type of message being send; defined in runtime/transport/transport_msgs.h
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires at the beginning of the send_request function.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SUNRPC\&.CLNT</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SUNRPC\&.CLNT</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::sunrpc.clnt.bind_new_program - Bind a new RPC program to an existing client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+sunrpc.clnt.bind_new_program
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>vers</I>
+<DL COMPACT><DT><DD>
+the version of new RPC program
+</DL>
+
+<P>
+
+<I>old_prog</I>
+<DL COMPACT><DT><DD>
+the number of old RPC program
+</DL>
+
+<P>
+
+<I>servername</I>
+<DL COMPACT><DT><DD>
+the server machine name
+</DL>
+
+<P>
+
+<I>prog</I>
+<DL COMPACT><DT><DD>
+the number of new RPC program
+</DL>
+
+<P>
+
+<I>old_vers</I>
+<DL COMPACT><DT><DD>
+the version of old RPC program
+</DL>
+
+<P>
+
+<I>old_progname</I>
+<DL COMPACT><DT><DD>
+the name of old RPC program
+</DL>
+
+<P>
+
+<I>progname</I>
+<DL COMPACT><DT><DD>
+the name of new RPC program
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SUNRPC\&.CLNT</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SUNRPC\&.CLNT</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::sunrpc.clnt.call_async - Make an asynchronous RPC call
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+sunrpc.clnt.call_async
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>proc</I>
+<DL COMPACT><DT><DD>
+the procedure number in this RPC call
+</DL>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+flags
+</DL>
+
+<P>
+
+<I>prog</I>
+<DL COMPACT><DT><DD>
+the RPC program number
+</DL>
+
+<P>
+
+<I>progname</I>
+<DL COMPACT><DT><DD>
+the RPC program name
+</DL>
+
+<P>
+
+<I>dead</I>
+<DL COMPACT><DT><DD>
+whether this client is abandoned
+</DL>
+
+<P>
+
+<I>port</I>
+<DL COMPACT><DT><DD>
+the port number
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+the IP protocol number
+</DL>
+
+<P>
+
+<I>servername</I>
+<DL COMPACT><DT><DD>
+the server machine name
+</DL>
+
+<P>
+
+<I>xid</I>
+<DL COMPACT><DT><DD>
+current transmission id
+</DL>
+
+<P>
+
+<I>procname</I>
+<DL COMPACT><DT><DD>
+the procedure name in this RPC call
+</DL>
+
+<P>
+
+<I>vers</I>
+<DL COMPACT><DT><DD>
+the RPC program version number
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SUNRPC\&.CLNT</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SUNRPC\&.CLNT</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::sunrpc.clnt.call_sync - Make a synchronous RPC call
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+sunrpc.clnt.call_sync
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>progname</I>
+<DL COMPACT><DT><DD>
+the RPC program name
+</DL>
+
+<P>
+
+<I>dead</I>
+<DL COMPACT><DT><DD>
+whether this client is abandoned
+</DL>
+
+<P>
+
+<I>port</I>
+<DL COMPACT><DT><DD>
+the port number
+</DL>
+
+<P>
+
+<I>proc</I>
+<DL COMPACT><DT><DD>
+the procedure number in this RPC call
+</DL>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+flags
+</DL>
+
+<P>
+
+<I>prog</I>
+<DL COMPACT><DT><DD>
+the RPC program number
+</DL>
+
+<P>
+
+<I>servername</I>
+<DL COMPACT><DT><DD>
+the server machine name
+</DL>
+
+<P>
+
+<I>xid</I>
+<DL COMPACT><DT><DD>
+current transmission id
+</DL>
+
+<P>
+
+<I>vers</I>
+<DL COMPACT><DT><DD>
+the RPC program version number
+</DL>
+
+<P>
+
+<I>procname</I>
+<DL COMPACT><DT><DD>
+the procedure name in this RPC call
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+the IP protocol number
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SUNRPC\&.CLNT</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SUNRPC\&.CLNT</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::sunrpc.clnt.clone_client - Clone an RPC client structure
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+sunrpc.clnt.clone_client
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>vers</I>
+<DL COMPACT><DT><DD>
+the RPC program version number
+</DL>
+
+<P>
+
+<I>port</I>
+<DL COMPACT><DT><DD>
+the port number
+</DL>
+
+<P>
+
+<I>prog</I>
+<DL COMPACT><DT><DD>
+the RPC program number
+</DL>
+
+<P>
+
+<I>authflavor</I>
+<DL COMPACT><DT><DD>
+the authentication flavor
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+the IP protocol number
+</DL>
+
+<P>
+
+<I>servername</I>
+<DL COMPACT><DT><DD>
+the server machine name
+</DL>
+
+<P>
+
+<I>progname</I>
+<DL COMPACT><DT><DD>
+the RPC program name
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SUNRPC\&.CLNT</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SUNRPC\&.CLNT</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::sunrpc.clnt.create_client - Create an RPC client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+sunrpc.clnt.create_client
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>servername</I>
+<DL COMPACT><DT><DD>
+the server machine name
+</DL>
+
+<P>
+
+<I>progname</I>
+<DL COMPACT><DT><DD>
+the RPC program name
+</DL>
+
+<P>
+
+<I>port</I>
+<DL COMPACT><DT><DD>
+the port number
+</DL>
+
+<P>
+
+<I>prog</I>
+<DL COMPACT><DT><DD>
+the RPC program number
+</DL>
+
+<P>
+
+<I>vers</I>
+<DL COMPACT><DT><DD>
+the RPC program version number
+</DL>
+
+<P>
+
+<I>authflavor</I>
+<DL COMPACT><DT><DD>
+the authentication flavor
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+the IP protocol number
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SUNRPC\&.CLNT</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SUNRPC\&.CLNT</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::sunrpc.clnt.restart_call - Restart an asynchronous RPC call
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+sunrpc.clnt.restart_call
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>tk_flags</I>
+<DL COMPACT><DT><DD>
+the task flags
+</DL>
+
+<P>
+
+<I>servername</I>
+<DL COMPACT><DT><DD>
+the server machine name
+</DL>
+
+<P>
+
+<I>tk_runstate</I>
+<DL COMPACT><DT><DD>
+the task run status
+</DL>
+
+<P>
+
+<I>xid</I>
+<DL COMPACT><DT><DD>
+the transmission id
+</DL>
+
+<P>
+
+<I>tk_pid</I>
+<DL COMPACT><DT><DD>
+the debugging aid of task
+</DL>
+
+<P>
+
+<I>prog</I>
+<DL COMPACT><DT><DD>
+the RPC program number
+</DL>
+
+<P>
+
+<I>tk_priority</I>
+<DL COMPACT><DT><DD>
+the task priority
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SUNRPC\&.CLNT</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SUNRPC\&.CLNT</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::sunrpc.clnt.shutdown_client - Shutdown an RPC client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+sunrpc.clnt.shutdown_client
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+the IP protocol number
+</DL>
+
+<P>
+
+<I>om_rtt</I>
+<DL COMPACT><DT><DD>
+the RPC RTT jiffies
+</DL>
+
+<P>
+
+<I>servername</I>
+<DL COMPACT><DT><DD>
+the server machine name
+</DL>
+
+<P>
+
+<I>om_bytes_recv</I>
+<DL COMPACT><DT><DD>
+the count of bytes in
+</DL>
+
+<P>
+
+<I>om_queue</I>
+<DL COMPACT><DT><DD>
+the jiffies queued for xmit
+</DL>
+
+<P>
+
+<I>om_execute</I>
+<DL COMPACT><DT><DD>
+the RPC execution jiffies
+</DL>
+
+<P>
+
+<I>vers</I>
+<DL COMPACT><DT><DD>
+the RPC program version number
+</DL>
+
+<P>
+
+<I>tasks</I>
+<DL COMPACT><DT><DD>
+the number of references
+</DL>
+
+<P>
+
+<I>authflavor</I>
+<DL COMPACT><DT><DD>
+the authentication flavor
+</DL>
+
+<P>
+
+<I>om_ntrans</I>
+<DL COMPACT><DT><DD>
+the count of RPC transmissions
+</DL>
+
+<P>
+
+<I>clones</I>
+<DL COMPACT><DT><DD>
+the number of clones
+</DL>
+
+<P>
+
+<I>prog</I>
+<DL COMPACT><DT><DD>
+the RPC program number
+</DL>
+
+<P>
+
+<I>om_bytes_sent</I>
+<DL COMPACT><DT><DD>
+the count of bytes out
+</DL>
+
+<P>
+
+<I>rpccnt</I>
+<DL COMPACT><DT><DD>
+the count of RPC calls
+</DL>
+
+<P>
+
+<I>om_ops</I>
+<DL COMPACT><DT><DD>
+the count of operations
+</DL>
+
+<P>
+
+<I>progname</I>
+<DL COMPACT><DT><DD>
+the RPC program name
+</DL>
+
+<P>
+
+<I>netreconn</I>
+<DL COMPACT><DT><DD>
+the count of reconnections
+</DL>
+
+<P>
+
+<I>port</I>
+<DL COMPACT><DT><DD>
+the port number
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SUNRPC\&.SCHE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SUNRPC\&.SCHE</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::sunrpc.sched.delay - Delay an RPC task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+sunrpc.sched.delay
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>xid</I>
+<DL COMPACT><DT><DD>
+the transmission id in the RPC call
+</DL>
+
+<P>
+
+<I>vers</I>
+<DL COMPACT><DT><DD>
+the program version in the RPC call
+</DL>
+
+<P>
+
+<I>delay</I>
+<DL COMPACT><DT><DD>
+the time delayed
+</DL>
+
+<P>
+
+<I>tk_flags</I>
+<DL COMPACT><DT><DD>
+the flags of the task
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+the IP protocol in the RPC call
+</DL>
+
+<P>
+
+<I>tk_pid</I>
+<DL COMPACT><DT><DD>
+the debugging id of the task
+</DL>
+
+<P>
+
+<I>prog</I>
+<DL COMPACT><DT><DD>
+the program number in the RPC call
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SUNRPC\&.SCHE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SUNRPC\&.SCHE</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::sunrpc.sched.execute - Execute the RPC `scheduler'
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+sunrpc.sched.execute
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>xid</I>
+<DL COMPACT><DT><DD>
+the transmission id in the RPC call
+</DL>
+
+<P>
+
+<I>vers</I>
+<DL COMPACT><DT><DD>
+the program version in the RPC call
+</DL>
+
+<P>
+
+<I>tk_flags</I>
+<DL COMPACT><DT><DD>
+the flags of the task
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+the IP protocol in the RPC call
+</DL>
+
+<P>
+
+<I>tk_pid</I>
+<DL COMPACT><DT><DD>
+the debugging id of the task
+</DL>
+
+<P>
+
+<I>prog</I>
+<DL COMPACT><DT><DD>
+the program number in the RPC call
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SUNRPC\&.SCHE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SUNRPC\&.SCHE</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::sunrpc.sched.new_task - Create new task for the specified client
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+sunrpc.sched.new_task
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+the IP protocol in the RPC call
+</DL>
+
+<P>
+
+<I>tk_flags</I>
+<DL COMPACT><DT><DD>
+the flags of the task
+</DL>
+
+<P>
+
+<I>xid</I>
+<DL COMPACT><DT><DD>
+the transmission id in the RPC call
+</DL>
+
+<P>
+
+<I>vers</I>
+<DL COMPACT><DT><DD>
+the program version in the RPC call
+</DL>
+
+<P>
+
+<I>prog</I>
+<DL COMPACT><DT><DD>
+the program number in the RPC call
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::SUNRPC\&.SCHE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::SUNRPC\&.SCHE</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::sunrpc.sched.release_task - Release all resources associated with a task
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+sunrpc.sched.release_task
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>vers</I>
+<DL COMPACT><DT><DD>
+the program version in the RPC call
+</DL>
+
+<P>
+
+<I>xid</I>
+<DL COMPACT><DT><DD>
+the transmission id in the RPC call
+</DL>
+
+<P>
+
+<I>tk_flags</I>
+<DL COMPACT><DT><DD>
+the flags of the task
+</DL>
+
+<P>
+
+<I>prot</I>
+<DL COMPACT><DT><DD>
+the IP protocol in the RPC call
+</DL>
+
+<P>
+
+<I>prog</I>
+<DL COMPACT><DT><DD>
+the program number in the RPC call
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+<B>rpc_release_task</B>
+function might not be found for a particular kernel. So, if we can't find it, just return '-1' for everything.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Invalid Manpage</TITLE></HEAD>
+<BODY>
+<H1>Invalid Manpage</H1>
+The requested file (stdin) is not a valid (unformatted) man page.</BODY></HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Invalid Manpage</TITLE></HEAD>
+<BODY>
+<H1>Invalid Manpage</H1>
+The requested file (stdin) is not a valid (unformatted) man page.</BODY></HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Invalid Manpage</TITLE></HEAD>
+<BODY>
+<H1>Invalid Manpage</H1>
+The requested file (stdin) is not a valid (unformatted) man page.</BODY></HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Invalid Manpage</TITLE></HEAD>
+<BODY>
+<H1>Invalid Manpage</H1>
+The requested file (stdin) is not a valid (unformatted) man page.</BODY></HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Invalid Manpage</TITLE></HEAD>
+<BODY>
+<H1>Invalid Manpage</H1>
+The requested file (stdin) is not a valid (unformatted) man page.</BODY></HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Invalid Manpage</TITLE></HEAD>
+<BODY>
+<H1>Invalid Manpage</H1>
+The requested file (stdin) is not a valid (unformatted) man page.</BODY></HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Invalid Manpage</TITLE></HEAD>
+<BODY>
+<H1>Invalid Manpage</H1>
+The requested file (stdin) is not a valid (unformatted) man page.</BODY></HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TCP\&.DISCONN</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TCP\&.DISCONN</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tcp.disconnect - TCP socket disconnection
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tcp.disconnect
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>dport</I>
+<DL COMPACT><DT><DD>
+TCP destination port
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+TCP flags (e.g. FIN, etc)
+</DL>
+
+<P>
+
+<I>daddr</I>
+<DL COMPACT><DT><DD>
+A string representing the destination IP address
+</DL>
+
+<P>
+
+<I>saddr</I>
+<DL COMPACT><DT><DD>
+A string representing the source IP address
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+IP address family
+</DL>
+
+<P>
+
+<I>sock</I>
+<DL COMPACT><DT><DD>
+Network socket
+</DL>
+
+<P>
+
+<I>sport</I>
+<DL COMPACT><DT><DD>
+TCP source port
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process which disconnects tcp
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TCP\&.DISCONN</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TCP\&.DISCONN</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tcp.disconnect.return - TCP socket disconnection complete
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tcp.disconnect.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>ret</I>
+<DL COMPACT><DT><DD>
+Error code (0: no error)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process which disconnects tcp
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TCP\&.RECEIVE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TCP\&.RECEIVE</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tcp.receive - Called when a TCP packet is received
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tcp.receive
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>syn</I>
+<DL COMPACT><DT><DD>
+TCP SYN flag
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>iphdr</I>
+<DL COMPACT><DT><DD>
+IP header address
+</DL>
+
+<P>
+
+<I>psh</I>
+<DL COMPACT><DT><DD>
+TCP PSH flag
+</DL>
+
+<P>
+
+<I>fin</I>
+<DL COMPACT><DT><DD>
+TCP FIN flag
+</DL>
+
+<P>
+
+<I>dport</I>
+<DL COMPACT><DT><DD>
+TCP destination port
+</DL>
+
+<P>
+
+<I>protocol</I>
+<DL COMPACT><DT><DD>
+Packet protocol from driver
+</DL>
+
+<P>
+
+<I>urg</I>
+<DL COMPACT><DT><DD>
+TCP URG flag
+</DL>
+
+<P>
+
+<I>sport</I>
+<DL COMPACT><DT><DD>
+TCP source port
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+IP address family
+</DL>
+
+<P>
+
+<I>ack</I>
+<DL COMPACT><DT><DD>
+TCP ACK flag
+</DL>
+
+<P>
+
+<I>saddr</I>
+<DL COMPACT><DT><DD>
+A string representing the source IP address
+</DL>
+
+<P>
+
+<I>rst</I>
+<DL COMPACT><DT><DD>
+TCP RST flag
+</DL>
+
+<P>
+
+<I>daddr</I>
+<DL COMPACT><DT><DD>
+A string representing the destination IP address
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TCP\&.RECVMSG</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TCP\&.RECVMSG</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tcp.recvmsg - Receiving TCP message
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tcp.recvmsg
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>dport</I>
+<DL COMPACT><DT><DD>
+TCP destination port
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+IP address family
+</DL>
+
+<P>
+
+<I>sport</I>
+<DL COMPACT><DT><DD>
+TCP source port
+</DL>
+
+<P>
+
+<I>sock</I>
+<DL COMPACT><DT><DD>
+Network socket
+</DL>
+
+<P>
+
+<I>daddr</I>
+<DL COMPACT><DT><DD>
+A string representing the destination IP address
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Number of bytes to be received
+</DL>
+
+<P>
+
+<I>saddr</I>
+<DL COMPACT><DT><DD>
+A string representing the source IP address
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process which receives a tcp message
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TCP\&.RECVMSG</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TCP\&.RECVMSG</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tcp.recvmsg.return - Receiving TCP message complete
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tcp.recvmsg.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>sport</I>
+<DL COMPACT><DT><DD>
+TCP source port
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+IP address family
+</DL>
+
+<P>
+
+<I>saddr</I>
+<DL COMPACT><DT><DD>
+A string representing the source IP address
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Number of bytes received or error code if an error occurred.
+</DL>
+
+<P>
+
+<I>daddr</I>
+<DL COMPACT><DT><DD>
+A string representing the destination IP address
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>dport</I>
+<DL COMPACT><DT><DD>
+TCP destination port
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process which receives a tcp message
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TCP\&.SENDMSG</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TCP\&.SENDMSG</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tcp.sendmsg - Sending a tcp message
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tcp.sendmsg
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>sock</I>
+<DL COMPACT><DT><DD>
+Network socket
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+IP address family
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Number of bytes to send
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process which sends a tcp message
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TCP\&.SENDMSG</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TCP\&.SENDMSG</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tcp.sendmsg.return - Sending TCP message is done
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tcp.sendmsg.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Number of bytes sent or error code if an error occurred.
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process which sends a tcp message
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TCP\&.SETSOCK</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TCP\&.SETSOCK</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tcp.setsockopt - Call to <B>setsockopt</B>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tcp.setsockopt
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>optname</I>
+<DL COMPACT><DT><DD>
+TCP socket options (e.g. TCP_NODELAY, TCP_MAXSEG, etc)
+</DL>
+
+<P>
+
+<I>level</I>
+<DL COMPACT><DT><DD>
+The level at which the socket options will be manipulated
+</DL>
+
+<P>
+
+<I>optstr</I>
+<DL COMPACT><DT><DD>
+Resolves optname to a human-readable format
+</DL>
+
+<P>
+
+<I>sock</I>
+<DL COMPACT><DT><DD>
+Network socket
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+IP address family
+</DL>
+
+<P>
+
+<I>optlen</I>
+<DL COMPACT><DT><DD>
+Used to access values for
+<B>setsockopt</B>
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process which calls setsockopt
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TCP\&.SETSOCK</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TCP\&.SETSOCK</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tcp.setsockopt.return - Return from <B>setsockopt</B>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tcp.setsockopt.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of this probe
+</DL>
+
+<P>
+
+<I>ret</I>
+<DL COMPACT><DT><DD>
+Error code (0: no error)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process which calls setsockopt
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TCPMIB\&.ACTI</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TCPMIB\&.ACTI</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tcpmib.ActiveOpens - Count an active opening of a socket
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tcpmib.ActiveOpens
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>sk</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sock being acted on
+</DL>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be added to the counter (default value of 1)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>tcpmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>ActiveOpens</I>
+(equivalent to SNMP's MIB TCP_MIB_ACTIVEOPENS)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TCPMIB\&.ATTE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TCPMIB\&.ATTE</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tcpmib.AttemptFails - Count a failed attempt to open a socket
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tcpmib.AttemptFails
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>sk</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sock being acted on
+</DL>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be added to the counter (default value of 1)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>tcpmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>AttemptFails</I>
+(equivalent to SNMP's MIB TCP_MIB_ATTEMPTFAILS)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TCPMIB\&.CURR</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TCPMIB\&.CURR</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tcpmib.CurrEstab - Update the count of open sockets
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tcpmib.CurrEstab
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be added to the counter (default value of 1)
+</DL>
+
+<P>
+
+<I>sk</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sock being acted on
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>tcpmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>CurrEstab</I>
+(equivalent to SNMP's MIB TCP_MIB_CURRESTAB)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TCPMIB\&.ESTA</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TCPMIB\&.ESTA</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tcpmib.EstabResets - Count the reset of a socket
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tcpmib.EstabResets
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>sk</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sock being acted on
+</DL>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be added to the counter (default value of 1)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>tcpmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>EstabResets</I>
+(equivalent to SNMP's MIB TCP_MIB_ESTABRESETS)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TCPMIB\&.INSE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TCPMIB\&.INSE</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tcpmib.InSegs - Count an incoming tcp segment
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tcpmib.InSegs
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>sk</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sock being acted on
+</DL>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be added to the counter (default value of 1)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>tcpmib_filter_key</B>
+(or
+<B>ipmib_filter_key</B>
+for tcp v4). If the packet passes the filter is is counted in the global
+<I>InSegs</I>
+(equivalent to SNMP's MIB TCP_MIB_INSEGS)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TCPMIB\&.OUTR</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TCPMIB\&.OUTR</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tcpmib.OutRsts - Count the sending of a reset packet
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tcpmib.OutRsts
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be added to the counter (default value of 1)
+</DL>
+
+<P>
+
+<I>sk</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sock being acted on
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>tcpmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>OutRsts</I>
+(equivalent to SNMP's MIB TCP_MIB_OUTRSTS)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TCPMIB\&.OUTS</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TCPMIB\&.OUTS</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tcpmib.OutSegs - Count the sending of a TCP segment
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tcpmib.OutSegs
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>sk</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sock being acted on
+</DL>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be added to the counter (default value of 1)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>tcpmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>OutSegs</I>
+(equivalent to SNMP's MIB TCP_MIB_OUTSEGS)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TCPMIB\&.PASS</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TCPMIB\&.PASS</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tcpmib.PassiveOpens - Count the passive creation of a socket
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tcpmib.PassiveOpens
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>sk</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sock being acted on
+</DL>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be added to the counter (default value of 1)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>tcpmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>PassiveOpens</I>
+(equivalent to SNMP's MIB TCP_MIB_PASSIVEOPENS)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TCPMIB\&.RETR</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TCPMIB\&.RETR</H1>
+Section: SNMP Information Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tcpmib.RetransSegs - Count the retransmission of a TCP segment
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tcpmib.RetransSegs
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>sk</I>
+<DL COMPACT><DT><DD>
+pointer to the struct sock being acted on
+</DL>
+
+<P>
+
+<I>op</I>
+<DL COMPACT><DT><DD>
+value to be added to the counter (default value of 1)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+The packet pointed to by
+<I>skb</I>
+is filtered by the function
+<B>tcpmib_filter_key</B>. If the packet passes the filter is is counted in the global
+<I>RetransSegs</I>
+(equivalent to SNMP's MIB TCP_MIB_RETRANSSEGS)
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TTY\&.INIT</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TTY\&.INIT</H1>
+Section: TTY Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tty.init - Called when a tty is being initalized
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tty.init
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>driver_name</I>
+<DL COMPACT><DT><DD>
+the driver name
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+the driver .dev_name name
+</DL>
+
+<P>
+
+<I>module</I>
+<DL COMPACT><DT><DD>
+the module name
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TTY\&.IOCTL</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TTY\&.IOCTL</H1>
+Section: TTY Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tty.ioctl - called when a ioctl is request to the tty
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tty.ioctl
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+the file name
+</DL>
+
+<P>
+
+<I>cmd</I>
+<DL COMPACT><DT><DD>
+the ioctl command
+</DL>
+
+<P>
+
+<I>arg</I>
+<DL COMPACT><DT><DD>
+the ioctl argument
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TTY\&.OPEN</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TTY\&.OPEN</H1>
+Section: TTY Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tty.open - Called when a tty is opened
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tty.open
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>file_mode</I>
+<DL COMPACT><DT><DD>
+the file mode
+</DL>
+
+<P>
+
+<I>inode_flags</I>
+<DL COMPACT><DT><DD>
+the inode flags
+</DL>
+
+<P>
+
+<I>inode_state</I>
+<DL COMPACT><DT><DD>
+the inode state
+</DL>
+
+<P>
+
+<I>file_name</I>
+<DL COMPACT><DT><DD>
+the file name
+</DL>
+
+<P>
+
+<I>inode_number</I>
+<DL COMPACT><DT><DD>
+the inode number
+</DL>
+
+<P>
+
+<I>file_flags</I>
+<DL COMPACT><DT><DD>
+the file flags
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TTY\&.POLL</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TTY\&.POLL</H1>
+Section: TTY Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tty.poll - Called when a tty device is being polled
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tty.poll
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>file_name</I>
+<DL COMPACT><DT><DD>
+the tty file name
+</DL>
+
+<P>
+
+<I>wait_key</I>
+<DL COMPACT><DT><DD>
+the wait queue key
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TTY\&.READ</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TTY\&.READ</H1>
+Section: TTY Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tty.read - called when a tty line will be read
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tty.read
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>driver_name</I>
+<DL COMPACT><DT><DD>
+the driver name
+</DL>
+
+<P>
+
+<I>buffer</I>
+<DL COMPACT><DT><DD>
+the buffer that will receive the characters
+</DL>
+
+<P>
+
+<I>nr</I>
+<DL COMPACT><DT><DD>
+The amount of characters to be read
+</DL>
+
+<P>
+
+<I>file_name</I>
+<DL COMPACT><DT><DD>
+the file name lreated to the tty
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TTY\&.RECEIVE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TTY\&.RECEIVE</H1>
+Section: TTY Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tty.receive - called when a tty receives a message
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tty.receive
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>count</I>
+<DL COMPACT><DT><DD>
+The amount of characters received
+</DL>
+
+<P>
+
+<I>cp</I>
+<DL COMPACT><DT><DD>
+the buffer that was received
+</DL>
+
+<P>
+
+<I>fp</I>
+<DL COMPACT><DT><DD>
+The flag buffer
+</DL>
+
+<P>
+
+<I>index</I>
+<DL COMPACT><DT><DD>
+The tty Index
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+the name of the module file
+</DL>
+
+<P>
+
+<I>driver_name</I>
+<DL COMPACT><DT><DD>
+the driver name
+</DL>
+
+<P>
+
+<I>id</I>
+<DL COMPACT><DT><DD>
+the tty id
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TTY\&.REGISTE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TTY\&.REGISTE</H1>
+Section: TTY Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tty.register - Called when a tty device is registred
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tty.register
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>index</I>
+<DL COMPACT><DT><DD>
+the tty index requested
+</DL>
+
+<P>
+
+<I>module</I>
+<DL COMPACT><DT><DD>
+the module name
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+the driver .dev_name name
+</DL>
+
+<P>
+
+<I>driver_name</I>
+<DL COMPACT><DT><DD>
+the driver name
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TTY\&.RELEASE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TTY\&.RELEASE</H1>
+Section: TTY Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tty.release - Called when the tty is closed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tty.release
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>inode_number</I>
+<DL COMPACT><DT><DD>
+the inode number
+</DL>
+
+<P>
+
+<I>file_flags</I>
+<DL COMPACT><DT><DD>
+the file flags
+</DL>
+
+<P>
+
+<I>inode_state</I>
+<DL COMPACT><DT><DD>
+the inode state
+</DL>
+
+<P>
+
+<I>file_name</I>
+<DL COMPACT><DT><DD>
+the file name
+</DL>
+
+<P>
+
+<I>inode_flags</I>
+<DL COMPACT><DT><DD>
+the inode flags
+</DL>
+
+<P>
+
+<I>file_mode</I>
+<DL COMPACT><DT><DD>
+the file mode
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TTY\&.RESIZE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TTY\&.RESIZE</H1>
+Section: TTY Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tty.resize - Called when a terminal resize happens
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tty.resize
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>old_xpixel</I>
+<DL COMPACT><DT><DD>
+the old xpixel
+</DL>
+
+<P>
+
+<I>new_ypixel</I>
+<DL COMPACT><DT><DD>
+the new ypixel value
+</DL>
+
+<P>
+
+<I>new_row</I>
+<DL COMPACT><DT><DD>
+the new row value
+</DL>
+
+<P>
+
+<I>old_row</I>
+<DL COMPACT><DT><DD>
+the old row value
+</DL>
+
+<P>
+
+<I>new_xpixel</I>
+<DL COMPACT><DT><DD>
+the new xpixel value
+</DL>
+
+<P>
+
+<I>new_col</I>
+<DL COMPACT><DT><DD>
+the new col value
+</DL>
+
+<P>
+
+<I>old_ypixel</I>
+<DL COMPACT><DT><DD>
+the old ypixel
+</DL>
+
+<P>
+
+<I>old_col</I>
+<DL COMPACT><DT><DD>
+the old col value
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+the tty name
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TTY\&.UNREGIS</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TTY\&.UNREGIS</H1>
+Section: TTY Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tty.unregister - Called when a tty device is being unregistered
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tty.unregister
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>driver_name</I>
+<DL COMPACT><DT><DD>
+the driver name
+</DL>
+
+<P>
+
+<I>index</I>
+<DL COMPACT><DT><DD>
+the tty index requested
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+the driver .dev_name name
+</DL>
+
+<P>
+
+<I>module</I>
+<DL COMPACT><DT><DD>
+the module name
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::TTY\&.WRITE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::TTY\&.WRITE</H1>
+Section: TTY Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::tty.write - write to the tty line
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+tty.write
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>nr</I>
+<DL COMPACT><DT><DD>
+The amount of characters
+</DL>
+
+<P>
+
+<I>file_name</I>
+<DL COMPACT><DT><DD>
+the file name lreated to the tty
+</DL>
+
+<P>
+
+<I>driver_name</I>
+<DL COMPACT><DT><DD>
+the driver name
+</DL>
+
+<P>
+
+<I>buffer</I>
+<DL COMPACT><DT><DD>
+the buffer that will be written
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::UDP\&.DISCONN</TITLE>
+</HEAD><BODY>
+<H1>PROBE::UDP\&.DISCONN</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::udp.disconnect - Fires when a process requests for a UDP disconnection
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+udp.disconnect
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+IP address family
+</DL>
+
+<P>
+
+<I>daddr</I>
+<DL COMPACT><DT><DD>
+A string representing the destination IP address
+</DL>
+
+<P>
+
+<I>dport</I>
+<DL COMPACT><DT><DD>
+UDP destination port
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+The name of this probe
+</DL>
+
+<P>
+
+<I>sport</I>
+<DL COMPACT><DT><DD>
+UDP source port
+</DL>
+
+<P>
+
+<I>flags</I>
+<DL COMPACT><DT><DD>
+Flags (e.g. FIN, etc)
+</DL>
+
+<P>
+
+<I>saddr</I>
+<DL COMPACT><DT><DD>
+A string representing the source IP address
+</DL>
+
+<P>
+
+<I>sock</I>
+<DL COMPACT><DT><DD>
+Network socket used by the process
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process which requests a UDP disconnection
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::UDP\&.DISCONN</TITLE>
+</HEAD><BODY>
+<H1>PROBE::UDP\&.DISCONN</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::udp.disconnect.return - UDP has been disconnected successfully
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+udp.disconnect.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+IP address family
+</DL>
+
+<P>
+
+<I>daddr</I>
+<DL COMPACT><DT><DD>
+A string representing the destination IP address
+</DL>
+
+<P>
+
+<I>dport</I>
+<DL COMPACT><DT><DD>
+UDP destination port
+</DL>
+
+<P>
+
+<I>ret</I>
+<DL COMPACT><DT><DD>
+Error code (0: no error)
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+The name of this probe
+</DL>
+
+<P>
+
+<I>sport</I>
+<DL COMPACT><DT><DD>
+UDP source port
+</DL>
+
+<P>
+
+<I>saddr</I>
+<DL COMPACT><DT><DD>
+A string representing the source IP address
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process which requested a UDP disconnection
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::UDP\&.RECVMSG</TITLE>
+</HEAD><BODY>
+<H1>PROBE::UDP\&.RECVMSG</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::udp.recvmsg - Fires whenever a UDP message is received
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+udp.recvmsg
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>sock</I>
+<DL COMPACT><DT><DD>
+Network socket used by the process
+</DL>
+
+<P>
+
+<I>saddr</I>
+<DL COMPACT><DT><DD>
+A string representing the source IP address
+</DL>
+
+<P>
+
+<I>sport</I>
+<DL COMPACT><DT><DD>
+UDP source port
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+The name of this probe
+</DL>
+
+<P>
+
+<I>dport</I>
+<DL COMPACT><DT><DD>
+UDP destination port
+</DL>
+
+<P>
+
+<I>daddr</I>
+<DL COMPACT><DT><DD>
+A string representing the destination IP address
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Number of bytes received by the process
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+IP address family
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process which received a UDP message
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::UDP\&.RECVMSG</TITLE>
+</HEAD><BODY>
+<H1>PROBE::UDP\&.RECVMSG</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::udp.recvmsg.return - Fires whenever an attempt to receive a UDP message received is completed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+udp.recvmsg.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>saddr</I>
+<DL COMPACT><DT><DD>
+A string representing the source IP address
+</DL>
+
+<P>
+
+<I>sport</I>
+<DL COMPACT><DT><DD>
+UDP source port
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+The name of this probe
+</DL>
+
+<P>
+
+<I>dport</I>
+<DL COMPACT><DT><DD>
+UDP destination port
+</DL>
+
+<P>
+
+<I>daddr</I>
+<DL COMPACT><DT><DD>
+A string representing the destination IP address
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Number of bytes received by the process
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+IP address family
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process which received a UDP message
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::UDP\&.SENDMSG</TITLE>
+</HEAD><BODY>
+<H1>PROBE::UDP\&.SENDMSG</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::udp.sendmsg - Fires whenever a process sends a UDP message
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+udp.sendmsg
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>daddr</I>
+<DL COMPACT><DT><DD>
+A string representing the destination IP address
+</DL>
+
+<P>
+
+<I>dport</I>
+<DL COMPACT><DT><DD>
+UDP destination port
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+The name of this probe
+</DL>
+
+<P>
+
+<I>family</I>
+<DL COMPACT><DT><DD>
+IP address family
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Number of bytes sent by the process
+</DL>
+
+<P>
+
+<I>saddr</I>
+<DL COMPACT><DT><DD>
+A string representing the source IP address
+</DL>
+
+<P>
+
+<I>sock</I>
+<DL COMPACT><DT><DD>
+Network socket used by the process
+</DL>
+
+<P>
+
+<I>sport</I>
+<DL COMPACT><DT><DD>
+UDP source port
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process which sent a UDP message
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:41 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::UDP\&.SENDMSG</TITLE>
+</HEAD><BODY>
+<H1>PROBE::UDP\&.SENDMSG</H1>
+Section: Networking Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::udp.sendmsg.return - Fires whenever an attempt to send a UDP message is completed
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+udp.sendmsg.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+The name of this probe
+</DL>
+
+<P>
+
+<I>size</I>
+<DL COMPACT><DT><DD>
+Number of bytes sent by the process
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process which sent a UDP message
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::VM\&.BRK</TITLE>
+</HEAD><BODY>
+<H1>PROBE::VM\&.BRK</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::vm.brk - Fires when a brk is requested (i.e. the heap will be resized)
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+vm.brk
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>length</I>
+<DL COMPACT><DT><DD>
+the length of the memory segment
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<I>address</I>
+<DL COMPACT><DT><DD>
+the requested address
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process calling brk.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::VM\&.KFREE</TITLE>
+</HEAD><BODY>
+<H1>PROBE::VM\&.KFREE</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::vm.kfree - Fires when kfree is requested
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+vm.kfree
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<I>ptr</I>
+<DL COMPACT><DT><DD>
+pointer to the kmemory allocated which is returned by kmalloc
+</DL>
+
+<P>
+
+<I>call_site</I>
+<DL COMPACT><DT><DD>
+address of the function calling this kmemory function
+</DL>
+
+<P>
+
+<I>caller_function</I>
+<DL COMPACT><DT><DD>
+name of the caller function.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::VM\&.KMALLOC</TITLE>
+</HEAD><BODY>
+<H1>PROBE::VM\&.KMALLOC</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::vm.kmalloc - Fires when kmalloc is requested
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+vm.kmalloc
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>bytes_req</I>
+<DL COMPACT><DT><DD>
+requested Bytes
+</DL>
+
+<P>
+
+<I>bytes_alloc</I>
+<DL COMPACT><DT><DD>
+allocated Bytes
+</DL>
+
+<P>
+
+<I>ptr</I>
+<DL COMPACT><DT><DD>
+pointer to the kmemory allocated
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<I>gfp_flags</I>
+<DL COMPACT><DT><DD>
+type of kmemory to allocate
+</DL>
+
+<P>
+
+<I>call_site</I>
+<DL COMPACT><DT><DD>
+address of the kmemory function
+</DL>
+
+<P>
+
+<I>gfp_flag_name</I>
+<DL COMPACT><DT><DD>
+type of kmemory to allocate (in String format)
+</DL>
+
+<P>
+
+<I>caller_function</I>
+<DL COMPACT><DT><DD>
+name of the caller function
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::VM\&.KMALLOC_</TITLE>
+</HEAD><BODY>
+<H1>PROBE::VM\&.KMALLOC_</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::vm.kmalloc_node - Fires when kmalloc_node is requested
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+vm.kmalloc_node
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>caller_function</I>
+<DL COMPACT><DT><DD>
+name of the caller function
+</DL>
+
+<P>
+
+<I>call_site</I>
+<DL COMPACT><DT><DD>
+address of the function caling this kmemory function
+</DL>
+
+<P>
+
+<I>gfp_flags</I>
+<DL COMPACT><DT><DD>
+type of kmemory to allocate
+</DL>
+
+<P>
+
+<I>gfp_flag_name</I>
+<DL COMPACT><DT><DD>
+type of kmemory to allocate(in string format)
+</DL>
+
+<P>
+
+<I>ptr</I>
+<DL COMPACT><DT><DD>
+pointer to the kmemory allocated
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<I>bytes_req</I>
+<DL COMPACT><DT><DD>
+requested Bytes
+</DL>
+
+<P>
+
+<I>bytes_alloc</I>
+<DL COMPACT><DT><DD>
+allocated Bytes
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::VM\&.KMEM_CAC</TITLE>
+</HEAD><BODY>
+<H1>PROBE::VM\&.KMEM_CAC</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::vm.kmem_cache_alloc - Fires when kmem_cache_alloc is requested
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+vm.kmem_cache_alloc
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>caller_function</I>
+<DL COMPACT><DT><DD>
+name of the caller function.
+</DL>
+
+<P>
+
+<I>call_site</I>
+<DL COMPACT><DT><DD>
+address of the function calling this kmemory function.
+</DL>
+
+<P>
+
+<I>gfp_flags</I>
+<DL COMPACT><DT><DD>
+type of kmemory to allocate
+</DL>
+
+<P>
+
+<I>gfp_flag_name</I>
+<DL COMPACT><DT><DD>
+type of kmemory to allocate(in string format)
+</DL>
+
+<P>
+
+<I>ptr</I>
+<DL COMPACT><DT><DD>
+pointer to the kmemory allocated
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<I>bytes_req</I>
+<DL COMPACT><DT><DD>
+requested Bytes
+</DL>
+
+<P>
+
+<I>bytes_alloc</I>
+<DL COMPACT><DT><DD>
+allocated Bytes
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::VM\&.KMEM_CAC</TITLE>
+</HEAD><BODY>
+<H1>PROBE::VM\&.KMEM_CAC</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::vm.kmem_cache_alloc_node - Fires when kmem_cache_alloc_node is requested
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+vm.kmem_cache_alloc_node
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>gfp_flags</I>
+<DL COMPACT><DT><DD>
+type of kmemory to allocate
+</DL>
+
+<P>
+
+<I>call_site</I>
+<DL COMPACT><DT><DD>
+address of the function calling this kmemory function
+</DL>
+
+<P>
+
+<I>gfp_flag_name</I>
+<DL COMPACT><DT><DD>
+type of kmemory to allocate(in string format)
+</DL>
+
+<P>
+
+<I>caller_function</I>
+<DL COMPACT><DT><DD>
+name of the caller function
+</DL>
+
+<P>
+
+<I>bytes_req</I>
+<DL COMPACT><DT><DD>
+requested Bytes
+</DL>
+
+<P>
+
+<I>bytes_alloc</I>
+<DL COMPACT><DT><DD>
+allocated Bytes
+</DL>
+
+<P>
+
+<I>ptr</I>
+<DL COMPACT><DT><DD>
+pointer to the kmemory allocated
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::VM\&.KMEM_CAC</TITLE>
+</HEAD><BODY>
+<H1>PROBE::VM\&.KMEM_CAC</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::vm.kmem_cache_free - Fires when kmem_cache_free is requested
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+vm.kmem_cache_free
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>call_site</I>
+<DL COMPACT><DT><DD>
+Address of the function calling this kmemory function
+</DL>
+
+<P>
+
+<I>caller_function</I>
+<DL COMPACT><DT><DD>
+Name of the caller function.
+</DL>
+
+<P>
+
+<I>ptr</I>
+<DL COMPACT><DT><DD>
+Pointer to the kmemory allocated which is returned by kmem_cache
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::VM\&.MMAP</TITLE>
+</HEAD><BODY>
+<H1>PROBE::VM\&.MMAP</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::vm.mmap - Fires when an mmap is requested
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+vm.mmap
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>length</I>
+<DL COMPACT><DT><DD>
+the length of the memory segment
+</DL>
+
+<P>
+
+<I>address</I>
+<DL COMPACT><DT><DD>
+the requested address
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process calling mmap.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::VM\&.MUNMAP</TITLE>
+</HEAD><BODY>
+<H1>PROBE::VM\&.MUNMAP</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::vm.munmap - Fires when an munmap is requested
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+vm.munmap
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>length</I>
+<DL COMPACT><DT><DD>
+the length of the memory segment
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<I>address</I>
+<DL COMPACT><DT><DD>
+the requested address
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process calling munmap.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::VM\&.OOM_KILL</TITLE>
+</HEAD><BODY>
+<H1>PROBE::VM\&.OOM_KILL</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::vm.oom_kill - Fires when a thread is selected for termination by the OOM killer
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+vm.oom_kill
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>task</I>
+<DL COMPACT><DT><DD>
+the task being killed
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process that tried to consume excessive memory, and thus triggered the OOM.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::VM\&.PAGEFAUL</TITLE>
+</HEAD><BODY>
+<H1>PROBE::VM\&.PAGEFAUL</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::vm.pagefault - Records that a page fault occurred
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+vm.pagefault
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>address</I>
+<DL COMPACT><DT><DD>
+the address of the faulting memory access; i.e. the address that caused the page fault
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<I>write_access</I>
+<DL COMPACT><DT><DD>
+indicates whether this was a write or read access; 1 indicates a write, while 0 indicates a read
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process which triggered the fault
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::VM\&.PAGEFAUL</TITLE>
+</HEAD><BODY>
+<H1>PROBE::VM\&.PAGEFAUL</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::vm.pagefault.return - Indicates what type of fault occurred
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+vm.pagefault.return
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<P>
+
+<I>fault_type</I>
+<DL COMPACT><DT><DD>
+returns either 0 (VM_FAULT_OOM) for out of memory faults, 2 (VM_FAULT_MINOR) for minor faults, 3 (VM_FAULT_MAJOR) for major faults, or 1 (VM_FAULT_SIGBUS) if the fault was neither OOM, minor fault, nor major fault.
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::VM\&.WRITE_SH</TITLE>
+</HEAD><BODY>
+<H1>PROBE::VM\&.WRITE_SH</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::vm.write_shared - Attempts at writing to a shared page
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+vm.write_shared
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>address</I>
+<DL COMPACT><DT><DD>
+the address of the shared write
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+name of the probe point
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The context is the process attempting the write.
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires when a process attempts to write to a shared page. If a copy is necessary, this will be followed by a vm.write_shared_copy.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::VM\&.WRITE_SH</TITLE>
+</HEAD><BODY>
+<H1>PROBE::VM\&.WRITE_SH</H1>
+Section: Memory Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::vm.write_shared_copy - Page copy for shared page write
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+vm.write_shared_copy
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>address</I>
+<DL COMPACT><DT><DD>
+The address of the shared write
+</DL>
+
+<P>
+
+<I>name</I>
+<DL COMPACT><DT><DD>
+Name of the probe point
+</DL>
+
+<P>
+
+<I>zero</I>
+<DL COMPACT><DT><DD>
+boolean indicating whether it is a zero page (can do a clear instead of a copy)
+</DL>
+
+<A NAME="lbAE"> </A>
+<H2>CONTEXT</H2>
+
+<P>
+
+The process attempting the write.
+<A NAME="lbAF"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+
+Fires when a write to a shared page requires a page copy. This is always preceded by a vm.write_shared.
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+<DT><A HREF="#lbAE">CONTEXT</A><DD>
+<DT><A HREF="#lbAF">DESCRIPTION</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::WORKQUEUE\&.C</TITLE>
+</HEAD><BODY>
+<H1>PROBE::WORKQUEUE\&.C</H1>
+Section: Interrupt Request (IRQ) Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::workqueue.create - Creating a new workqueue
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+workqueue.create
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>cpu</I>
+<DL COMPACT><DT><DD>
+cpu for which the worker thread is created
+</DL>
+
+<P>
+
+<I>wq_thread</I>
+<DL COMPACT><DT><DD>
+task_struct of the workqueue thread
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::WORKQUEUE\&.D</TITLE>
+</HEAD><BODY>
+<H1>PROBE::WORKQUEUE\&.D</H1>
+Section: Interrupt Request (IRQ) Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::workqueue.destroy - Destroying workqueue
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+workqueue.destroy
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>wq_thread</I>
+<DL COMPACT><DT><DD>
+task_struct of the workqueue thread
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::WORKQUEUE\&.E</TITLE>
+</HEAD><BODY>
+<H1>PROBE::WORKQUEUE\&.E</H1>
+Section: Interrupt Request (IRQ) Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::workqueue.execute - Executing deferred work
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+workqueue.execute
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>work_func</I>
+<DL COMPACT><DT><DD>
+pointer to handler function
+</DL>
+
+<P>
+
+<I>work</I>
+<DL COMPACT><DT><DD>
+work_struct* being executed
+</DL>
+
+<P>
+
+<I>wq_thread</I>
+<DL COMPACT><DT><DD>
+task_struct of the workqueue thread
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of PROBE::WORKQUEUE\&.I</TITLE>
+</HEAD><BODY>
+<H1>PROBE::WORKQUEUE\&.I</H1>
+Section: Interrupt Request (IRQ) Tapset (3stap)<BR>Updated: December 2014<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+probe::workqueue.insert - Queuing work on a workqueue
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<PRE>
+workqueue.insert
+</PRE>
+
+<A NAME="lbAD"> </A>
+<H2>VALUES</H2>
+
+<P>
+
+<I>work</I>
+<DL COMPACT><DT><DD>
+work_struct* being queued
+</DL>
+
+<P>
+
+<I>wq_thread</I>
+<DL COMPACT><DT><DD>
+task_struct of the workqueue thread
+</DL>
+
+<P>
+
+<I>work_func</I>
+<DL COMPACT><DT><DD>
+pointer to handler function
+</DL>
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">VALUES</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of STAP-MERGE</TITLE>
+</HEAD><BODY>
+<H1>STAP-MERGE</H1>
+Section: User Commands (1)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+stap-merge - systemtap per-cpu binary merger
+<P>
+
+
+
+
+<P>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<BR>
+
+<B>stap-merge</B>
+
+[
+<I>OPTIONS</I>
+
+]
+[
+<I>INPUT FILENAMES</I>
+
+]
+<P>
+<A NAME="lbAD"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+The stap-merge executable applies when the -b option has been used
+while running a
+<I>stap</I>
+
+script. The -b option will generate files
+per-cpu, based on the timestamp field. Then stap-merge will
+merge and sort through the per-cpu files based on the timestamp
+field.
+<P>
+<A NAME="lbAE"> </A>
+<H2>OPTIONS</H2>
+
+<P>
+The systemtap merge executable supports the following options.
+<DL COMPACT>
+<DT><B>-v</B>
+
+<DD>
+Verbose mode, displays three extra fields per set of collected data.
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>[cpu</B>number,<B>sequence</B>number<B>of</B>data,<B>the</B>length<B>of</B>the<B>data</B>set]
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<DT><B>-o</B><I> OUTPUT_FILENAME</I>
+
+<DD>
+<P>
+Specify the name of the file you would like the output to be
+redirected into. If this option is not specified than the
+output will be pushed to standard out.
+<P>
+</DL>
+<A NAME="lbAF"> </A>
+<H2>EXAMPLES</H2>
+
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+$ stap -v -b -e 'probe syscall.open { printf("%s(%d) open\n",
+execname(), pid()) }'
+
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+This should result in several
+<I>stpd_cpu</I>
+
+files (each labled with a number
+representing which cpu the file was produced from).
+<P>
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+$ stap-merge -v stpd_cpu0 stpd_cpu1
+
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+Running the stap-merge program in the same directory as the stap
+script earlier in the example, will produce an ordered sequence of
+packets with the three part label for each set of data. This
+result will be pushed through the standard output. An output file
+could have been specified using the "-o" option.
+<P>
+<A NAME="lbAG"> </A>
+<H2>FILES</H2>
+
+<P>
+<DL COMPACT>
+<DT>Important files and their corresponding paths can be located in the <DD>
+stappaths (7) manual page.
+<P>
+</DL>
+<A NAME="lbAH"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap),
+<I><A HREF="stappaths.7.html">stappaths</A></I>(7),
+<I><A HREF="staprun.8.html">staprun</A></I>(8),
+<I><A HREF="stapvars.3stap.html">stapvars</A></I>(3stap),
+<I><A HREF="stapex.3stap.html">stapex</A></I>(3stap),
+<I><A HREF="stap-server.8.html">stap-server</A></I>(8),
+<I><A HREF="gdb.1.html">gdb</A></I>(1)
+
+</PRE><A NAME="lbAI"> </A>
+<H2>BUGS</H2>
+
+Use the Bugzilla link of the project web page or our mailing list.
+
+<B><A HREF="http://sourceware.org/systemtap/">http://sourceware.org/systemtap/</A></B>,<B><<A HREF="mailto:systemtap@sourceware.org">systemtap@sourceware.org</A>></B>.
+
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAE">OPTIONS</A><DD>
+<DT><A HREF="#lbAF">EXAMPLES</A><DD>
+<DT><A HREF="#lbAG">FILES</A><DD>
+<DT><A HREF="#lbAH">SEE ALSO</A><DD>
+<DT><A HREF="#lbAI">BUGS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of STAP-PREP</TITLE>
+</HEAD><BODY>
+<H1>STAP-PREP</H1>
+Section: User Commands (1)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+stap-prep - prepare system for systemtap use
+<P>
+
+
+
+
+<P>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<BR>
+
+<B>stap-prep</B>
+
+[
+<I>KERNEL_VERSION</I>
+
+]
+<P>
+<A NAME="lbAD"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+The stap-prep executable prepares the system for systemtap use by
+installing kernel headers, debug symbols and build tools that match
+the currently running kernel or optionally the kernel version given by
+the user.
+<P>
+The exact behavior of stap-prep may be customized by the
+distribution maintainers. It might for example only give suggestions
+and not actually install the required packages if that is difficult to
+automate.
+<P>
+<A NAME="lbAE"> </A>
+<H2>EXAMPLES</H2>
+
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+$ stap-prep
+Please install linux-image-3.2.0-2-amd64-dbg
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<A NAME="lbAF"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1)
+
+</PRE><A NAME="lbAG"> </A>
+<H2>BUGS</H2>
+
+Use the Bugzilla link of the project web page or our mailing list.
+
+<B><A HREF="http://sourceware.org/systemtap/">http://sourceware.org/systemtap/</A></B>,<B><<A HREF="mailto:systemtap@sourceware.org">systemtap@sourceware.org</A>></B>.
+
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAE">EXAMPLES</A><DD>
+<DT><A HREF="#lbAF">SEE ALSO</A><DD>
+<DT><A HREF="#lbAG">BUGS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of STAP-REPORT</TITLE>
+</HEAD><BODY>
+<H1>STAP-REPORT</H1>
+Section: User Commands (1)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+stap-report - collect system information that is useful for debugging systemtap bugs
+<P>
+
+
+
+
+<P>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<BR>
+
+<B>stap-report</B>
+
+<P>
+<A NAME="lbAD"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+The stap-report executable collects system information that is useful
+for debugging systemtap bugs. It is a good idea to include such a
+report in bug reports especially if you send them directly to the
+upstream. stap-report can be run either as a normal user or as
+root. The report will be more complete if stap-report is run as root.
+<P>
+<A NAME="lbAE"> </A>
+<H2>EXAMPLES</H2>
+
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+$ stap-report > report.txt
+$ head report.txt
+== id ==
+uid=1000(user) gid=1000(user) groups=122(stapdev),123(stapusr),129(stapsys)
+== stap -V ==
+Systemtap translator/driver (version 2.2.1/0.153, Debian version 2.2.1-1)
+Copyright (C) 2005-2013 Red Hat, Inc. and others
+This is free software; see the source for copying conditions.
+enabled features: AVAHI LIBSQLITE3 NSS TR1_UNORDERED_MAP NLS
+== which stap ==
+/usr/bin/stap
+== locate --regex '/stap(run)?$' | xargs ls -ald ==
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<A NAME="lbAF"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1)
+
+</PRE><A NAME="lbAG"> </A>
+<H2>BUGS</H2>
+
+Use the Bugzilla link of the project web page or our mailing list.
+
+<B><A HREF="http://sourceware.org/systemtap/">http://sourceware.org/systemtap/</A></B>,<B><<A HREF="mailto:systemtap@sourceware.org">systemtap@sourceware.org</A>></B>.
+
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAE">EXAMPLES</A><DD>
+<DT><A HREF="#lbAF">SEE ALSO</A><DD>
+<DT><A HREF="#lbAG">BUGS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of STAP-SERVER</TITLE>
+</HEAD><BODY>
+<H1>STAP-SERVER</H1>
+Section: Maintenance Commands (8)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+stap-server - systemtap compile server management
+<P>
+
+
+
+<P>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<BR>
+
+[
+<B>service</B>
+
+]
+<B>stap-server</B>
+
+{
+<B>start</B>
+
+|
+<B>stop</B>
+
+|
+<B>restart</B>
+
+|
+<B>condrestart</B>
+
+|
+<B>try-restart</B>
+
+|
+<B>force-reload</B>
+
+|
+<B>status</B>
+
+} [
+<I>options</I>
+
+]
+<P>
+<A NAME="lbAD"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+A systemtap compile server listens for connections from stap clients
+on a secure SSL network port and accepts requests to run the
+<I>stap</I>
+
+front end. Each server advertises its presence and configuration on the local
+network using mDNS (<I>avahi</I>) allowing for automatic detection by clients.
+<P>
+<P>
+
+The stap-server script aims to provide:
+<DL COMPACT>
+<DT>•<DD>
+management of systemtap compile servers as a service.
+<DT>•<DD>
+convenient control over configured servers and individual (ad-hoc) servers.
+<P>
+</DL>
+<A NAME="lbAE"> </A>
+<H2>ARGUMENTS</H2>
+
+One of the actions below must be specified:
+<DL COMPACT>
+<DT><B>start</B>
+
+<DD>
+Start servers. The specified servers are started.
+If no server is specified, the configured servers are started. If no servers
+are configured, a server for the kernel release and architecture of the host
+is started.
+If a specified server is
+already started, this action will
+be ignored for that server. If a server fails to start, this action fails.
+<P>
+<DT><B>stop</B>
+
+<DD>
+Stop server(s). The specified servers are stopped.
+If no server is specified, all currently running servers are stopped.
+If a specified server is
+not running, this action
+will be successful for that server. If a server fails to stop, this action
+fails.
+<P>
+<DT><B>restart</B>
+
+<DD>
+Stop and restart servers. The specified servers are stopped and restarted.
+If no server is specified, all currently running servers are stopped and
+restarted. If no servers are running, this action behaves like <I>start</I>.
+<P>
+<DT><B>condrestart</B>
+
+<DD>
+Stop and restart servers. The specified servers are stopped and restarted.
+If a specified server is not running, it is not started. If no server is
+specified, all currently running servers are stopped and restarted. If no
+servers are running, none will be started.
+<P>
+<DT><B>try-restart</B>
+
+<DD>
+This action is identical to <I>condrestart</I>.
+<P>
+<DT><B>force-reload</B>
+
+<DD>
+Stop all running servers, reload config files and restart the service as if
+<I>start</I>
+
+was specified.
+<P>
+<DT><B>status</B>
+
+<DD>
+Print information about running servers. Information about the specified
+server(s) will be printed. If no server is specified, information about all
+running servers will be printed.
+<P>
+</DL>
+<A NAME="lbAF"> </A>
+<H2>OPTIONS</H2>
+
+The following options are used to provide additional configuration and
+to specify servers to be managed:
+<P>
+<DL COMPACT>
+<DT><B>-c</B> <I>configfile</I><DD>
+This option specifies a global configuration file in addition to the default
+global configuration file described
+below. This file will be processed after the default global
+configuration file. If the <B>-c</B> option is specified more than once, the
+last
+configuration file specified will be used.
+<P>
+<DT><B>-a</B> <I>architecture</I><DD>
+This option specifies the target architecture of the server and is
+analogous to the <B>-a</B> option of <I>stap</I>. See the
+<I><A HREF="stap.1.html">stap</A></I>(1)
+
+manual page for more details.
+The default architecture is the architecture of the host.
+<P>
+<DT><B>-r</B> <I>kernel-release</I><DD>
+This option specifies the target kernel release of the server and is
+analogous to the <B>-r</B> option of <I>stap</I>. See the
+<I><A HREF="stap.1.html">stap</A></I>(1)
+
+manual page for more details.
+The default release is that of the currently running kernel.
+<P>
+<DT><B>-I</B> <I>path</I><DD>
+This option specifies an additional path to be searched by the server(s) for
+tapsets and is analogous to the <B>-I</B> option of <I>stap</I>.
+See the
+<I><A HREF="stap.1.html">stap</A></I>(1)
+
+manual page for more details.
+<P>
+<DT><B>-R</B> <I>path</I><DD>
+This option specifies the location of the systemtap runtime to be used by the
+server(s) and is analogous to the <B>-R</B> option of <I>stap</I>.
+See the
+<I><A HREF="stap.1.html">stap</A></I>(1)
+
+manual page for more details.
+<P>
+<DT><B>-B</B> <I>options</I><DD>
+This option specifies options to be passed to <I>make</I> when building systemtap
+modules and is analogous to the <B>-B</B> option of <I>stap</I>.
+See the
+<I><A HREF="stap.1.html">stap</A></I>(1)
+
+manual page for more details.
+<P>
+<DT><B>-i</B><DD>
+This option is a shortcut which specifies one server for each kernel
+release installed in <I>/lib/modules/</I>. Previous
+<B>-I</B>, <B>-R</B>, <B>-B</B> and <B>-u</B> options will be
+applied to each server, however previous <B>-a</B> options will be ignored and
+the default architecture will be used.
+<P>
+<DT><B>-n</B> <I>nickname</I><DD>
+This option allows the specification of a server configuration by nickname.
+When <B>-n</B> is specified, a currently running server with the given nickname
+will be searched for. If no currently running server with the given nickname is
+found, a server configuration with the given nickname will be searched for in
+the configuration files for default servers,
+or the path configured in the global configuration file or
+the configuration file specified by the
+<B>-c</B> option. If a server configuration for the given
+nickname is found, the
+<B>-a</B>, <B>-r</B>, <B>-I</B>, <B>-R</B>, <B>-B</B> and <B>-u</B> options for
+that server will be used as if they were specified on the command line. If no
+configuration with the given nickname is found, and the action is
+<I>start</I>
+
+(or an action behaving like <I>start</I>
+(see <B>ARGUMENTS</B>), the server will be started with the given nickname.
+If no configuration with the given nickname is found, and the action is not
+<I>start</I>
+
+(or an action behaving like <I>start</I>), it is an error. If a nickname is
+not specified for a server which is being started, its nickname will be its
+process id.
+<P>
+<DT><B>-p</B> <I>pid</I><DD>
+This option allows the specification of a server configuration by process id.
+When <B>-p</B> is specified, a currently running server with the given process
+id will be searched for. If no such server is found, it is an error. If a server
+with the given process id is found, the
+<B>-a</B>, <B>-r</B>, <B>-I</B>, <B>-R</B>, <B>-B</B> and <B>-u</B> options for
+that server will be used as if they were specified on the command line.
+<P>
+<DT><B>-u</B> <I>user-name</I><DD>
+Each systemtap compile server is normally run by the user name
+<I>stap-server</I> (for the initscript) or as the user invoking
+<I>stap-server</I>,
+unless otherwise configured (see <B>FILES</B>). This option
+specifies the user name used to run the server(s). The user name specified
+must be a member of the group <I>stap-server</I>.
+<P>
+<DT><B>--log</B> <I>logfile</I><DD>
+This option allows the specification of a separate log file for each server.
+Each --log option is added to a list which will be applied, in turn, to each
+server specified. If more servers are specified than --log options, the default
+log file (see <B>FILES</B>) will be used for subsequent servers.
+<P>
+<DT><B>--port</B> <I>port-number</I><DD>
+This option allows the specification of a specific network port for each
+server. Each --port option is added to a list which will be applied, in turn,
+to each server specified. If more servers are specified than
+--port options, a randomly selected port is used for subsequent servers.
+<P>
+<DT><B>--ssl</B> <I>certificate-db-path</I><DD>
+This option allows the specification of a separate NSS certificate database
+for each server. Each --ssl option is added to a list which will be applied,
+in turn, to each server specified. If more servers are specified than --ssl
+options, the default certificate database
+(see <B>FILES</B>) for subsequent servers.
+<P>
+<DT><B>--max-threads</B> <I>threads</I><DD>
+This option allows the specification of the maximum number of worker threads
+to handle concurrent requests. If <I>threads</I> == 0, each request will be
+handled on the main thread, serially. The default is the number of available
+processor cores.
+<P>
+</DL>
+<A NAME="lbAG"> </A>
+<H2>CONFIGURATION</H2>
+
+<P>
+Configuration files allow us to:
+<DL COMPACT>
+<DT>•<DD>
+specify global configuration of logging, server configuration files, status
+files and other global parameters.
+<DT>•<DD>
+specify which servers are to be started by default.
+<P>
+</DL>
+<A NAME="lbAH"> </A>
+<H2>Global Configuration</H2>
+
+<P>
+The Global Configuration file contains
+variable assignments used to configure the overall operation of the service.
+Each line beginning with a '#' character is ignored. All other lines must be
+of the form <I>VARIABLE=VALUE</I>. This is not a shell script. The entire
+contents of the line after the = will be assigned as-is to the variable.
+<P>
+The following variables may be assigned:
+<P>
+<DL COMPACT>
+<DT><B>CONFIG_PATH</B>
+
+<DD>
+Specifies the absolute path of the directory containing the default server
+configurations.
+<P>
+<DT><B>STAT_PATH</B>
+
+<DD>
+Specifies the absolute path of the running server status directory.
+<P>
+<DT><B>LOG_FILE</B>
+
+<DD>
+Specifies the absolute path of the log file.
+<P>
+<DT><B>STAP_USER</B>
+
+<DD>
+Specifies the userid which will be used to run the server(s)
+(default: for the initscript <I>stap-server</I>, otherwise the user running
+<I>stap-server</I>).
+<P>
+</DL>
+<P>
+
+Here is an example of a Global Configuration file:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+CONFIG_PATH=~<user>/my-stap-server-configs
+LOG_FILE=/tmp/stap-server/log
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<A NAME="lbAI"> </A>
+<H2>Individual Server Configuration</H2>
+
+<P>
+Each server configuration file configures a server to be started when no
+server is specified for the <I>start</I> action, or an action behaving like the
+<I>start</I> action (see <I>ARGUMENTS</I>). Each configuration file contains
+variable assignments used to configure an individual server.
+<P>
+Each line beginning with a '#' character is ignored. All other lines must be
+of the form <I>VARIABLE=VALUE</I>. This is not a shell script. The entire
+contents of the line after the = will be assigned as-is to the variable.
+<P>
+Each configuration file must have a filename suffix of <I>.conf</I>. See
+<I><A HREF="stappaths.7.html">stappaths</A></I>(7) for the default location of these files. This default
+location can be overridden in the global configuration file using the <B>-c</B>
+option (see <I>OPTIONS</I>).
+<P>
+The following variables may be assigned:
+<DL COMPACT>
+<DT><B>ARCH</B>
+
+<DD>
+Specifies the target architecture for this server and corresponds to the
+<B>-a</B> option (see <I>OPTIONS</I>). If <B>ARCH</B> is not set, the
+architecture of the host will be used.
+<P>
+<DT><B>RELEASE</B>
+
+<DD>
+Specifies the kernel release for this server
+and corresponds to the
+<B>-r</B> option (see <I>OPTIONS</I>). If <B>RELEASE</B> is not set, the
+release
+of the kernel running on the host will be used.
+<BR>
+<DT><B>BUILD</B>
+
+<DD>
+Specifies options to be passed to the <I>make</I> process used by
+<I>systemtap</I> to build kernel modules.
+This an array variable with each element corresponding to a
+<B>-B</B> option (see <I>OPTIONS</I>). Using the form <B>BUILD=STRING</B> clears
+the array and sets the first element to <B>STRING</B>. Using the form
+<B>BUILD+=STRING</B> adds <B>STRING</B> as an additional element to the array.
+<BR>
+<DT><B>INCLUDE</B>
+
+<DD>
+Specifies a list of directories to be searched by the server for tapsets.
+This is an array variable with each element corresponding to a
+<B>-I</B> option (see <I>OPTIONS</I>). Using the form <B>INCLUDE=PATH</B> clears
+the array and sets the first element to <B>PATH</B>. Using the form
+<B>INCLUDE+=PATH</B> adds <B>PATH</B> as an additional element to the array.
+<P>
+<DT><B>RUNTIME</B>
+
+<DD>
+Specifies the directory which contains the systemtap runtime code to be used
+by this server
+and corresponds to the
+<B>-R</B> option (see <I>OPTIONS</I>).
+<P>
+<DT><B>USER</B>
+
+<DD>
+Specifies the user name to be used to run this server
+and corresponds to the
+<B>-u</B> option (see <I>OPTIONS</I>).
+<P>
+<DT><B>NICKNAME</B>
+
+<DD>
+Specifies the nickname to be used to refer to this server
+and corresponds to the
+<B>-n</B> option (see <I>OPTIONS</I>).
+<P>
+<DT><B>LOG</B>
+
+<DD>
+Specifies the location of the log file to be used by this server and corresponds to the
+<B>--log</B> option (see <I>OPTIONS</I>).
+<P>
+<DT><B>PORT</B>
+
+<DD>
+Specifies the network port to be used by this server and corresponds to the
+<B>--port</B> option (see <I>OPTIONS</I>).
+<P>
+<DT><B>SSL</B>
+
+<DD>
+Specifies the location of the NSS certificate database to be used by this server and corresponds
+to the
+<B>--ssl</B> option (see <I>OPTIONS</I>).
+<P>
+<DT><B>MAXTHREADS</B>
+
+<DD>
+Specifies the maximum number of worker threads to handle concurrent requests to be used by this server
+and corresponds to the <B>--max-threads</B> option (see <I>OPTIONS</I>).
+<P>
+</DL>
+<P>
+
+Here is an example of a server configuration file:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+ARCH=
+USER=
+RELEASE=
+NICKNAME=native
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+By keeping the ARCH, USER, and RELEASE fields blank, they will default to the
+current arch and release and use the default user.
+<P>
+A more specific example:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+ARCH=i386
+RELEASE=2.6.18-128.el5
+PORT=5001
+LOG=/path/to/log/file
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+And here is a more complicated example:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+USER=serveruser
+RELEASE=/kernels/2.6.18-92.1.18.el5/build
+INCLUDE=/mytapsets
+INCLUDE+=/yourtapsets
+BUILD='VARIABLE1=VALUE1 VARIABLE2=VALUE2'
+DEFINE=STP_MAXMEMORY=1024
+DEFINE+=DEBUG_TRANS
+RUNTIME=/myruntime
+NICKNAME=my-server
+SSL=/path/to/NSS/certificate/database
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<A NAME="lbAJ"> </A>
+<H2>SERVER AUTHENTICAION</H2>
+
+The security of the SSL network connection between the client and server
+depends on the proper
+management of server certificates.
+<P>
+<P>
+
+The trustworthiness of a given systemtap compile server can not be determined
+automatically without a trusted certificate authority issuing systemtap compile server
+certificates. This is
+not practical in everyday use and so, clients must authenticate servers
+against their own database of trusted server certificates. In this context,
+establishing a given server as trusted by a given client means adding
+that server's certificate to the
+client's database of trusted servers.
+<P>
+<P>
+
+For the <I>stap-server</I> initscript, on the local host, this is handled
+automatically.
+When the <I>systemtap-server</I> package is installed, the server's
+certificate for the default user (<I>stap-server</I>) is automatically
+generated and installed. This means that servers started by the
+<I>stap-server</I> initscript,
+with the default user, are automatically trusted by clients on the local
+host, both as an SSL peer and as a systemtap module signer.
+<P>
+
+Furthermore, when stap is invoked by an unprivileged user
+(not root, not a member of the group stapdev, but a member of the group
+stapusr and possibly the group stapsys), the options <I>--use-server</I>
+and <I>--privilege</I>
+are automatically added to the specified options.
+This means that unprivileged users
+on the local host can use a server on the local host
+in unprivileged mode with no further setup or options required. Normal users
+(those in none of the SystemTap groups) can also use compile-servers through the
+<I>--use-server</I> and <I>--privilege</I> options. But they will of course
+be unable to load the module (the <I>-p4</I> option can be used to stop short of
+loading).
+<P>
+<P>
+
+In order to use a server running on another host, that server's certificate
+must be installed on the client's host.
+See the <I>--trust-servers</I> option in the
+<I><A HREF="stap.1.html">stap</A></I>(1)
+
+manual page for more details and README.unprivileged in the systemtap sources
+for more details.
+<P>
+<A NAME="lbAK"> </A>
+<H2>EXAMPLES</H2>
+
+See the
+<I><A HREF="stapex.3stap.html">stapex</A></I>(3stap)
+
+manual page for a collection of sample <I>systemtap</I> scripts.
+<P>
+
+To start the configured servers, or the default server, if none are configured:
+<P>
+
+<B> $ [ service ] stap-server start</B>
+
+<P>
+
+To start a server for each kernel installed in /lib/modules:
+<P>
+
+<B> $ [ service ] stap-server start -i</B>
+
+<P>
+
+To obtain information about the running server(s):
+<P>
+
+<B> $ [ service ] stap-server status</B>
+
+<P>
+
+To start a server like another one, except targeting a different architecture,
+by referencing the first server's nickname:
+<P>
+
+<B> $ [ service ] stap-server start -n </B><I>NICKNAME</I><B> -a </B><I>ARCH</I>
+
+<P>
+
+To start a server for a kernel release not installed (cross-compiling)
+<P>
+
+<B> $ [ service ] stap-server start -a </B><I>ARCH</I><B> -r </B><I>/BUILDDIR</I>
+
+<P>
+
+To stop one of the servers by referencing its process id (obtained by running
+<B>stap-server status</B>):
+<P>
+
+<B> $ [ service ] stap-server stop -p </B><I>PID</I>
+
+<P>
+
+To run a script using a compile server:
+<P>
+
+<B> $ stap SCRIPT --use-server</B>
+
+<P>
+
+To run a script as an unprivileged user using a compile server:
+<P>
+
+<B> $ stap SCRIPT</B>
+
+<P>
+
+To stop all running servers:
+<P>
+
+<B> $ [ service ] stap-server stop</B>
+
+<P>
+
+To restart servers after a global configuration change and/or when default
+servers have been added, changed, or removed:
+<P>
+
+<B> $ [ service ] stap-server force-reload</B>
+
+<P>
+<A NAME="lbAL"> </A>
+<H2>SAFETY AND SECURITY</H2>
+
+Systemtap is an administrative tool. It exposes kernel internal data
+structures and potentially private user information. See the
+<I><A HREF="stap.1.html">stap</A></I>(1)
+
+manual page for additional information on safety and security.
+<P>
+<P>
+
+As a network server, stap-server should be activated with care in
+order to limit the potential effects of bugs or mischevious users.
+Consider the following prophylactic measures.
+<DL COMPACT>
+<DT>1<DD>
+Run stap-server as an unprivileged user, never as root.
+<P>
+When invoked as a
+service (i.e. <B>service stap-server</B> ...), each server is run,
+by default, as the user <I>stap-server</I>.
+When invoked directly (i.e. <B>stap-server</B> ...), each server is run,
+by default, as the invoking user. In each case, another user may be selected by
+using the <I>-u</I> option on invocation, by specifying
+<I>STAP_USER=</I>username in the global configuration file or by specifying
+<I>USER=</I>username in an individual server configuration file. The invoking
+user must have authority to run processes as another user.
+See <I>CONFIGURATION</I>.
+<P>
+The selected user must have write access to the server log file.
+The location of the server log file may
+be changed by setting <I>LOG_FILE=</I>path in the global configuration file.
+See <I>CONFIGURATION</I>.
+<P>
+The selected user must have
+read/write access to the directory containing the server status files.
+The location of the server
+status files may be changed by setting <I>STAT_PATH=</I>path in the global
+configuration file.
+See <I>CONFIGURATION</I>.
+<P>
+The selected user must have
+read/write access to the uprobes.ko build directory and its files.
+<P>
+Neither form of stap-server will run if the selected user is root.
+<P>
+<DT>2<DD>
+Run stap-server requests with resource limits that impose maximum
+cpu time, file size, memory consumption, in order to bound
+the effects of processing excessively large or bogus inputs.
+<P>
+When the user running the server is <I>stap-server</I>,
+each server request is run with limits specified in <I>~stap-server/.systemtap/rc</I>
+otherwise, no limits are imposed.
+<P>
+<DT>3<DD>
+Run stap-server with a TMPDIR environment variable that
+points to a separate and/or quota-enforced directory, in
+order to prevent filling up of important filesystems.
+<P>
+The default TMPDIR is <I>/tmp/</I>.
+<P>
+<DT>4<DD>
+Activate network firewalls to limit stap client connections
+to relatively trustworthy networks.
+<P>
+For automatic selection of servers by clients, <I>avahi</I> must be installed
+on both the server and client hosts and <I>mDNS</I> messages must be allowed through the firewall.
+<P>
+</DL>
+<P>
+
+The systemtap compile server and its related utilities use the Secure Socket Layer
+(SSL) as implemented by Network Security Services (NSS)
+for network security. NSS is also used
+for the generation and management of certificates. The related
+certificate databases must be protected in order to maintain the security of
+the system.
+Use of the utilities provided will help to ensure that the proper protection
+is maintained. The systemtap client will check for proper
+access permissions before making use of any certificate database.
+<P>
+<A NAME="lbAM"> </A>
+<H2>FILES</H2>
+
+<DL COMPACT>
+<DT>Important files and their corresponding paths can be located in the <DD>
+stappaths (7) manual page.
+<P>
+</DL>
+<A NAME="lbAN"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1),
+<I><A HREF="staprun.8.html">staprun</A></I>(8),
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap),
+<I><A HREF="stappaths.7.html">stappaths</A></I>(7),
+<I><A HREF="stapex.3stap.html">stapex</A></I>(3stap),
+<I>avahi</I>,
+<I><A HREF="ulimit.1.html">ulimit</A></I>(1),
+<I>NSS</I>
+
+</PRE><A NAME="lbAO"> </A>
+<H2>BUGS</H2>
+
+Use the Bugzilla link of the project web page or our mailing list.
+
+<B><A HREF="http://sourceware.org/systemtap/">http://sourceware.org/systemtap/</A></B>, <B><<A HREF="mailto:systemtap@sourceware.org">systemtap@sourceware.org</A>></B>.
+
+
+<P>
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAE">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAF">OPTIONS</A><DD>
+<DT><A HREF="#lbAG">CONFIGURATION</A><DD>
+<DT><A HREF="#lbAH">Global Configuration</A><DD>
+<DT><A HREF="#lbAI">Individual Server Configuration</A><DD>
+<DT><A HREF="#lbAJ">SERVER AUTHENTICAION</A><DD>
+<DT><A HREF="#lbAK">EXAMPLES</A><DD>
+<DT><A HREF="#lbAL">SAFETY AND SECURITY</A><DD>
+<DT><A HREF="#lbAM">FILES</A><DD>
+<DT><A HREF="#lbAN">SEE ALSO</A><DD>
+<DT><A HREF="#lbAO">BUGS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of STAP</TITLE>
+</HEAD><BODY>
+<H1>STAP</H1>
+Section: User Commands (1)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+stap - systemtap script translator/driver
+<P>
+
+
+
+
+<P>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<BR>
+
+<B>stap</B>
+
+[
+<I>OPTIONS</I>
+
+]
+<I>FILENAME</I>
+
+[
+<I>ARGUMENTS</I>
+
+]
+<BR>
+
+<B>stap</B>
+
+[
+<I>OPTIONS</I>
+
+]
+<B>-</B>
+
+[
+<I>ARGUMENTS</I>
+
+]
+<BR>
+
+<B>stap</B>
+
+[
+<I>OPTIONS</I>
+
+]
+<B>-e</B><I> SCRIPT</I>
+
+[
+<I>ARGUMENTS</I>
+
+]
+<BR>
+
+<B>stap</B>
+
+[
+<I>OPTIONS</I>
+
+]
+<B>-l</B><I> PROBE</I>
+
+[
+<I>ARGUMENTS</I>
+
+]
+<BR>
+
+<B>stap</B>
+
+[
+<I>OPTIONS</I>
+
+]
+<B>-L</B><I> PROBE</I>
+
+[
+<I>ARGUMENTS</I>
+
+]
+<BR>
+
+<B>stap</B>
+
+[
+<I>OPTIONS</I>
+
+]
+<B>--dump-probe-types</B>
+
+<BR>
+
+<B>stap</B>
+
+[
+<I>OPTIONS</I>
+
+]
+<B>--dump-probe-aliases</B>
+
+<BR>
+
+<B>stap</B>
+
+[
+<I>OPTIONS</I>
+
+]
+<B>--dump-functions</B>
+
+<P>
+<A NAME="lbAD"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+The
+<I>stap</I>
+
+program is the front-end to the Systemtap tool. It accepts probing
+instructions written in a simple domain-specific language, translates
+those instructions into C code, compiles this C code, and loads the
+resulting module into a running Linux kernel or a DynInst user-space
+mutator, to perform the requested system trace/probe functions. You
+can supply the script in a named file (FILENAME), from standard input
+(use - instead of FILENAME), or from the command line (using -e
+SCRIPT). The program runs until it is interrupted by the user, or if
+the script voluntarily invokes the
+<I>exit()</I>
+
+function, or by sufficient number of soft errors.
+<P>
+
+The language, which is described the
+<I>SCRIPT LANGUAGE</I>
+
+section below, is strictly typed, expressive, declaration free, procedural,
+prototyping-friendly, and inspired by
+<I>awk</I> and <I>C</I>.
+
+It allows source code points or events in the system to be associated
+with handlers, which are subroutines that are executed synchronously. It is
+somewhat similar conceptually to "breakpoint command lists" in the
+<I>gdb</I>
+
+debugger.
+<P>
+<A NAME="lbAE"> </A>
+<H2>OPTIONS</H2>
+
+The systemtap translator supports the following options. Any other option
+prints a list of supported options. Options may be given on the command line,
+as usual. If the file $SYSTEMTAP_DIR/rc exist, options are also loaded from
+there and interpreted first. ($SYSTEMTAP_DIR defaults to $HOME/.systemtap if unset.)
+<DL COMPACT>
+<DT><B>-</B>
+
+<DD>
+Use standard input instead of a given FILENAME as probe language input,
+unless -e SCRIPT is given.
+<DT><B>-h --help</B>
+
+<DD>
+Show help message.
+<DT><B>-V --version</B>
+
+<DD>
+Show version message.
+<DT><B>-p</B><I> NUM</I>
+
+<DD>
+Stop after pass NUM. The passes are numbered 1-5: parse, elaborate,
+translate, compile, run. See the
+<B>PROCESSING</B>
+
+section for details.
+<DT><B>-v</B>
+
+<DD>
+Increase verbosity for all passes. Produce a larger volume of
+informative (?) output each time option repeated.
+<DT><B>--vp ABCDE</B>
+
+<DD>
+Increase verbosity on a per-pass basis. For example, "--vp 002"
+adds 2 units of verbosity to pass 3 only. The combination "-v --vp 00004"
+adds 1 unit of verbosity for all passes, and 4 more for pass 5.
+<DT><B>-k</B>
+
+<DD>
+Keep the temporary directory after all processing. This may be useful
+in order to examine the generated C code, or to reuse the compiled
+kernel object.
+<DT><B>-g</B>
+
+<DD>
+Guru mode. Enable parsing of unsafe expert-level constructs like
+embedded C.
+<DT><B>-P</B>
+
+<DD>
+Prologue-searching mode. Activate heuristics to work around incorrect
+debugging information for $context variables.
+<DT><B>-u</B>
+
+<DD>
+Unoptimized mode. Disable unused code elision during elaboration.
+<DT><B>-w</B>
+
+<DD>
+Suppressed warnings mode. Disables all warning messages.
+<DT><B>-W</B>
+
+<DD>
+Treat all warnings as errors.
+<DT><B>-b</B>
+
+<DD>
+Use bulk mode (percpu files) for kernel-to-user data transfer.
+<DT><B>-t</B>
+
+<DD>
+Collect timing information on the number of times probe executes
+and average amount of time spent in each probe-point. Also shows
+the derivation for each probe-point.
+<DT><B>-s</B><I>NUM</I>
+
+<DD>
+Use NUM megabyte buffers for kernel-to-user data transfer. On a
+multiprocessor in bulk mode, this is a per-processor amount.
+<DT><B>-I</B><I> DIR</I>
+
+<DD>
+Add the given directory to the tapset search directory. See the
+description of pass 2 for details.
+<DT><B>-D</B><I> NAME=VALUE</I>
+
+<DD>
+Add the given C preprocessor directive to the module Makefile. These can
+be used to override limit parameters described below.
+<DT><B>-B</B><I> NAME=VALUE</I>
+
+<DD>
+Add the given make directive to the kernel module build's make invocation.
+These can be used to add or override kconfig options.
+<DT><B>-a</B><I> ARCH</I>
+
+<DD>
+Use a cross-compilation mode for the given target architecture. This requires
+access to the cross-compiler and the kernel build tree, and goes along
+with the
+<B>-B CROSS_COMPILE=arch-tool-prefix-</B> and <B>-r /build/tree</B>
+
+options.
+<DT><B>--modinfo</B><I> NAME=VALUE</I>
+
+<DD>
+Add the name/value pair as a MODULE_INFO macro call to the generated module.
+This may be useful to inform or override various module-related checks in
+the kernel.
+<DT><B>-G</B><I> NAME=VALUE</I>
+
+<DD>
+Sets the value of global variable NAME to VALUE when staprun is invoked.
+This applies to scalar variables declared global in the script/tapset.
+<DT><B>-R</B><I> DIR</I>
+
+<DD>
+Look for the systemtap runtime sources in the given directory.
+<DT><B>-r</B><I> /DIR</I>
+
+<DD>
+Build for kernel in given build tree. Can also be set with the
+<I>SYSTEMTAP_RELEASE</I>
+
+environment variable.
+<DT><B>-r</B><I> RELEASE</I>
+
+<DD>
+Build for kernel in build tree
+<B>/lib/modules/RELEASE/build</B>.
+
+Can also be set with the
+<I>SYSTEMTAP_RELEASE</I>
+
+environment variable.
+<DT><B>-m</B><I> MODULE</I>
+
+<DD>
+Use the given name for the generated kernel object module, instead
+of a unique randomized name. The generated kernel object module is
+copied to the current directory.
+<DT><B>-d</B><I> MODULE</I>
+
+<DD>
+Add symbol/unwind information for the given module into the kernel object
+module. This may enable symbolic tracebacks from those modules/programs,
+even if they do not have an explicit probe placed into them.
+<DT><B>--ldd</B>
+
+<DD>
+Add symbol/unwind information for all shared libraries suspected by
+ldd to be necessary for user-space binaries being probe or listed with
+the -d option. Caution: this can make the probe modules considerably
+larger.
+<DT><B>--all-modules</B>
+
+<DD>
+Equivalent to specifying "-dkernel" and a "-d" for each kernel module that is
+currently loaded. Caution: this can make the probe modules considerably
+larger.
+<DT><B>-o</B><I> FILE</I>
+
+<DD>
+Send standard output to named file. In bulk mode, percpu files will
+start with FILE_ (FILE_cpu with -F) followed by the cpu number.
+This supports <A HREF="strftime.3.html">strftime</A>(3) formats for FILE.
+<DT><B>-c</B><I> CMD</I>
+
+<DD>
+Start the probes, run CMD, and exit when CMD finishes. This also has the
+effect of setting target() to the pid of the command ran.
+<DT><B>-x</B><I> PID</I>
+
+<DD>
+Sets target() to PID. This allows scripts to be written that filter on
+a specific process. Scripts run independent of the PID's lifespan.
+<DT><B>-e</B><I> SCRIPT</I>
+
+<DD>
+Run the given SCRIPT specified on the command line.
+<DT><B>-E</B><I> SCRIPT</I>
+
+<DD>
+Run the given SCRIPT specified. This SCRIPT is run in addition to the main
+script specified, through -e, or as a script file. This option can be repeated
+to run multiple scripts, and can be used in listing mode (-l/-L).
+<DT><B>-l</B><I> PROBE</I>
+
+<DD>
+Instead of running a probe script, just list all available probe
+points matching the given single probe point. The pattern may include
+wildcards and aliases, but not comma-separated multiple probe points.
+The process result code will indicate failure if there are no matches.
+<DT><B>-L</B><I> PROBE</I>
+
+<DD>
+Similar to "-l", but list probe points and script-level local variables.
+<DT><B>-F</B>
+
+<DD>
+Without -o option, load module and start probes, then detach from the module
+leaving the probes running.
+With -o option, run staprun in background as a daemon and show its pid.
+<DT><B>-S</B><I> size[,N]</I>
+
+<DD>
+Sets the maximum size of output file and the maximum number of output files.
+If the size of output file will exceed
+<B>size</B>
+
+, systemtap switches output file to the next file. And if the number of
+output files exceed
+<B>N</B>
+
+, systemtap removes the oldest output file. You can omit the second argument.
+<DT><B>--skip-badvars</B>
+
+<DD>
+Ignore unresolvable or run-time-inaccessible context variables and
+substitute with 0, without errors.
+<P>
+<DT><B>--suppress-handler-errors</B>
+
+<DD>
+Wrap all probe handlers into something like this
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+try { ... } catch { next }
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+block, which causes any runtime errors to be quietly suppressed.
+Suppressed errors do not count against
+<B>MAXERRORS</B>
+
+limits. In this mode, the
+<B>MAXSKIPPED</B>
+
+limits are also suppressed, so that many errors and skipped probes
+may be accumulated during a script's runtime. Any overall counts will
+still be reported at shutdown.
+<P>
+<DT><B>--compatible</B><I> VERSION</I>
+
+<DD>
+Suppress recent script language or tapset changes which are incompatible
+with given older version of systemtap. This may be useful if a much older
+systemtap script fails to run. See the DEPRECATION section for more
+details.
+<P>
+<DT><B>--check-version</B>
+
+<DD>
+This option is used to check if the active script has any constructs
+that may be systemtap version specific. See the DEPRECATION section
+for more details.
+<P>
+<DT><B>--clean-cache</B>
+
+<DD>
+This option prunes stale entries from the cache directory. This is normally
+done automatically after successful runs, but this option will trigger the
+cleanup manually and then exit. See the CACHING section for more details about
+cache limits.
+<P>
+<DT><B>--color</B>[=<I>WHEN</I>], <B>--colour</B>[=<I>WHEN</I>]<DD>
+This option controls coloring of error messages. WHEN can be either "never",
+"always", or "auto" (i.e. enable only if at a terminal). If WHEN is missing,
+then "always" is assumed. If the option is missing, then "auto" is assumed.
+<P>
+Colors can be modified using the SYSTEMTAP_COLORS environment variable. The
+format must be of the form
+
+<B>key1=val1:key2=val2:key3=val3</B> ...etc.
+
+Valid keys are
+
+"error", "warning", "source", "caret", and "token".
+
+Values constitute Select Graphic Rendition (SGR) parameter(s). Consult the
+documentation of your terminal for the SGRs it supports. As an example, the
+default colors would be expressed as
+
+<B>error=01;31:warning=00;33:source=00;34:caret=01:token=01</B>.
+
+If SYSTEMTAP_COLORS is absent, the default colors will be used. If it is empty
+or invalid, coloring is turned off.
+<P>
+<DT><B>--disable-cache</B>
+
+<DD>
+This option disables all use of the cache directory. No files will be either
+read from or written to the cache.
+<P>
+<DT><B>--poison-cache</B>
+
+<DD>
+This option treats files in the cache directory as invalid. No files will be
+read from the cache, but resulting files from this run will still be written to
+the cache. This is meant as a troubleshooting aid when stap's cached behavior
+seems to be misbehaving.
+<P>
+<DT><B>--privilege</B>[=<I>stapusr</I> | =<I>stapsys</I> | =<I>stapdev</I>]<DD>
+This option instructs <I>stap</I> to examine the script looking for constructs
+which are not allowed for the specified privilege level (see <I>UNPRIVILEGED USERS</I>).
+Compilation fails if any such
+constructs are used.
+If <I>stapusr</I> or <I>stapsys</I> are specified when using a compile server
+(see <I>--use-server</I>),
+the server will examine the script and, if compilation succeeds, the
+server will cryptographically sign the resulting kernel module, certifying
+that is it safe for use by users at the specified privilege level.
+<P>
+If <I>--privilege</I> has not been specified,
+<I>-pN</I> has not been specified with N < 5,
+and the invoking user is not
+<I>root</I>, and is not a member of the group <I>stapdev</I>,
+then <I>stap</I> will automatically
+add the appropriate <I>--privilege</I> option to the options already specified.
+<P>
+<DT><B>--unprivileged</B>
+
+<DD>
+This option is equivalent to <I>--privilege=stapusr</I>.
+<P>
+<DT><B>--use-server</B>[=<I>HOSTNAME</I>[<I>:PORT</I>] | =<I>IP_ADDRESS</I>[<I>:PORT</I>] | =<I>CERT_SERIAL</I>]<DD>
+Specify compile-server(s) to be used for compilation and/or in conjunction
+with
+<I>--list-servers</I>
+
+and
+<I>--trust-servers</I>
+
+(see below). If no argument is
+supplied, then the default in unprivileged mode (see
+<I>--privilege</I>)
+
+is to select compatible servers which are trusted as SSL peers and as
+module signers and currently online. Otherwise the default is to select
+compatible servers which are trusted as SSL peers
+and currently online.
+<I>--use-server</I>
+
+may be
+specified more than once, in which case a list of servers is accumulated
+in the order specified. Servers may be specified by host name, ip address, or
+by certificate serial number (obtained using
+<I>--list-servers</I>).
+
+The latter is most commonly used when adding or revoking
+trust in a server (see
+<I>--trust-servers</I>
+
+below). If a server is specified by host name or ip address, then an optional
+port number may be specified. This is useful for accessing servers which are
+not on the local network or to specify a particular server.
+<P>
+IP addresses may be IPv4 or IPv6 addresses.
+<P>
+If a particular IPv6 address is link local and exists
+on more than one interface, the intended interface may be specified by appending the address with
+a percent sign (%) followed by the intended interface name. For example,
+"fe80::5eff:35ff:fe07:55ca%eth0".
+<P>
+In order to specify a port number with an IPv6 address, it is necessary to enclose the IPv6 address
+in square brackets ([]) in order to separate the port number from the rest of the address. For
+example, "[fe80::5eff:35ff:fe07:55ca]:5000" or "[fe80::5eff:35ff:fe07:55ca%eth0]:5000".
+<P>
+If <I>--use-server</I> has not been specified,
+<I>-pN</I> has not been specified with N < 5,
+and the invoking user not <I>root</I>,
+is not a member of the group <I>stapdev</I>, but is a member of the group
+<I>stapusr</I>, then <I>stap</I> will automatically
+add <I>--use-server</I> to the options already specified.
+<P>
+<DT><B>--use-server-on-error</B>[=<B>yes</B>|=<B>no</B>]<DD>
+Instructs stap to retry compilation of a script using a compile server if
+compilation on the local host fails in a manner which suggests that it might
+succeed using a server.
+If this option is not specified, the default is <I>no</I>.
+If no argument is provided, then the default
+is <I>yes</I>. Compilation will be retried for certain types of errors
+(e.g. insufficient data or resources) which may not occur during
+re-compilation by a compile
+server. Compile servers will be selected automatically for the
+re-compilation attempt as if <I>--use-server</I> was specified with no
+arguments.
+<P>
+<DT><B>--list-servers</B><I>[=SERVERS]</I>
+
+<DD>
+Display the status of the requested
+<I>SERVERS</I>,
+
+where
+<I>SERVERS</I>
+
+is a comma-separated
+list of server attributes. The list of attributes is combined to filter the
+list of servers displayed. Supported attributes are:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>all</B>
+
+<DD>
+specifies all known servers (trusted SSL peers, trusted module signers, online
+servers).
+<DT><B>specified</B>
+
+<DD>
+specifies servers specified using
+<I>--use-server</I>.
+
+<DT><B>online</B>
+
+<DD>
+filters the output by retaining information about servers which are currently
+online.
+<DT><B>trusted</B>
+
+<DD>
+filters the output by retaining information about servers which are trusted as
+SSL peers.
+<DT><B>signer</B>
+
+<DD>
+filters the output by retaining information about servers which are trusted as
+module signers (see
+<I>--privilege</I>).
+
+<DT><B>compatible</B>
+
+<DD>
+filters the output by retaining information about servers which are compatible
+with the current kernel release and architecture.
+</DL>
+</DL>
+
+<DT><DD>
+If no argument is provided, then the default is
+<B>specified</B>.
+
+If no servers were specified using
+<I>--use-server</I>,
+
+then the default servers for
+<I>--use-server</I>
+
+are listed.
+<P>
+Note that
+<I>--list-servers</I>
+
+uses the
+<I>avahi-daemon</I>
+
+service to detect online servers. If this service is not available, then
+<I>--list-servers</I>
+
+will fail to detect any
+<I>online</I>
+
+servers. In order for
+<I>--list-servers</I>
+
+to detect servers listening on IPv6 addresses, the
+<I>avahi-daemon</I>
+
+configuration file
+<I>/etc/avahi/avahi-daemon.conf</I>
+
+must contain an active "use-ipv6=yes" line. The service must be restarted after adding this line
+in order for IPv6 to be enabled.
+<P>
+<DT><B>--trust-servers</B><I>[=TRUST_SPEC]</I>
+
+<DD>
+Grant or revoke trust in compile-servers, specified using
+<I>--use-server</I>
+
+as specified by TRUST_SPEC,
+where TRUST_SPEC is a comma-separated list specifying the trust which is to
+be granted or revoked. Supported elements are:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>ssl</B>
+
+<DD>
+trust the specified servers as SSL peers.
+<DT><B>signer</B>
+
+<DD>
+trust the specified servers as module signers (see
+<I>--privilege</I>).
+
+Only root can specify
+<B>signer.</B>
+
+<DT><B>all-users</B>
+
+<DD>
+grant trust as an ssl peer for all users on the local host. The default is
+to grant trust as an ssl peer for the current user only. Trust as a module
+signer is always granted for all users. Only root can specify
+<B>all-users</B>.
+
+<DT><B>revoke</B>
+
+<DD>
+revoke the specified trust. The default is to grant it.
+<DT><B>no-prompt</B>
+
+<DD>
+do not prompt the user for confirmation before carrying out the requested
+action. The default is to prompt the user for confirmation.
+</DL>
+</DL>
+
+<DT><DD>
+If no argument is provided, then the default is
+<B>ssl</B>.
+
+If no servers were specified using
+<I>--use-server</I>,
+
+then no trust will be granted or revoked.
+<DT><DD>
+Unless <B>no-prompt</B> has been specified,
+the user will be prompted to confirm the trust to be granted or revoked before
+the operation is performed.
+<P>
+<DT><B>--dump-probe-types</B>
+
+<DD>
+Dumps a list of supported probe types and exits. If
+<I>--privilege=stapusr</I>
+
+is also specified, the list will be limited to probe types available to unprivileged users.
+<P>
+<DT><B>--dump-probe-aliases</B>
+
+<DD>
+Dumps a list of all probe aliases found in library files and exits.
+<P>
+<DT><B>--dump-functions</B>
+
+<DD>
+Dumps a list of all functions found in library files and exits. Also includes
+their parameters and types. A function of type 'unknown' indicates a function
+that does not return a value. Note that not all function/parameter types may be
+resolved (these are also shown by 'unknown'). This features is very
+memory-intensive and thus may not work properly with <I>--use-server</I> if the
+target server imposes an rlimit on process memory (i.e. through the
+<I>~stap-server/.systemtap/rc</I> configuration file, see <I><A HREF="stap-server.8.html">stap-server</A></I>(8)).
+<P>
+<DT><B>--remote</B><I> URL</I>
+
+<DD>
+Set the execution target to the given host. This option may be
+repeated to target multiple execution targets. Passes 1-4 are
+completed locally as normal to build the script, and then pass 5 will
+copy the module to the target and run it. Acceptable URL forms include:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>[USER@]HOSTNAME</B>, <B><A HREF="ssh://[USER@]HOSTNAME">ssh://[USER@]HOSTNAME</A></B><DD>
+This mode uses ssh, optionally using a username not matching your own. If a
+custom ssh_config file is in use, add <B>SendEnv LANG</B> to retain
+internationalization functionality.
+<DT><B>libvirt://DOMAIN</B>, <B>libvirt://DOMAIN/LIBVIRT_URI</B><DD>
+This mode uses <I>stapvirt</I> to execute the script on a domain managed by
+libvirt. Optionally, LIBVIRT_URI may be specified to connect to a specific
+driver and/or a remote host. For example, to connect to the local privileged
+QEMU driver, use:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+--remote libvirt://MyDomain/<A HREF="qemu:///system">qemu:///system</A>
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+See the page at
+
+<<A HREF="http://libvirt.org/uri.html">http://libvirt.org/uri.html</A>>
+
+for supported URIs. Also see <I><A HREF="stapvirt.1.html">stapvirt</A></I>(1) for more information on how to
+prepare the domain for stap probing.
+<DT><B>unix:PATH</B><DD>
+This mode connects to a UNIX socket. This can be used with a QEMU virtio-serial
+port for executing scripts inside a running virtual machine.
+<DT><B>direct://</B><DD>
+Special loopback mode to run on the local host.
+</DL>
+</DL>
+
+<DT><DD>
+<P>
+<DT><B>--remote-prefix</B>
+
+<DD>
+Prefix each line of remote output with "N: ", where N is the index of the remote
+execution target from which the given line originated.
+<P>
+<DT><B>--download-debuginfo</B><I>[=OPTION]</I>
+
+<DD>
+Enable, disable or set a timeout for the automatic debuginfo downloading feature
+offered by abrt as specified by OPTION, where OPTION is one of the following:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>yes</B>
+
+<DD>
+enable automatic downloading of debuginfo with no timeout. This is the same
+as not providing an OPTION value to
+<I>--download-debuginfo</I>
+
+<DT><B>no</B>
+
+<DD>
+explicitly disable automatic downloading of debuginfo. This is the same as
+not using the option at all.
+<DT><B>ask</B>
+
+<DD>
+show abrt output, and ask before continuing download. No timeout will be set.
+<DT><B><timeout></B>
+
+<DD>
+specify a timeout as a positive number to stop the download if it is taking
+too long.
+</DL>
+</DL>
+
+<DT><DD>
+<P>
+<DT><B>--rlimit-as</B><I>=NUM</I>
+
+<DD>
+Specify the maximum size of the process's virtual memory (address space),
+in bytes. If nothing is specified, no limits are imposed.
+<P>
+<DT><B>--rlimit-cpu</B><I>=NUM</I>
+
+<DD>
+Specify the CPU time limit, in seconds. If nothing is specified, no limits are
+imposed.
+<P>
+<DT><B>--rlimit-nproc</B><I>=NUM</I>
+
+<DD>
+Specify the maximum number of processes that can be created. If nothing is
+specified, no limits are imposed.
+<P>
+<DT><B>--rlimit-stack</B><I>=NUM</I>
+
+<DD>
+Specify the maximum size of the process stack, in bytes. If nothing is specified,
+no limits are imposed.
+<P>
+<DT><B>--rlimit-fsize</B><I>=NUM</I>
+
+<DD>
+Specify the maximum size of files that the process may create, in bytes. If nothing is specified, no limits are
+imposed.
+<P>
+<DT><B>--sysroot</B><I>=DIR</I>
+
+<DD>
+Specify sysroot directory where target files (executables, libraries, etc.)
+are located. With <I>-r RELEASE</I>, the sysroot will be searched for the
+appropriate kernel build directory. With <I>-r /DIR</I>, however, the sysroot
+will not be used to find the kernel build.
+<P>
+<DT><B>--sysenv</B><I>=VAR=VALUE</I>
+
+<DD>
+Provide an alternate value for an environment variable where the value on a
+remote system differs. Path variables (e.g. PATH, LD_LIBRARY_PATH) are assumed
+to be relative to the directory provided by <I>--sysroot</I>, if provided.
+<P>
+<DT><B>--suppress-time-limits</B>
+
+<DD>
+Disable -DSTP_OVERLOAD related options as well as -DMAXACTION and -DMAXTRYLOCK.
+This option requires guru mode.
+<P>
+<DT><B>--runtime</B><I>=MODE</I>
+
+<DD>
+Set the pass-5 runtime mode. Valid options are <I>kernel</I> (default)
+and <I>dyninst</I>. See
+<B>ALTERNATE RUNTIMES</B>
+
+below for more information.
+<P>
+<DT><B>--dyninst</B>
+
+<DD>
+Shorthand for <I>--runtime=dyninst</I>.
+<P>
+<DT><B>--save-uprobes</B>
+
+<DD>
+On machines that require SystemTap to build its own uprobes module (kernels
+prior to version 3.5), this option instructs SystemTap to also save a copy of
+the module in the current directory (creating a new "uprobes" directory first).
+<P>
+</DL>
+<A NAME="lbAF"> </A>
+<H2>ARGUMENTS</H2>
+
+<P>
+Any additional arguments on the command line are passed to the script
+parser for substitution. See below.
+<P>
+<A NAME="lbAG"> </A>
+<H2>SCRIPT LANGUAGE</H2>
+
+<P>
+The systemtap script language resembles
+<I>awk</I> and <I>C</I>.
+
+There are two main outermost constructs: probes and functions. Within
+these, statements and expressions use C-like operator syntax and
+precedence.
+<P>
+<A NAME="lbAH"> </A>
+<H3>GENERAL SYNTAX</H3>
+
+Whitespace is ignored. Three forms of comments are supported:
+<DL COMPACT><DT><DD>
+<BR>
+
+<B>#</B> ... shell style, to the end of line, except for $# and @#
+
+<BR>
+
+<B>//</B> ... C++ style, to the end of line
+
+<BR>
+
+<B>/*</B> ... C style ... <B>*/</B>
+
+</DL>
+
+Literals are either strings enclosed in double-quotes (passing through
+the usual C escape codes with backslashes, and with adjacent string
+literals glued together, also as in C), or integers (in decimal,
+hexadecimal, or octal, using the same notation as in C). All strings
+are limited in length to some reasonable value (a few hundred bytes).
+Integers are 64-bit signed quantities, although the parser also
+accepts (and wraps around) values above positive 2**63.
+<P>
+
+In addition, script arguments given at the end of the command line may
+be inserted. Use
+<B>$1 ... $<NN></B>
+
+for insertion unquoted,
+<B>@1 ... @<NN></B>
+
+for insertion as a string literal. The number of arguments may be accessed
+through
+<B>$#</B>
+
+(as an unquoted number) or through
+<B>@#</B>
+
+(as a quoted number). These may be used at any place a token may begin,
+including within the preprocessing stage. Reference to an argument
+number beyond what was actually given is an error.
+<P>
+<A NAME="lbAI"> </A>
+<H3>PREPROCESSING</H3>
+
+A simple conditional preprocessing stage is run as a part of parsing.
+The general form is similar to the
+cond<B> ? </B>exp1<B> : </B>exp2
+
+ternary operator:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>%(</B> CONDITION <B>%?</B> TRUE-TOKENS <B>%)</B>
+<B>%(</B> CONDITION <B>%?</B> TRUE-TOKENS <B>%:</B> FALSE-TOKENS <B>%)</B>
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+The CONDITION is either an expression whose format is determined by its
+first keyword, or a string literals comparison or a numeric literals
+comparison. It can be also composed of many alternatives and conjunctions
+of CONDITIONs (meant as in previous sentence) using || and && respectively.
+However, parentheses are not supported yet, so remembering that conjunction
+takes precedence over alternative is important.
+<P>
+
+If the first part is the identifier
+<B>kernel_vr</B> or <B>kernel_v</B>
+
+to refer to the kernel version number, with ("2.6.13-1.322FC3smp") or
+without ("2.6.13") the release code suffix, then
+the second part is one of the six standard numeric comparison operators
+<B><</B>, <B><=</B>, <B>==</B>, <B>!=</B>, <B>></B>, and <B>>=</B>,
+
+and the third part is a string literal that contains an RPM-style
+version-release value. The condition is deemed satisfied if the
+version of the target kernel (as optionally overridden by the
+<B>-r</B>
+
+option) compares to the given version string. The comparison is
+performed by the glibc function
+<B>strverscmp</B>.
+
+As a special case, if the operator is for simple equality
+(<B>==</B>),
+
+or inequality
+(<B>!=</B>),
+
+and the third part contains any wildcard characters
+(<B>*</B> or <B>?</B> or <B>[</B>),
+
+then the expression is treated as a wildcard (mis)match as evaluated
+by
+<B>fnmatch</B>.
+
+<P>
+
+If, on the other hand, the first part is the identifier
+<B>arch</B>
+
+to refer to the processor architecture (as named by the kernel
+build system ARCH/SUBARCH), then the second
+part is one of the two string comparison operators
+<B>==</B> or <B>!=</B>,
+
+and the third part is a string literal for matching it. This
+comparison is a wildcard (mis)match.
+<P>
+
+Similarly, if the first part is an identifier like
+<B>CONFIG_something</B>
+
+to refer to a kernel configuration option, then the second part is
+<B>==</B> or <B>!=</B>,
+
+and the third part is a string literal for matching the value
+(commonly "y" or "m"). Nonexistent or unset kernel configuration
+options are represented by the empty string. This comparison is also
+a wildcard (mis)match.
+<P>
+
+If the first part is the identifier
+<B>systemtap_v</B>,
+
+the test refers to the systemtap compatibility version, which may be
+overridden for old scripts with the
+<B>--compatible</B>
+
+flag. The comparison operator is as is for
+<B>kernel_v</B>
+
+and the right operand is a version string. See also the DEPRECATION
+section below.
+<P>
+
+If the first part is the identifier
+<B>systemtap_privilege</B>,
+
+the test refers to the privilege level that the systemtap script is
+compiled with. Here the second part is
+<B>==</B> or <B>!=</B>,
+
+and the third part is a string literal, either "stapusr" or "stapsys"
+or "stapdev".
+<P>
+
+If the first part is the identifier
+<B>guru_mode</B>,
+
+the test refers to if the systemtap script is
+compiled with guru_mode. Here the second part is
+<B>==</B> or <B>!=</B>,
+
+and the third part is a number, either 1 or 0.
+<P>
+
+If the first part is the identifier
+<B>runtime</B>,
+
+the test refers to the systemtap runtime mode. See
+<B>ALTERNATE RUNTIMES</B>
+
+below for more information on runtimes.
+The second
+part is one of the two string comparison operators
+<B>==</B> or <B>!=</B>,
+
+and the third part is a string literal for matching it. This
+comparison is a wildcard (mis)match.
+<P>
+
+Otherwise, the CONDITION is expected to be a comparison between two string
+literals or two numeric literals. In this case, the arguments are the only
+variables usable.
+<P>
+
+The TRUE-TOKENS and FALSE-TOKENS are zero or more general parser
+tokens (possibly including nested preprocessor conditionals), and are
+passed into the input stream if the condition is true or false. For
+example, the following code induces a parse error unless the target
+kernel version is newer than 2.6.5:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+%( kernel_v <= "2.6.5" %? **ERROR** %) # invalid token sequence
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+The following code might adapt to hypothetical kernel version drift:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+probe kernel.function (
+ %( kernel_v <= "2.6.12" %? "__mm_do_fault" %:
+ %( kernel_vr == "2.6.13*smp" %? "do_page_fault" %:
+ UNSUPPORTED %) %)
+) { /* ... */ }
+
+%( arch == "ia64" %?
+ probe syscall.vliw = kernel.function("vliw_widget") {}
+%)
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<A NAME="lbAJ"> </A>
+<H3>PREPROCESSOR MACROS</H3>
+
+The preprocessor also supports a simple macro facility, run as a
+separate pass before conditional preprocessing.
+<P>
+
+Macros are defined using the following construct:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+@define NAME %( BODY %)
+@define NAME(PARAM_1, PARAM_2, ...) %( BODY %)
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+Macros, and parameters inside a macro body, are both invoked by
+prefixing the macro name with an @ symbol:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+@define foo %( x %)
+@define add(a,b) %( ((@a)+(@b)) %)
+
+ @foo = @add(2,2)
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+
+Macro expansion is currently performed in a separate pass before
+conditional compilation. Therefore, both TRUE- and FALSE-tokens in
+conditional expressions will be macroexpanded regardless of how the
+condition is evaluated. This can sometimes lead to errors:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+// The following results in a conflict:
+%( CONFIG_UTRACE == "y" %?
+ @define foo %( process.syscall %)
+%:
+ @define foo %( **ERROR** %)
+%)
+
+// The following works properly as expected:
+@define foo %(
+ %( CONFIG_UTRACE == "y" %? process.syscall %: **ERROR** %)
+%)
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+The first example is incorrect because both @defines are evaluated in
+a pass prior to the conditional being evaluated.
+<P>
+Normally, a macro definition is local to the file it occurs in. Thus,
+defining a macro in a tapset does not make it available to the user of
+the tapset. Publically available library macros can be defined by
+including .stpm files on the tapset search path. These files may only
+contain @define constructs, which become visible across all tapsets
+and user scripts.
+<P>
+<A NAME="lbAK"> </A>
+<H3>VARIABLES</H3>
+
+Identifiers for variables and functions are an alphanumeric sequence,
+and may include <B>_</B> and <B>$</B> characters. They may not start with a
+plain digit, as in C. Each variable is by default local to the probe
+or function statement block within which it is mentioned, and therefore
+its scope and lifetime is limited to a particular probe or function
+invocation.
+<P>
+
+Scalar variables are implicitly typed as either string or integer.
+Associative arrays also have a string or integer value, and a
+tuple of strings and/or integers serving as a key. Here are a
+few basic expressions.
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+var1 = 5
+var2 = "bar"
+array1 [pid()] = "name" # single numeric key
+array2 ["foo",4,i++] += 5 # vector of string/num/num keys
+if (["hello",5,4] in array2) println ("yes") # membership test
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+
+The translator performs
+<I>type inference</I>
+
+on all identifiers, including array indexes and function parameters.
+Inconsistent type-related use of identifiers signals an error.
+<P>
+
+Variables may be declared global, so that they are shared amongst all
+probes and live as long as the entire systemtap session. There is one
+namespace for all global variables, regardless of which script file
+they are found within. Concurrent access to global variables is
+automatically protected with locks, see the
+<B>SAFETY AND SECURITY</B>
+
+section for more details. A global declaration may be written at the
+outermost level anywhere, not within a block of code. Global
+variables which are written but never read will be displayed
+automatically at session shutdown. The translator will
+infer for each its value type, and if it is used as an array, its key
+types. Optionally, scalar globals may be initialized with a string
+or number literal. The following declaration marks variables as global.
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>global</B> var1<B>,</B> var2<B>,</B> var3=4
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+
+Global variables can also be set as module options. One can do this by either
+using the -G option, or the module must first be compiled using stap -p4.
+Global variables can then be set on the command line when calling staprun on
+the module generated by stap -p4. See
+<I><A HREF="staprun.8.html">staprun</A></I>(8)
+
+for more information.
+<P>
+
+Arrays are limited in size by the MAXMAPENTRIES variable -- see the
+<B>SAFETY AND SECURITY</B>
+
+section for details. Optionally, global arrays may be declared with a
+maximum size in brackets, overriding MAXMAPENTRIES for that array only.
+Note that this doesn't indicate the type of keys for the array, just the
+size.
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>global</B> tiny_array[10]<B>,</B> normal_array<B>,</B> big_array[50000]
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+
+Arrays may be configured for wrapping using the '%' suffix. This
+causes older elements to be overwritten if more elements are inserted
+than the array can hold. This works for both associative and statistics
+typed arrays.
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>global</B> wrapped_array1%[10],<B> wrapped_array2%</B>
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<P>
+
+Many types of probe points provide context variables, which are
+run-time values, safely extracted from the kernel or userspace program
+being probed. These are prefixed with the <B>$</B> character. The
+CONTEXT VARIABLES section in
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+lists what is available for each type of probe point. These context
+variables become normal string or numeric scalars once they are stored
+in normal script variables. See the TYPECASTING section below on how
+to to turn them back into typed pointers for further processing as
+context variables.
+<P>
+<A NAME="lbAL"> </A>
+<H3>STATEMENTS</H3>
+
+Statements enable procedural control flow. They may occur within
+functions and probe handlers. The total number of statements executed
+in response to any single probe event is limited to some number
+defined by a macro in the translated C code, and is in the
+neighbourhood of 1000.
+<DL COMPACT>
+<DT>EXP<DD>
+Execute the string- or integer-valued expression and throw away
+the value.
+<DT><B>{</B> STMT1 STMT2 ... <B>}</B>
+
+<DD>
+Execute each statement in sequence in this block. Note that
+separators or terminators are generally not necessary between statements.
+<DT><B>;</B>
+
+<DD>
+Null statement, do nothing. It is useful as an optional separator between
+statements to improve syntax-error detection and to handle certain
+grammar ambiguities.
+<DT><B>if</B> (EXP) STMT1 [ <B>else</B> STMT2 ]
+
+<DD>
+Compare integer-valued EXP to zero. Execute the first (non-zero)
+or second STMT (zero).
+<DT><B>while</B> (EXP) STMT
+
+<DD>
+While integer-valued EXP evaluates to non-zero, execute STMT.
+<DT><B>for</B> (EXP1; EXP2; EXP3) STMT
+
+<DD>
+Execute EXP1 as initialization. While EXP2 is non-zero, execute
+STMT, then the iteration expression EXP3.
+<DT><B>foreach</B> (VAR <B>in</B> ARRAY [ limit<B> EXP ]) STMT</B>
+
+<DD>
+Loop over each element of the named global array, assigning current
+key to VAR. The array may not be modified within the statement.
+By adding a single
+<B>+</B> or <B>-</B>
+
+operator after the VAR or the ARRAY identifier, the iteration will
+proceed in a sorted order, by ascending or descending index or value.
+If the array contains statistics aggregates, adding the desired
+<B>@operator</B>
+
+between the ARRAY identifier and the
+<B>+</B> or <B>-</B>
+
+will specify the sorting aggregate function. See the STATISTICS
+section below for the ones available. Default is
+<B>@count</B>.
+
+Using the optional
+<B>limit</B>
+
+keyword limits the number of loop iterations to EXP times. EXP is
+evaluated once at the beginning of the loop.
+<DT><B>foreach</B> ([VAR1, VAR2, ...] <B>in</B> ARRAY [ limit<B> EXP ]) STMT</B>
+
+<DD>
+Same as above, used when the array is indexed with a tuple of keys.
+A sorting suffix may be used on at most one VAR or ARRAY identifier.
+<DT><B>foreach</B> ([VAR1, VAR2, ...] <B>in</B> ARRAY [INDEX1, INDEX2, ...] [ limit<B> EXP ]) STMT</B>
+
+<DD>
+Same as above, where iterations are limited to elements in the array where
+the keys match the index values specified. The symbol * can be used to specify
+an index and will be treated as a wildcard.
+<DT><B>foreach</B> (VALUE = VAR <B>in</B> ARRAY [ limit<B> EXP ]) STMT</B>
+
+<DD>
+This variant of foreach saves current value into VALUE on each
+iteration, so it is the same as ARRAY[VAR]. This also works with a
+tuple of keys. Sorting suffixes on VALUE have the same effect as on ARRAY.
+<DT><B>foreach</B> (VALUE = VAR <B>in</B> ARRAY [INDEX1, INDEX2, ...] [ limit<B> EXP ]) STMT</B>
+
+<DD>
+Same as above, where iterations are limited to elements in the array where the
+keys match the index values specified. The symbol * can be used to specify
+an index and will be treated as a wildcard.
+<DT><B>break</B>, <B>continue</B>
+
+<DD>
+Exit or iterate the innermost nesting loop
+(<B>while</B> or <B>for</B> or <B>foreach</B>)
+
+statement.
+<DT><B>return</B> EXP
+
+<DD>
+Return EXP value from enclosing function. If the function's value is
+not taken anywhere, then a return statement is not needed, and the
+function will have a special "unknown" type with no return value.
+<DT><B>next</B>
+
+<DD>
+Return now from enclosing probe handler. This is especially useful in
+probe aliases that apply event filtering predicates.
+<DT><B>try</B> { STMT1 } <B>catch</B> { STMT2 }
+
+<DD>
+Run the statements in the first block. Upon any run-time errors, abort
+STMT1 and start executing STMT2. Any errors in STMT2 will propagate to
+outer try/catch blocks, if any.
+<DT><B>try</B> { STMT1 } <B>catch</B>(VAR) { STMT2 }
+
+<DD>
+Same as above, plus assign the error message to the string scalar variable VAR.
+<DT><B>delete</B> ARRAY[INDEX1, INDEX2, ...]
+
+<DD>
+Remove from ARRAY the element specified by the index tuple.
+If the index tuple contains a * in place of an index, the * is treated as a
+wildcard and all elements with keys that match the index tuple will be removed
+from ARRAY.
+The value will no
+longer be available, and subsequent iterations will not report the element.
+It is not an error to delete an element that does not exist.
+<DT><B>delete</B> ARRAY
+
+<DD>
+Remove all elements from ARRAY.
+<DT><B>delete</B> SCALAR
+
+<DD>
+Removes the value of SCALAR. Integers and strings are cleared to 0 and ""
+respectively, while statistics are reset to the initial empty state.
+<P>
+</DL>
+<A NAME="lbAM"> </A>
+<H3>EXPRESSIONS</H3>
+
+Systemtap supports a number of operators that have the same general syntax,
+semantics, and precedence as in C and awk. Arithmetic is performed as per
+typical C rules for signed integers. Division by zero or overflow is
+detected and results in an error.
+<DL COMPACT>
+<DT>binary numeric operators<DD>
+<B>* / % + - >> << & ^ | && ||</B>
+
+<DT>binary string operators<DD>
+<B>.</B>
+
+(string concatenation)
+<DT>numeric assignment operators<DD>
+<B>= *= /= %= += -= >>= <<= &= ^= |=</B>
+
+<DT>string assignment operators<DD>
+<B>= .=</B>
+
+<DT>unary numeric operators<DD>
+<B>+ - ! ~ ++ --</B>
+
+<DT>binary numeric, string comparison or regex matching operators<DD>
+<B>< > <= >= == != =~ !~</B>
+
+<DT>ternary operator<DD>
+cond<B> ? </B>exp1<B> : </B>exp2
+
+<DT>grouping operator<DD>
+<B>(</B> exp <B>)</B>
+
+<DT>function call<DD>
+fn <B>(</B>[ arg1, arg2, ... ]<B>)</B>
+
+<DT>array membership check<DD>
+exp<B> in </B>array
+
+<BR>
+
+<B>[</B>exp1<B>, </B>exp2<B>, </B>...<B>] in </B>array
+
+<BR>
+
+<B>[</B>*<B>, </B>*<B>, ... ]</B>in<B> array</B>
+
+<P>
+</DL>
+<A NAME="lbAN"> </A>
+<H3>REGULAR EXPRESSION MATCHING</H3>
+
+The scripting language supports regular expression matching.
+The basic syntax is as follows:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>exp</B> =~ <B>regex</B>
+<B>exp</B> !~ <B>regex</B>
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+(The first operand must be an expression evaluating to a string; the
+second operand must be a string literal containing a syntactically
+valid regular expression.)
+<P>
+
+The regular expression syntax supports most of the features of POSIX
+Extended Regular Expressions, except for subexpression reuse ("\1")
+functionality. The ability to capture and extract the contents of the
+matched string and subexpressions has not yet been implemented.
+<P>
+<A NAME="lbAO"> </A>
+<H3>PROBES</H3>
+
+The main construct in the scripting language identifies probes.
+Probes associate abstract events with a statement block ("probe
+handler") that is to be executed when any of those events occur. The
+general syntax is as follows:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>probe</B> PROBEPOINT [<B>,</B> PROBEPOINT] <B>{</B> [STMT ...] <B>}</B>
+<B>probe</B> PROBEPOINT [<B>,</B> PROBEPOINT] <B>if (</B>CONDITION<B>) { </B>[STMT ...]<B> }</B>
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+
+Events are specified in a special syntax called "probe points". There
+are several varieties of probe points defined by the translator, and
+tapset scripts may define further ones using aliases. Probe points
+may be wildcarded, grouped, or listed in preference sequences, or
+declared optional. More details on probe point syntax and semantics
+are listed on the
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+manual page.
+<P>
+
+The probe handler is interpreted relative to the context of each
+event. For events associated with kernel code, this context may
+include
+<I>variables</I>
+
+defined in the
+<I>source code</I>
+
+at that spot. These "context variables" are presented to the script
+as variables whose names are prefixed with "$". They may be accessed
+only if the kernel's compiler preserved them despite optimization.
+This is the same constraint that a debugger user faces when working
+with optimized code. In addition, the objects must exist in paged-in
+memory at the moment of the systemtap probe handler's execution,
+because systemtap must not cause (suppresses) any additional paging.
+Some probe types have very little context.
+See the
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+man pages to see the kinds of context variables available at each kind
+of probe point.
+<P>
+
+Probes may be decorated with an
+<I>arming condition</I>,
+
+consisting of a simple boolean expression on read-only global script
+variables. While disarmed (condition evaluates to false), some probe
+types reduce or eliminate their run-time overheads. When an arming
+condition evaluates to true, probes will be
+<I>soon</I>
+
+re-armed, and their probe handlers will start getting called as the
+events fire. (Some events may be lost during the arming interval. If
+this is unacceptable, do not use arming conditions for those probes.)
+<P>
+
+New probe points may be defined using "aliases". Probe point aliases
+look similar to probe definitions, but instead of activating a probe
+at the given point, it just defines a new probe point name as an alias
+to an existing one. There are two types of alias, i.e. the prologue
+style and the epilogue style which are identified by "=" and "+="
+respectively.
+<P>
+
+For prologue style alias, the statement block that follows an alias
+definition is implicitly added as a prologue to any probe that refers
+to the alias. While for the epilogue style alias, the statement block
+that follows an alias definition is implicitly added as an epilogue to
+any probe that refers to the alias. For example:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+probe syscall.read = kernel.function("sys_read") {
+ fildes = $fd
+ if (execname() == "init") next # skip rest of probe
+}
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+defines a new probe point
+
+<I>syscall.read</I>,
+
+
+which expands to
+
+<I>kernel.function(sys_read)</I>,
+
+
+with the given statement as a prologue, which is useful to predefine
+some variables for the alias user and/or to skip probe processing
+entirely based on some conditions. And
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+probe syscall.read += kernel.function("sys_read") {
+ if (tracethis) println ($fd)
+}
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+defines a new probe point with the given statement as an epilogue, which
+is useful to take actions based upon variables set or left over by the
+the alias user. Please note that in each case, the statements in the
+alias handler block are treated ordinarily, so that variables assigned
+there constitute mere initialization, not a macro substitution.
+<P>
+An alias is used just like a built-in probe type.
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+probe syscall.read {
+ printf("reading fd=%d, fildes)
+ if (fildes > 10) tracethis = 1
+}
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<A NAME="lbAP"> </A>
+<H3>FUNCTIONS</H3>
+
+Systemtap scripts may define subroutines to factor out common work.
+Functions take any number of scalar (integer or string) arguments, and
+must return a single scalar (integer or string). An example function
+declaration looks like this:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+function thisfn (arg1, arg2) {
+ return arg1 + arg2
+}
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+Note the general absence of type declarations, which are instead
+inferred by the translator. However, if desired, a function
+definition may include explicit type declarations for its return value
+and/or its arguments. This is especially helpful for embedded-C
+functions. In the following example, the type inference engine need
+only infer type type of arg2 (a string).
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+function thatfn:string (arg1:long, arg2) {
+ return sprint(arg1) . arg2
+}
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+Functions may call others or themselves
+recursively, up to a fixed nesting limit. This limit is defined by
+a macro in the translated C code and is in the neighbourhood of 10.
+<P>
+<A NAME="lbAQ"> </A>
+<H3>PRINTING</H3>
+
+There are a set of function names that are specially treated by the
+translator. They format values for printing to the standard systemtap
+output stream in a more convenient way. The
+<I>sprint*</I>
+
+variants return the formatted string instead of printing it.
+<DL COMPACT>
+<DT><B>print</B>, <B>sprint</B>
+
+<DD>
+Print one or more values of any type, concatenated directly together.
+<DT><B>println</B>, <B>sprintln</B>
+
+<DD>
+Print values like
+<I>print</I> and <I>sprint</I>,
+
+but also append a newline.
+<DT><B>printd</B>, <B>sprintd</B>
+
+<DD>
+Take a string delimiter and two or more values of any type, and print the
+values with the delimiter interposed. The delimiter must be a literal
+string constant.
+<DT><B>printdln</B>, <B>sprintdln</B>
+
+<DD>
+Print values with a delimiter like
+<I>printd</I> and <I>sprintd</I>,
+
+but also append a newline.
+<DT><B>printf</B>, <B>sprintf</B>
+
+<DD>
+Take a formatting string and a number of values of corresponding types,
+and print them all. The format must be a literal string constant.
+</DL>
+<P>
+
+The
+<I>printf</I>
+
+formatting directives similar to those of C, except that they are
+fully type-checked by the translator:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT>%b<DD>
+Writes a binary blob of the value given, instead of ASCII text. The width specifier determines the number of bytes to write; valid specifiers are %b %1b %2b %4b %8b. Default (%b) is 8 bytes.
+<DT>%c<DD>
+Character.
+<DT>%d,%i<DD>
+Signed decimal.
+<DT>%m<DD>
+Safely reads kernel memory at the given address, outputs its content. The optional precision specifier (not field width) determines the number of bytes to read - default is 1 byte. %10.4m prints 4 bytes of the memory in a 10-character-wide field.
+<DT>%M<DD>
+Same as %m, but outputs in hexadecimal. The minimal size of output is double the optional precision specifier - default is 1 byte (2 hex chars). %10.4M prints 4 bytes of the memory as 8 hexadecimal characters in a 10-character-wide field.
+<DT>%o<DD>
+Unsigned octal.
+<DT>%p<DD>
+Unsigned pointer address.
+<DT>%s<DD>
+String.
+<DT>%u<DD>
+Unsigned decimal.
+<DT>%x<DD>
+Unsigned hex value, in all lower-case.
+<DT>%X<DD>
+Unsigned hex value, in all upper-case.
+<DT>%%<DD>
+Writes a %.
+</DL>
+</DL>
+
+<P>
+
+The
+<I>#</I>
+
+flag selects the alternate forms. For octal, this prefixes a 0. For hex, this
+prefixes 0x or 0X, depending on case. For characters, this escapes
+non-printing values with either C-like escapes or raw octal.
+<P>
+
+Examples:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+a = "alice", b = "bob", p = 0x1234abcd, i = 123, j = -1, id[a] = 1234, id[b] = 4567
+print("hello")
+ Prints: hello
+println(b)
+ Prints: bob\n
+println(a . " is " . sprint(16))
+ Prints: alice is 16
+foreach (name in id) printdln("|", strlen(name), name, id[name])
+ Prints: 5|alice|1234\n3|bob|4567
+printf("%c is %s; %x or %X or %p; %d or %u\n",97,a,p,p,p,j,j)
+ Prints: a is alice; 1234abcd or 1234ABCD or 0x1234abcd; -1 or 18446744073709551615\n
+printf("2 bytes of kernel buffer at address %p: %2m", p, p)
+ Prints: 2 byte of kernel buffer at address 0x1234abcd: <binary data>
+printf("%4b", p)
+ Prints (these values as binary data): 0x1234abcd
+printf("%#o %#x %#X\n", 1, 2, 3)
+ Prints: 01 0x2 0X3
+printf("%#c %#c %#c\n", 0, 9, 42)
+ Prints: \000 \t *
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<A NAME="lbAR"> </A>
+<H3>STATISTICS</H3>
+
+It is often desirable to collect statistics in a way that avoids the
+penalties of repeatedly exclusive locking the global variables those
+numbers are being put into. Systemtap provides a solution using a
+special operator to accumulate values, and several pseudo-functions to
+extract the statistical aggregates.
+<P>
+
+The aggregation operator is
+<I><<<</I>,
+
+and resembles an assignment, or a C++ output-streaming operation.
+The left operand specifies a scalar or array-index lvalue, which must
+be declared global. The right operand is a numeric expression. The
+meaning is intuitive: add the given number to the pile of numbers to
+compute statistics of. (The specific list of statistics to gather
+is given separately, by the extraction functions.)
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+foo <<< 1
+stats[pid()] <<< memsize
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+
+The extraction functions are also special. For each appearance of a
+distinct extraction function operating on a given identifier, the
+translator arranges to compute a set of statistics that satisfy it.
+The statistics system is thereby "on-demand". Each execution of
+an extraction function causes the aggregation to be computed for
+that moment across all processors.
+<P>
+
+Here is the set of extractor functions. The first argument of each is
+the same style of lvalue used on the left hand side of the accumulate
+operation. The
+<I>@count(v)</I>, <I>@sum(v)</I>, <I>@min(v)</I>, <I>@max(v)</I>, <I>@avg(v)</I>
+
+extractor functions compute the number/total/minimum/maximum/average
+of all accumulated values. The resulting values are all simple
+integers. Arrays containing aggregates may be sorted and iterated.
+See the
+<B>foreach</B>
+
+construct above.
+<P>
+
+Histograms are also available, but are more complicated because they
+have a vector rather than scalar value.
+<I>@hist_linear(v,start,stop,interval)</I>
+
+represents a linear histogram from "start" to "stop" by increments
+of "interval". The interval must be positive. Similarly,
+<I>@hist_log(v)</I>
+
+represents a base-2 logarithmic histogram. Printing a histogram
+with the
+<I>print</I>
+
+family of functions renders a histogram object as a tabular
+"ASCII art" bar chart.
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+probe timer.profile {
+ x[1] <<< pid()
+ x[2] <<< uid()
+ y <<< tid()
+}
+global x // an array containing aggregates
+global y // a scalar
+probe end {
+ foreach ([i] in x @count+) {
+ printf ("x[%d]: avg %d = sum %d / count %d\n",
+ i, @avg(x[i]), @sum(x[i]), @count(x[i]))
+ println (@hist_log(x[i]))
+ }
+ println ("y:")
+ println (@hist_log(y))
+}
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<A NAME="lbAS"> </A>
+<H3>TYPECASTING</H3>
+
+Once a pointer (see the CONTEXT VARIABLES section of
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap))
+
+has been saved into a script integer variable, the translator loses the type
+information necessary to access members from that pointer. Using the
+<I>@cast()</I>
+
+operator tells the translator how to interpret the number as a typed pointer.
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+@cast(p, "type_name"[, "module"])->member
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+
+This will interpret
+<I>p</I>
+
+as a pointer to a struct/union named
+<I>type_name</I>
+
+and dereference the
+<I>member</I>
+
+value. Further
+<I>->subfield</I>
+
+expressions may be appended to dereference more levels.
+
+NOTE:
+the same dereferencing operator
+<I>-></I>
+
+is used to refer to both direct containment or pointer indirection.
+Systemtap automatically determines which. The optional
+<I>module</I>
+
+tells the translator where to look for information about that type.
+Multiple modules may be specified as a list with
+<I>:</I>
+
+separators. If the module is not specified, it will default either to
+the probe module for dwarf probes, or to "kernel" for functions and all
+other probes types.
+<P>
+
+The translator can create its own module with type information from a header
+surrounded by angle brackets, in case normal debuginfo is not available. For
+kernel headers, prefix it with "kernel" to use the appropriate build system.
+All other headers are build with default GCC parameters into a user module.
+Multiple headers may be specified in sequence to resolve a codependency.
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+@cast(tv, "timeval", "<<A HREF="file:///usr/include/sys/time.h">sys/time.h</A>>")->tv_sec
+@cast(task, "task_struct", "kernel<<A HREF="file:///usr/include/linux/sched.h">linux/sched.h</A>>")->tgid
+@cast(task, "task_struct",
+ "kernel<<A HREF="file:///usr/include/linux/sched.h">linux/sched.h</A>><<A HREF="file:///usr/include/linux/fs_struct.h">linux/fs_struct.h</A>>")->fs->umask
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+Values acquired by
+<B>@cast</B>
+
+may be pretty-printed by the
+<B>$</B> and <B>$$</B>
+
+suffix operators, the same way as described in the CONTEXT VARIABLES
+section of the
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+manual page.
+<P>
+<P>
+
+When in guru mode, the translator will also allow scripts to assign new
+values to members of typecasted pointers.
+<P>
+
+Typecasting is also useful in the case of
+<I>void*</I>
+
+members whose type may be determinable at runtime.
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+probe foo {
+ if ($var->type == 1) {
+ value = @cast($var->data, "type1")->bar
+ } else {
+ value = @cast($var->data, "type2")->baz
+ }
+ print(value)
+}
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<A NAME="lbAT"> </A>
+<H3>EMBEDDED C</H3>
+
+When in guru mode, the translator accepts embedded code in the
+top level of the script. Such code is enclosed between
+<I>%{</I>
+
+and
+<I>%}</I>
+
+markers, and is transcribed verbatim, without analysis, in some
+sequence, into the top level of the generated C code. At the
+outermost level, this may be useful to add
+<I>#include</I>
+
+instructions, and any auxiliary definitions for use by other embedded
+code.
+<P>
+
+Another place where embedded code is permitted is as a function body.
+In this case, the script language body is replaced entirely by a piece
+of C code enclosed again between
+<I>%{</I> and <I>%}</I>
+
+markers.
+This C code may do anything reasonable and safe. There are a number
+of undocumented but complex safety constraints on atomicity,
+concurrency, resource consumption, and run time limits, so this
+is an advanced technique.
+<P>
+
+The memory locations set aside for input and output values
+are made available to it using macros
+<I>STAP_ARG_*</I>
+
+and
+<I>STAP_RETVALUE</I>.
+
+Errors may be signalled with STAP_ERROR. The function may return
+early with STAP_RETURN. Here are some examples:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+function integer_ops (val) %{
+ STAP_RETVALUE = STAP_ARG_val + 1;
+ if (STAP_RETVALUE == 4)
+ STAP_ERROR("wrong guess: %d", (int) STAP_RETVALUE);
+ if (STAP_RETVALUE == 3)
+ STAP_RETURN(0);
+ STAP_RETVALUE ++;
+%}
+function string_ops (val) %{
+ strlcpy (STAP_RETVALUE, STAP_ARG_val, MAXSTRINGLEN);
+ strlcat (STAP_RETVALUE, "one", MAXSTRINGLEN);
+ if (strcmp (STAP_RETVALUE, "three-two-one"))
+ STAP_RETURN("parameter should be three-two-");
+%}
+function no_ops () %{
+ STAP_RETURN(); /* function inferred with no return value */
+%}
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+The function argument and return value types have to be inferred by
+the translator from the call sites in order for this to work. The
+user should examine C code generated for ordinary script-language
+functions in order to write compatible embedded-C ones.
+<P>
+
+The last place where embedded code is permitted is as an expression rvalue.
+In this case, the C code enclosed between
+<I>%{</I> and <I>%}</I>
+
+markers is interpreted as an ordinary expression value. It is assumed
+to be a normal 64-bit signed number, unless the marker
+<I>/* string */</I>
+
+is included, in which case it's treated as a string.
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+function add_one (val) {
+ return val + %{ 1 %}
+}
+function add_string_two (val) {
+ return val . %{ /* string */ "two" %}
+}
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+
+The embedded-C code may contain markers to assert optimization
+and safety properties.
+<DL COMPACT>
+<DT><I>/* pure */</I>
+
+<DD>
+means that the C code has no side effects and may be elided entirely if its
+value is not used by script code.
+<DT><I>/* unprivileged */</I>
+
+<DD>
+means that the C code is so safe that even unprivileged users are permitted
+to use it.
+<DT><I>/* myproc-unprivileged */</I>
+
+<DD>
+means that the C code is so safe that even unprivileged users are permitted
+to use it, provided that the target of the current probe is within the user's
+own process.
+<DT><I>/* guru */</I>
+
+<DD>
+means that the C code is so unsafe that a systemtap user must specify
+<I>-g</I>
+
+(guru mode) to use this.
+<DT><I>/* unmangled */</I>
+
+<DD>
+in an embedded-C function, means that the legacy (pre-1.8) argument
+access syntax should be made available inside the function. Hence, in
+addition to
+<I>STAP_ARG_foo</I>
+
+and
+<I>STAP_RETVALUE</I>
+
+one can use
+<I>THIS->foo</I>
+
+and
+<I>THIS->__retvalue</I>
+
+respectively inside the function. This is useful for quickly migrating code written for SystemTap version 1.7 and earlier.
+<DT><I>/* unmodified-fnargs */</I>
+
+<DD>
+in an embedded-C function, means that the function arguments are not modified
+inside the function body.
+<DT><I>/* string */</I>
+
+<DD>
+in embedded-C expressions only, means that the expression has
+<I>const char *</I>
+
+type and should be treated as a string value, instead of
+the default long numeric.
+<P>
+</DL>
+<A NAME="lbAU"> </A>
+<H3>BUILT-INS</H3>
+
+A set of builtin probe point aliases are provided
+by the scripts installed in the directory specified in the
+<I><A HREF="stappaths.7.html">stappaths</A></I>(7)
+
+manual page. The functions are described in the
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+manual page.
+<P>
+<A NAME="lbAV"> </A>
+<H2>PROCESSING</H2>
+
+The translator begins pass 1 by parsing the given input script,
+and all scripts (files named
+<I>*.stp</I>)
+
+found in a tapset directory. The directories listed
+with
+<B>-I</B>
+
+are processed in sequence, each processed in "guru mode". For each
+directory, a number of subdirectories are also searched. These
+subdirectories are derived from the selected kernel version (the
+<B>-R</B>
+
+option),
+in order to allow more kernel-version-specific scripts to override less
+specific ones. For example, for a kernel version
+<I>2.6.12-23.FC3</I>
+
+the following patterns would be searched, in sequence:
+<I>2.6.12-23.FC3/*.stp</I>,
+
+<I>2.6.12/*.stp</I>,
+
+<I>2.6/*.stp</I>,
+
+and finally
+<I>*.stp</I>.
+
+Stopping the translator after pass 1 causes it to print the parse trees.
+<P>
+<P>
+
+In pass 2, the translator analyzes the input script to resolve symbols
+and types. References to variables, functions, and probe aliases that
+are unresolved internally are satisfied by searching through the
+parsed tapset script files. If any tapset script file is selected
+because it defines an unresolved symbol, then the entirety of that
+file is added to the translator's resolution queue. This process
+iterates until all symbols are resolved and a subset of tapset script
+files is selected.
+<P>
+
+Next, all probe point descriptions are validated
+against the wide variety supported by the translator. Probe points that
+refer to code locations ("synchronous probe points") require the
+appropriate kernel debugging information to be installed. In the
+associated probe handlers, target-side variables (whose names begin
+with "$") are found and have their run-time locations decoded.
+<P>
+
+Next, all probes and functions are analyzed for optimization
+opportunities, in order to remove variables, expressions, and
+functions that have no useful value and no side-effect. Embedded-C
+functions are assumed to have side-effects unless they include the
+magic string
+<B>/* pure */</B>.
+
+Since this optimization can hide latent code errors such as type
+mismatches or invalid $context variables, it sometimes may be useful
+to disable the optimizations with the
+<B>-u</B>
+
+option.
+<P>
+
+Finally, all variable, function, parameter, array, and index types are
+inferred from context (literals and operators). Stopping the
+translator after pass 2 causes it to list all the probes, functions,
+and variables, along with all inferred types. Any inconsistent or
+unresolved types cause an error.
+<P>
+<P>
+
+In pass 3, the translator writes C code that represents the actions
+of all selected script files, and creates a
+<I>Makefile</I>
+
+to build that into a kernel object. These files are placed into a
+temporary directory. Stopping the translator at this point causes
+it to print the contents of the C file.
+<P>
+<P>
+
+In pass 4, the translator invokes the Linux kernel build system to
+create the actual kernel object file. This involves running
+<I>make</I>
+
+in the temporary directory, and requires a kernel module build
+system (headers, config and Makefiles) to be installed in the usual
+spot
+<I>/lib/modules/VERSION/build</I>.
+
+Stopping the translator after pass 4 is the last chance before
+running the kernel object. This may be useful if you want to
+archive the file.
+<P>
+<P>
+
+In pass 5, the translator invokes the systemtap auxiliary program
+<I>staprun</I>
+
+program for the given kernel object. This program arranges to load
+the module then communicates with it, copying trace data from the
+kernel into temporary files, until the user sends an interrupt signal.
+Any run-time error encountered by the probe handlers, such as running
+out of memory, division by zero, exceeding nesting or runtime limits,
+results in a soft error indication. Soft errors in excess of
+MAXERRORS block of all subsequent probes (except error-handling
+probes), and terminate the session. Finally,
+<I>staprun</I>
+
+unloads the module, and cleans up.
+<P>
+<A NAME="lbAW"> </A>
+<H3>ABNORMAL TERMINATION</H3>
+
+<P>
+One should avoid killing the stap process forcibly, for example with
+SIGKILL, because the stapio process (a child process of the stap
+process) and the loaded module may be left running on the system. If
+this happens, send SIGTERM or SIGINT to any remaining stapio
+processes, then use rmmod to unload the systemtap module.
+<P>
+<P>
+<A NAME="lbAX"> </A>
+<H2>EXAMPLES</H2>
+
+See the
+<I><A HREF="stapex.3stap.html">stapex</A></I>(3stap)
+
+manual page for a brief collection of samples, or a large set of
+installed samples under the systemtap documentation/testsuite
+directories. See
+<I><A HREF="stappaths.7stap.html">stappaths</A></I>(7stap)
+
+for the likely location of these on the system.
+<P>
+<A NAME="lbAY"> </A>
+<H2>CACHING</H2>
+
+The systemtap translator caches the pass 3 output (the generated C
+code) and the pass 4 output (the compiled kernel module) if pass 4
+completes successfully. This cached output is reused if the same
+script is translated again assuming the same conditions exist (same kernel
+version, same systemtap version, etc.). Cached files are stored in
+the
+<I>$SYSTEMTAP_DIR/cache</I>
+
+directory. The cache can be limited by having the file
+<I>cache_mb_limit</I>
+
+placed in the cache directory (shown above) containing only an ASCII
+integer representing how many MiB the cache should not exceed. In the
+absence of this file, a default will be created with the limit set to 256MiB.
+This is a 'soft' limit in that the cache will be cleaned after a new entry
+is added if the cache clean interval is exceeded, so the total cache size may
+temporarily exceed this limit. This interval can be specified by having the
+file
+<I>cache_clean_interval_s</I>
+
+placed in the cache directory (shown above) containing only an ASCII integer
+representing the interval in seconds. In the absence of this file, a default
+will be created with the interval set to 300 s.
+<P>
+<A NAME="lbAZ"> </A>
+<H2>SAFETY AND SECURITY</H2>
+
+Systemtap is an administrative tool. It exposes kernel internal data
+structures and potentially private user information.
+<P>
+To actually run the kernel objects it builds, a user must be one of
+the following:
+<DL COMPACT>
+<DT>•<DD>
+the root user;
+<DT>•<DD>
+a member of the
+<I>stapdev</I>
+
+and
+<I>stapusr</I>
+
+groups;
+<DT>•<DD>
+a member of the
+<I>stapsys</I>
+
+and
+<I>stapusr</I>
+
+groups; or
+<DT>•<DD>
+a member of the
+<I>stapusr</I>
+
+group.
+</DL>
+<P>
+
+The root user or a user who is a member of both the
+<I>stapdev</I>
+
+and
+<I>stapusr</I>
+
+groups can build and run any systemtap script.
+<P>
+
+A user who is a member of both the
+<I>stapsys</I>
+
+and
+<I>stapusr</I>
+
+groups can only use pre-built modules under the following conditions:
+<DL COMPACT>
+<DT>•<DD>
+The module has been signed by a trusted signer. Trusted signers are normally
+systemtap compile-servers which sign modules when the <I>--privilege</I> option is
+specified by the client. See the
+<I><A HREF="stap-server.8.html">stap-server</A></I>(8)
+
+manual page for more information.
+<DT>•<DD>
+The module was built using the <I>--privilege=stapsys</I> or the <I>--privilege=stapusr</I>
+options.
+</DL>
+<P>
+
+Members of only the
+<I>stapusr</I>
+
+group can only use pre-built modules under the following conditions:
+<DL COMPACT>
+<DT>•<DD>
+The module is located in
+the /lib/modules/VERSION/systemtap directory. This directory
+must be owned by root and not be world writable.
+</DL>
+<P>
+
+or
+<DL COMPACT>
+<DT>•<DD>
+The module has been signed by a trusted signer. Trusted signers are normally
+systemtap compile-servers which sign modules when the <I>--privilege</I> option is
+specified by the client. See the
+<I><A HREF="stap-server.8.html">stap-server</A></I>(8)
+
+manual page for more information.
+<DT>•<DD>
+The module was built using the FI--privilege=stapusr option.
+</DL>
+<P>
+
+The kernel modules generated by
+<I>stap</I>
+
+program are run by the
+<I>staprun</I>
+
+program. The latter is a part of the Systemtap package, dedicated to
+module loading and unloading (but only in the white zone), and
+kernel-to-user data transfer. Since
+<I>staprun</I>
+
+does not perform any additional security checks on the kernel objects
+it is given, it would be unwise for a system administrator to add
+untrusted users to the
+<I>stapdev</I>
+
+or
+<I>stapusr</I>
+
+groups.
+<P>
+
+If the current system has SecureBoot turned on in the UEFI firmware,
+all kernel modules must be signed. (Some kernels may allow disabling
+SecureBoot long after booting with a key sequence such as SysRq-X,
+making it unnecessary to sign modules.) The systemtap compile server
+can sign modules with a MOK (Machine Owner Key) that it has in common
+with a client system. See the following wiki page for more details:
+<P>
+
+<DL COMPACT><DT><DD>
+
+<B><A HREF="https://sourceware.org/systemtap/wiki/SecureBoot">https://sourceware.org/systemtap/wiki/SecureBoot</A></B>
+
+
+</DL>
+
+<P>
+
+The translator asserts certain safety constraints. It aims to ensure
+that no handler routine can run for very long, allocate memory,
+perform unsafe operations, or in unintentionally interfere with the
+kernel. Uses of script global variables are automatically read/write
+locked as appropriate, to protect against manipulation by concurrent probe
+handlers. (Deadlocks are detected with timeouts. Use the
+<B>-t</B>
+
+flag to receive reports of excessive lock contention.) Use of guru mode
+constructs such as embedded C can violate these constraints, leading
+to kernel crash or data corruption.
+<P>
+
+The resource use limits are set by macros in the generated C code.
+These may be overridden with the
+<B>-D</B>
+
+flag. A selection of these is as follows:
+<DL COMPACT>
+<DT>MAXNESTING<DD>
+Maximum number of nested function calls. Default determined by
+script analysis, with a bonus 10 slots added for recursive
+scripts.
+<DT>MAXSTRINGLEN<DD>
+Maximum length of strings, default 128.
+<DT>MAXTRYLOCK<DD>
+Maximum number of iterations to wait for locks on global variables
+before declaring possible deadlock and skipping the probe, default 1000.
+<DT>MAXACTION<DD>
+Maximum number of statements to execute during any single probe hit
+(with interrupts disabled),
+default 1000.
+Note that for straight-through probe handlers lacking loops or recursion,
+due to optimization, this parameter may be interpreted too conservatively.
+<DT>MAXACTION_INTERRUPTIBLE<DD>
+Maximum number of statements to execute during any single probe hit
+which is executed with interrupts enabled (such as begin/end probes),
+default (MAXACTION * 10).
+<DT>MAXBACKTRACE<DD>
+Maximum number of stack frames that will be be processed by the stap
+runtime unwinder as produced by the backtrace functions in the
+[u]context-unwind.stp tapsets, default 20.
+<DT>MAXMAPENTRIES<DD>
+Default maximum number of rows in any single global array, default 2048.
+Individual arrays may be declared with a larger or smaller limit instead:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+global big[10000],little[5]
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+or denoted with
+<I>%</I>
+
+to make them wrap-around automatically.
+<DT>MAXERRORS<DD>
+Maximum number of soft errors before an exit is triggered, default 0, which
+means that the first error will exit the script. Note that with the
+<B>--suppress-handler-errors</B>
+
+option, this limit is not enforced.
+<DT>MAXSKIPPED<DD>
+Maximum number of skipped probes before an exit is triggered, default 100.
+Running systemtap with -t (timing) mode gives more details about skipped
+probes. With the default -DINTERRUPTIBLE=1 setting, probes skipped due to
+reentrancy are not accumulated against this limit. Note that with the
+<B>--suppress-handler-errors</B>
+
+option, this limit is not enforced.
+<DT>MINSTACKSPACE<DD>
+Minimum number of free kernel stack bytes required in order to
+run a probe handler, default 1024. This number should be large enough
+for the probe handler's own needs, plus a safety margin.
+<DT>MAXUPROBES<DD>
+Maximum number of concurrently armed user-space probes (uprobes), default
+somewhat larger than the number of user-space probe points named in the script.
+This pool needs to be potentialy large because individual uprobe objects (about
+64 bytes each) are allocated for each process for each matching script-level probe.
+<DT>STP_MAXMEMORY<DD>
+Maximum amount of memory (in kilobytes) that the systemtap module
+should use, default unlimited. The memory size includes the size of
+the module itself, plus any additional allocations. This only tracks
+direct allocations by the systemtap runtime. This does not track
+indirect allocations (as done by kprobes/uprobes/etc. internals).
+<DT>STP_PROCFS_BUFSIZE<DD>
+Size of procfs probe read buffers (in bytes). Defaults to
+<I>MAXSTRINGLEN</I>.
+
+This value can be overridden on a per-procfs file basis using the
+procfs read probe
+<I>.maxsize(MAXSIZE)</I>
+
+parameter.
+</DL>
+<P>
+
+With scripts that contain probes on any interrupt path, it is possible that
+those interrupts may occur in the middle of another probe handler. The probe
+in the interrupt handler would be skipped in this case to avoid reentrance.
+To work around this issue, execute stap with the option
+<B>-DINTERRUPTIBLE=0</B>
+
+to mask interrupts throughout the probe handler. This does add some extra
+overhead to the probes, but it may prevent reentrance for common problem
+cases. However, probes in NMI handlers and in the callpath of the stap
+runtime may still be skipped due to reentrance.
+<P>
+<P>
+
+Multiple scripts can write data into a relay buffer concurrently. A host
+script provides an interface for accessing its relay buffer to guest scripts.
+Then, the output of the guests are merged into the output of the host.
+To run a script as a host, execute stap with
+<B>-DRELAYHOST[=name]</B>
+
+option. The
+<B>name</B>
+
+identifies your host script among several hosts.
+While running the host, execute stap with
+<B>-DRELAYGUEST[=name]</B>
+
+to add a guest script to the host.
+Note that you must unload guests before unloading a host. If there are some
+guests connected to the host, unloading the host will be failed.
+<P>
+<P>
+
+In case something goes wrong with
+<I>stap</I> or <I>staprun</I>
+
+after a probe has already started running, one may safely kill both
+user processes, and remove the active probe kernel module with
+<I>rmmod</I>.
+
+Any pending trace messages may be lost.
+<P>
+<P>
+
+In addition to the methods outlined above, the generated kernel module
+also uses overload processing to make sure that probes can't run for
+too long. If more than STP_OVERLOAD_THRESHOLD cycles (default
+500000000) have been spent in all the probes on a single cpu during
+the last STP_OVERLOAD_INTERVAL cycles (default 1000000000), the probes
+have overloaded the system and an exit is triggered.
+<P>
+
+By default, overload processing is turned on for all modules. If you
+would like to disable overload processing, define STP_NO_OVERLOAD (or
+its alias STAP_NO_OVERLOAD).
+<P>
+<A NAME="lbBA"> </A>
+<H2>UNPRIVILEGED USERS</H2>
+
+<P>
+Systemtap exposes kernel internal data
+structures and potentially private user information. Because of this, use of
+systemtap's full capabilities are restricted to root and to users who are
+members of the groups stapdev and stapusr.
+<P>
+However, a restricted set of systemtap's features can be made available to
+trusted, unprivileged users. These users are members of the group stapusr
+only, or members of the groups stapusr and stapsys.
+These users can load systemtap modules which have been compiled and
+certified by a trusted systemtap compile-server. See the descriptions of the
+options <I>--privilege</I> and <I>--use-server</I>. See
+<I>README.unprivileged</I> in the systemtap source code for information about
+setting up a trusted compile server.
+<P>
+The restrictions enforced when <I>--privilege=stapsys</I> is specified are designed
+to prevent unprivileged users from:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT>•<DD>
+harming the system maliciously.
+</DL>
+</DL>
+
+<P>
+The restrictions enforced when <I>--privilege=stapusr</I> is specified are designed
+to prevent unprivileged users from:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT>•<DD>
+harming the system maliciously.
+<DT>•<DD>
+gaining access to information which would not normally be available to an
+unprivileged user.
+<DT>•<DD>
+disrupting the performance of processes owned by other users of the system.
+Some overhead to the system in general is unavoidable since the
+unprivileged user's probes
+will be triggered at the appropriate times. What we would like to avoid is
+targeted interruption of another user's processes which would not normally be
+possible by an unprivileged user.
+</DL>
+</DL>
+
+<P>
+<A NAME="lbBB"> </A>
+<H3>PROBE RESTRICTIONS</H3>
+
+A member of the groups stapusr and stapsys may use all probe points.
+<P>
+
+A member of only the group stapusr may use only the following probes:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT>•<DD>
+begin, <A HREF="../mann/begin.n.html">begin</A>(n)
+<DT>•<DD>
+end, <A HREF="../mann/end.n.html">end</A>(n)
+<DT>•<DD>
+<A HREF="../mann/error.n.html">error</A>(n)
+<DT>•<DD>
+never
+<DT>•<DD>
+process.*, where the target process is owned by the user.
+<DT>•<DD>
+timer.{jiffies,s,sec,ms,msec,us,usec,ns,nsec}(n)*
+<DT>•<DD>
+<A HREF="../mann/timer.hz.n.html">timer.hz</A>(n)
+</DL>
+</DL>
+
+<P>
+<A NAME="lbBC"> </A>
+<H3>SCRIPT LANGUAGE RESTRICTIONS</H3>
+
+The following scripting language features are unavailable to all unprivileged users:
+<P>
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT>•<DD>
+any feature enabled by the Guru Mode (-g) option.
+<DT>•<DD>
+embedded C code.
+</DL>
+</DL>
+
+<P>
+<A NAME="lbBD"> </A>
+<H3>RUNTIME RESTRICTIONS</H3>
+
+The following runtime restrictions are placed upon all unprivileged users:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT>•<DD>
+Only the default runtime code (see <I>-R</I>) may be used.
+</DL>
+</DL>
+
+<P>
+Additional restrictions are placed on members of only the group stapusr:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT>•<DD>
+Probing of processes owned by other users is not permitted.
+<DT>•<DD>
+Access of kernel memory (read and write) is not permitted.
+</DL>
+</DL>
+
+<P>
+<A NAME="lbBE"> </A>
+<H3>COMMAND LINE OPTION RESTRICTIONS</H3>
+
+Some command line options provide access to features which must not be available
+to all unprivileged users:
+<P>
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT>•<DD>
+-g may not be specified.
+<DT>•<DD>
+The following options may not be used by the compile-server client:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+ -a, -B, -D, -I, -r, -R
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+</DL>
+</DL>
+
+<P>
+<A NAME="lbBF"> </A>
+<H3>ENVIRONMENT RESTRICTIONS</H3>
+
+The following environment variables must not be set for all unprivileged users:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+SYSTEMTAP_RUNTIME
+SYSTEMTAP_TAPSET
+SYSTEMTAP_DEBUGINFO_PATH
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<A NAME="lbBG"> </A>
+<H3>TAPSET RESTRICTIONS</H3>
+
+In general, tapset functions are only available for members of the
+group stapusr when they do not gather information that an ordinary
+program running with that user's privileges would be denied access to.
+<P>
+There are two categories of unprivileged tapset functions. The first
+category consists of utility functions that are unconditionally
+available to all users; these include such things as:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+cpu:long ()
+exit ()
+str_replace:string (prnt_str:string, srch_str:string, rplc_str:string)
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+The second category consists of so-called
+<I>myproc-unprivileged</I>
+
+functions that can only gather information within their own
+processes. Scripts that wish to use these functions must test the
+result of the tapset function <I>is_myproc</I> and only call these
+functions if the result is 1. The script will exit immediately if any
+of these functions are called by an unprivileged user within a probe
+within a process which is not owned by that user. Examples of
+<I>myproc-unprivileged</I>
+
+functions include:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+print_usyms (stk:string)
+user_int:long (addr:long)
+usymname:string (addr:long)
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+A compile error is triggered when any function not in either of the
+above categories is used by members of only the group stapusr.
+<P>
+No other built-in tapset functions may be used by members of only the
+group stapusr.
+<P>
+<A NAME="lbBH"> </A>
+<H2>ALTERNATE RUNTIMES</H2>
+
+<P>
+As described above, systemtap's default runtime mode involves building and
+loading kernel modules, with various security tradeoffs presented. Systemtap
+now includes a new prototype backend, selected with <I>--runtime=dyninst</I>,
+which uses Dyninst to instrument a user's own processes at runtime. This
+backend does not use kernel modules, and does not require root privileges, but
+is restricted with respect to the kinds of probes and other constructs that a
+script may use.
+<P>
+The <I>dyninst</I> runtime operates in target-attach mode, so it does require
+a <I>-c COMMAND</I> or <I>-x PID</I> process. For example:
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+stap --runtime=dyninst -c 'stap -V' \
+ -e 'probe process.function("main")
+ { println("hi from dyninst!") }'
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+It may be necessary to disable a conflicting selinux check with
+
+<BR>
+
+<P>
+
+<DL COMPACT><DT><DD>
+<PRE>
+# setsebool allow_execstack 1
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<A NAME="lbBI"> </A>
+<H2>EXIT STATUS</H2>
+
+<P>
+The systemtap translator generally returns with a success code of 0 if
+the requested script was processed and executed successfully through
+the requested pass. Otherwise, errors may be printed to stderr and
+a failure code is returned. Use
+<I>-v</I>
+
+or
+<I>-vp N</I>
+
+to increase (global or per-pass) verbosity to identify the source of the
+trouble.
+<P>
+In listings mode
+(<I>-l</I> and <I>-L</I>),
+
+error messages are normally suppressed. A success code of 0 is returned
+if at least one matching probe was found.
+<P>
+A script executing in pass 5 that is interrupted with ^C / SIGINT is
+considered to be successful.
+<P>
+<A NAME="lbBJ"> </A>
+<H2>DEPRECATION</H2>
+
+<P>
+Over time, some features of the script language and the tapset library
+may undergo incompatible changes, so that a script written against
+an old version of systemtap may no longer run. In these cases, it may
+help to run systemtap with the
+<I>--compatible VERSION</I>
+
+flag, specifying the last known working version. Running
+systemtap with the
+<I>--check-version</I>
+
+flag will output a warning if any possible incompatible elements have
+been parsed. Deprecation historical details may be found in the NEWS file.
+<P>
+<A NAME="lbBK"> </A>
+<H2>FILES</H2>
+
+<DL COMPACT>
+<DT>Important files and their corresponding paths can be located in the <DD>
+stappaths (7) manual page.
+<P>
+</DL>
+<A NAME="lbBL"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap),
+<I>function::*</I>(3stap),
+<I>probe::*</I>(3stap),
+<I>tapset::*</I>(3stap),
+<I><A HREF="stappaths.7.html">stappaths</A></I>(7),
+<I><A HREF="staprun.8.html">staprun</A></I>(8),
+<I><A HREF="stapdyn.8.html">stapdyn</A></I>(8),
+<I><A HREF="systemtap.8.html">systemtap</A></I>(8),
+<I><A HREF="stapvars.3stap.html">stapvars</A></I>(3stap),
+<I><A HREF="stapex.3stap.html">stapex</A></I>(3stap),
+<I><A HREF="stap-server.8.html">stap-server</A></I>(8),
+<I><A HREF="stap-prep.1.html">stap-prep</A></I>(1),
+<I><A HREF="awk.1.html">awk</A></I>(1),
+<I><A HREF="gdb.1.html">gdb</A></I>(1)
+
+</PRE><A NAME="lbBM"> </A>
+<H2>BUGS</H2>
+
+Use the Bugzilla link of the project web page or our mailing list.
+
+<B><A HREF="http://sourceware.org/systemtap/">http://sourceware.org/systemtap/</A></B>, <B><<A HREF="mailto:systemtap@sourceware.org">systemtap@sourceware.org</A>></B>.
+
+
+<P>
+
+<I><A HREF="./error::reporting.7stap.html">error::reporting</A></I>(7stap),
+
+
+<B><A HREF="https://sourceware.org/systemtap/wiki/HowToReportBugs">https://sourceware.org/systemtap/wiki/HowToReportBugs</A></B>
+
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAE">OPTIONS</A><DD>
+<DT><A HREF="#lbAF">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAG">SCRIPT LANGUAGE</A><DD>
+<DL>
+<DT><A HREF="#lbAH">GENERAL SYNTAX</A><DD>
+<DT><A HREF="#lbAI">PREPROCESSING</A><DD>
+<DT><A HREF="#lbAJ">PREPROCESSOR MACROS</A><DD>
+<DT><A HREF="#lbAK">VARIABLES</A><DD>
+<DT><A HREF="#lbAL">STATEMENTS</A><DD>
+<DT><A HREF="#lbAM">EXPRESSIONS</A><DD>
+<DT><A HREF="#lbAN">REGULAR EXPRESSION MATCHING</A><DD>
+<DT><A HREF="#lbAO">PROBES</A><DD>
+<DT><A HREF="#lbAP">FUNCTIONS</A><DD>
+<DT><A HREF="#lbAQ">PRINTING</A><DD>
+<DT><A HREF="#lbAR">STATISTICS</A><DD>
+<DT><A HREF="#lbAS">TYPECASTING</A><DD>
+<DT><A HREF="#lbAT">EMBEDDED C</A><DD>
+<DT><A HREF="#lbAU">BUILT-INS</A><DD>
+</DL>
+<DT><A HREF="#lbAV">PROCESSING</A><DD>
+<DL>
+<DT><A HREF="#lbAW">ABNORMAL TERMINATION</A><DD>
+</DL>
+<DT><A HREF="#lbAX">EXAMPLES</A><DD>
+<DT><A HREF="#lbAY">CACHING</A><DD>
+<DT><A HREF="#lbAZ">SAFETY AND SECURITY</A><DD>
+<DT><A HREF="#lbBA">UNPRIVILEGED USERS</A><DD>
+<DL>
+<DT><A HREF="#lbBB">PROBE RESTRICTIONS</A><DD>
+<DT><A HREF="#lbBC">SCRIPT LANGUAGE RESTRICTIONS</A><DD>
+<DT><A HREF="#lbBD">RUNTIME RESTRICTIONS</A><DD>
+<DT><A HREF="#lbBE">COMMAND LINE OPTION RESTRICTIONS</A><DD>
+<DT><A HREF="#lbBF">ENVIRONMENT RESTRICTIONS</A><DD>
+<DT><A HREF="#lbBG">TAPSET RESTRICTIONS</A><DD>
+</DL>
+<DT><A HREF="#lbBH">ALTERNATE RUNTIMES</A><DD>
+<DT><A HREF="#lbBI">EXIT STATUS</A><DD>
+<DT><A HREF="#lbBJ">DEPRECATION</A><DD>
+<DT><A HREF="#lbBK">FILES</A><DD>
+<DT><A HREF="#lbBL">SEE ALSO</A><DD>
+<DT><A HREF="#lbBM">BUGS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of STAPDYN</TITLE>
+</HEAD><BODY>
+<H1>STAPDYN</H1>
+Section: Maintenance Commands (8)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+stapdyn - systemtap dyninst runtime
+<P>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<BR>
+
+<B>stapdyn</B>
+
+[
+<I>OPTIONS</I>
+
+]
+<I>MODULE</I>
+
+[
+<I>MODULE-OPTIONS</I>
+
+]
+<P>
+<A NAME="lbAD"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+The
+<I>stapdyn</I>
+
+program is the dyninst back-end of the Systemtap tool. It expects a
+shared library produced by the front-end
+<I>stap</I>
+
+tool, when run with
+<I>--dyninst</I>.
+
+<P>
+<P>
+
+Splitting the systemtap tool into a front-end and a back-end allows a
+user to compile a systemtap script on a development machine that has
+the debugging information (need to compile the script) and then
+transfer the resulting shared objevct to a production machine that
+doesn't have any development tools or debugging information installed.
+<P>
+
+Please refer to stappaths (7) for the version number, or run
+rpm -q systemtap (fedora/red hat)
+apt-get -v systemtap (ubuntu)
+<P>
+<A NAME="lbAE"> </A>
+<H2>OPTIONS</H2>
+
+The
+<I>stapdyn</I>
+
+program supports the following options. Any other option
+prints a list of supported options.
+<DL COMPACT>
+<DT><B>-v</B>
+
+<DD>
+Verbose mode.
+<DT><B>-V</B>
+
+<DD>
+Print version number and exit.
+<DT><B>-w</B>
+
+<DD>
+Suppress warnings from the script.
+<DT><B>-c CMD</B>
+
+<DD>
+Command CMD will be run and the
+<I>stapdyn</I>
+
+program will exit when CMD
+does. The '_stp_target' variable will contain the pid for CMD.
+<DT><B>-x PID</B>
+
+<DD>
+The '_stp_target' variable will be set to PID.
+<DT><B>-o FILE</B>
+
+<DD>
+Send output to FILE. If the module uses bulk mode, the output will
+be in percpu files FILE_x(FILE_cpux in background and bulk mode)
+where 'x' is the cpu number. This supports <A HREF="strftime.3.html">strftime</A>(3) formats
+for FILE.
+<DT><B>-C WHEN</B>
+
+<DD>
+Control coloring of error messages. WHEN must be either
+
+"never", "always", or "auto"
+
+(i.e. enable only if at a terminal). If the option is missing, then "auto"
+is assumed. Colors can be modified using the SYSTEMTAP_COLORS environment
+variable. See the
+<I><A HREF="stap.1.html">stap</A></I>(1)
+
+manual page for more information on syntax and behaviour.
+<DT><B>var1=val</B>
+
+<DD>
+Sets the value of global variable var1 to val. Global variables contained
+within a script are treated as options and can be set from the
+stapdyn command line.
+<P>
+</DL>
+<A NAME="lbAF"> </A>
+<H2>ARGUMENTS</H2>
+
+<B>MODULE</B>
+
+is either a module path or a module name. If it is a module name,
+the module will be looked for in the following directory
+(where 'VERSION' is the output of "uname -r"):
+<DL COMPACT>
+<DT><DD>
+/lib/modules/VERSION/systemtap
+</DL>
+<P>
+
+<P>
+ $ stap --dyninst -p4 -m mod1 -e 'global var1="foo"; probe begin{printf("%s\n", var1); exit()}'
+<BR>
+
+<P>
+
+Running this with an additional module argument:
+<P>
+
+<P>
+ $ stapdyn mod1.so var1="HelloWorld"
+<BR>
+
+ HelloWorld
+<P>
+
+Spaces and exclamation marks currently cannot be passed into global variables
+this way.
+<P>
+<A NAME="lbAG"> </A>
+<H2>EXAMPLES</H2>
+
+See the
+<I><A HREF="stapex.3stap.html">stapex</A></I>(3stap)
+
+manual page for a collection of sample scripts.
+<P>
+
+Here is a very basic example of how to use
+<I>stapdyn.</I>
+
+First, use
+<I>stap</I>
+
+to compile a script. The
+<I>stap</I>
+
+program will report the pathname to the resulting module.
+<P>
+
+ $ stap --dyninst -p4 -e 'probe begin { printf("Hello World!\n"); exit() }'
+<BR>
+
+ /home/user/.systemtap/cache/85/stap_8553d83f78c_265.so
+<P>
+
+Run
+<I>stapdyn</I>
+
+with the pathname to the module as an argument.
+<P>
+
+ $ stapdyn /home/user/.systemtap/cache/85/stap_8553d83f78c_265.so
+<BR>
+
+ Hello World!
+<P>
+<A NAME="lbAH"> </A>
+<H2>SAFETY AND SECURITY</H2>
+
+Systemtap, in DynInst mode, is a developer tool, and runs completely
+unprivileged. The Linux kernel will only permit one's own processes
+to be accessed, which is enforced by the
+<I><A HREF="ptrace.2.html">ptrace</A></I>(2)
+
+system call.
+See the
+<I><A HREF="stap.1.html">stap</A></I>(1)
+
+manual page for additional information on safety and security.
+<P>
+<A NAME="lbAI"> </A>
+<H2>SEE ALSO</H2>
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap),
+
+<I><A HREF="stap-server.8.html">stap-server</A></I>(8),
+
+<I><A HREF="staprun.8.html">staprun</A></I>(8),
+
+<I><A HREF="stapex.3stap.html">stapex</A></I>(3stap)
+
+<P>
+<A NAME="lbAJ"> </A>
+<H2>BUGS</H2>
+
+Use the Bugzilla link of the project web page or our mailing list.
+
+<B><A HREF="http://sourceware.org/systemtap/">http://sourceware.org/systemtap/</A></B>, <B><<A HREF="mailto:systemtap@sourceware.org">systemtap@sourceware.org</A>></B>.
+
+
+<P>
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAE">OPTIONS</A><DD>
+<DT><A HREF="#lbAF">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAG">EXAMPLES</A><DD>
+<DT><A HREF="#lbAH">SAFETY AND SECURITY</A><DD>
+<DT><A HREF="#lbAI">SEE ALSO</A><DD>
+<DT><A HREF="#lbAJ">BUGS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of STAPEX</TITLE>
+</HEAD><BODY>
+<H1>STAPEX</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+stapex - systemtap examples
+<P>
+
+
+
+<P>
+<A NAME="lbAC"> </A>
+<H2>LANGUAGE BASICS</H2>
+
+These examples give a feel for basic systemtap syntax and
+control structures.
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+global odds, evens
+
+probe begin {
+ # "no" and "ne" are local integers
+ for (i=0; i<10; i++) {
+ if (i % 2) odds [no++] = i
+ else evens [ne++] = i
+ }
+ delete odds[2]
+ delete evens[3]
+ exit ()
+}
+
+probe end {
+ foreach (x+ in odds) {
+ printf ("odds[%d] = %d, x, odds[x])
+ }
+ foreach (x in evens-) {
+ printf ("evens[%d] = %d, x, evens[x])
+ }
+}
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+This prints:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+odds[1] = 1
+odds[3] = 5
+odds[4] = 7
+odds[5] = 9
+evens[5] = 8
+evens[4] = 6
+evens[2] = 2
+evens[1] = 0
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+Note that all variables types are inferred, and that all locals
+and globals are automatically initialized.
+<P>
+<P>
+
+This script prints the primes between 0 and 49.
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+function isprime (x) {
+ if (x < 2) return 0
+ for (i=2; i<x; i++) {
+ if (x % i == 0) return 0
+ if (i * i > x) break
+ }
+ return 1
+}
+probe begin {
+ for (i=0; i<50; i++)
+ if (isprime (i)) printf("%d, i)
+ exit()
+}
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<P>
+
+This script demonstrates recursive functions.
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+function fibonacci(i) {
+ if (i < 1) error ("bad number")
+ if (i == 1) return 1
+ if (i == 2) return 2
+ return fibonacci (i-1) + fibonacci (i-2)
+}
+probe begin {
+ printf ("11th fibonacci number: %d, fibonacci (11))
+ exit ()
+}
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+Any larger number may exceed the MAXACTION or MAXNESTING
+limits, and result in an error.
+<P>
+<P>
+<A NAME="lbAD"> </A>
+<H2>PROBING</H2>
+
+<P>
+To trace entry and exit from a function, use a pair of probes:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+probe kernel.function("sys_mkdir") { println ("enter") }
+probe kernel.function("sys_mkdir").return { println ("exit") }
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+To list the probeable functions in the kernel, use the listings mode.
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+% stap -l 'kernel.function("*")'
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+To list the probeable functions and local variables in the kernel, use another listings mode.
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+% stap -L 'kernel.function("*")'
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<A NAME="lbAE"> </A>
+<H2>MORE EXAMPLES</H2>
+
+<P>
+The directory to find more examples can be found in the stappaths (7) manual page,
+and online at
+
+<B><A HREF="http://sourceware.org/systemtap/examples/">http://sourceware.org/systemtap/examples/</A></B>
+
+
+<P>
+<A NAME="lbAF"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1)
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+<I><A HREF="stappaths.7.html">stappaths</A></I>(7)
+
+
+</PRE>
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">LANGUAGE BASICS</A><DD>
+<DT><A HREF="#lbAD">PROBING</A><DD>
+<DT><A HREF="#lbAE">MORE EXAMPLES</A><DD>
+<DT><A HREF="#lbAF">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of STAPFUNCS</TITLE>
+</HEAD><BODY>
+<H1>STAPFUNCS</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+stapfuncs - systemtap functions
+<P>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+Functions in the standard systemtap tapset are individually documented
+in the
+<I>3stap</I>
+
+manual section, with the
+<I>function::</I>
+
+prefix. Some built-in functions such as
+<I>printf</I>
+
+are documented on the
+<I><A HREF="stap.1.html">stap</A></I>(1)
+
+man page.
+<P>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1),
+<I>function::*</I>(3stap),
+<I>tapset::*</I>(3stap)
+
+</PRE>
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of STAP</TITLE>
+</HEAD><BODY>
+<H1>STAP</H1>
+Section: Environments, Tables, and Troff Macros (7)<BR>Updated: Systemtap Team<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+<P>
+stappaths - systemtap configurable file paths
+<P>
+<P>
+
+
+
+<P>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+This manual page was generated on 2014-12-22 for systemtap 2.7.
+The following section will list the main paths in systemtap that are
+important to know and may be required to reference.
+<DL COMPACT>
+<DT>share/systemtap/tapset/<DD>
+The directory for the standard probe-alias / function tapset library,
+unless overridden by the
+<I>SYSTEMTAP_TAPSET</I>
+
+environment variable or the
+<I>XDG_DATA_DIRS</I>
+
+environment variable.
+These are described in the
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap),
+
+<I>probe::*</I>(3stap),
+
+and
+<I>function::*</I>(3stap)
+
+manual pages.
+<DT>share/systemtap/runtime/<DD>
+The runtime sources, unless overridden by the
+<I>SYSTEMTAP_RUNTIME</I>
+
+environment variable.
+<DT>bin/staprun<DD>
+The auxiliary program supervising module loading, interaction, and
+unloading.
+<DT>${exec_prefix}/libexec/systemtap/stapio<DD>
+The auxiliary program for module input and output handling.
+<DT>/usr/include/sys/sdt.h<DD>
+Location of the <<A HREF="file:///usr/include/sys/sdt.h">sys/sdt.h</A>> headers.
+<DT>Kernel debuginfo Path: /usr/lib/debug/lib/modules/$(uname -r)/<DD>
+The location of kernel debugging information when packaged into the
+<I>kernel-debuginfo</I>
+
+RPM, unless overridden by the
+<I>SYSTEMTAP_DEBUGINFO_PATH</I>
+
+environment variable. The default value for this variable is
+<I>+:.debug:/usr/lib/debug:build</I>.
+
+elfutils searches vmlinux in this path and it interprets the path as a base
+directory of which various subdirectories will be searched for finding debuginfo
+for the kernel, kernel modules, and user-space binaries.
+By default, systemtap will also look for vmlinux in these locations:
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+/boot/vmlinux-`uname -r`
+/lib/modules/`uname -r`/vmlinux
+/lib/modules/`uname -r`/vmlinux.debug
+/lib/modules/`uname -r`/build/vmlinux
+/lib/modules/`uname -r`/.debug/vmlinux.debug
+/usr/lib/debug/lib/modules/`uname -r`/vmlinux.debug
+/var/cache/abrt-di/usr/debug/lib/modules/`uname -r`/
+/var/cache/abrt-di/usr/lib/debug/lib/modules/`uname -r`/vmlinux.debug
+
+
+</PRE>
+
+</DL>
+
+
+<DT><DD>
+<BR>
+Corresponding source files are usually located under /usr/src/debug/.
+Further file information on user-space applications can be determined per-basis using
+rpm -ql <package>-debuginfo. For supported user-space applications information please
+visit the systemtap wiki.
+<DT>$HOME/.systemtap<DD>
+Systemtap data directory for cached systemtap files, unless overridden
+by the
+<I>SYSTEMTAP_DIR</I>
+
+environment variable.
+<DT>/tmp/stapXXXXXX<DD>
+Temporary directory for systemtap files, including translated C code
+and kernel object.
+<DT>/lib/modules/VERSION/build<DD>
+The location of kernel module building infrastructure.
+<DT>share/doc/systemtap*/examples<DD>
+Examples with greater detail can be found here. Each example comes with a .txt
+or .meta file explaining what the example, sample or demo does and how it is
+ordinarily run. See also
+
+<I><A HREF="http://sourceware.org/systemtap/examples/">http://sourceware.org/systemtap/examples/</A></I>
+
+
+<DT>$SYSTEMTAP_DIR/ssl/server<DD>
+User's server-side SSL certificate database. If SYSTEMTAP_DIR is not
+set, the default is $HOME/.systemtap.
+<DT>$SYSTEMTAP_DIR/ssl/client<DD>
+User's private client-side SSL certificate database. If SYSTEMTAP_DIR is not
+set, the default is $HOME/.systemtap.
+<DT>${prefix}/etc/systemtap/ssl/client<DD>
+Global client-side SSL certificate database.
+<DT>${prefix}/etc/systemtap/staprun/<DD>
+<I>staprun</I>'s trusted signer certificate database.
+<DT>${prefix}/etc/sysconfig/stap-server/<DD>
+stap-server service global configuration file.
+<DT>${prefix}/etc/stap-server/conf.d/*.conf<DD>
+stap-server service configuration files for default servers.
+<DT>/var/run/stap-server/<DD>
+stap-server service default location of status files for running servers.
+<DT>/var/log/stap-server/log<DD>
+stap-server service default log file.
+<P>
+<P>
+</DL>
+<P>
+
+<A NAME="lbAD"> </A>
+<H2>FILES</H2>
+
+
+<I>share/systemtap/tapset</I>
+
+
+<P>
+<A NAME="lbAE"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap),
+<I><A HREF="staprun.8.html">staprun</A></I>(8),
+<I><A HREF="stapvars.3stap.html">stapvars</A></I>(3stap),
+<I><A HREF="stapex.3stap.html">stapex</A></I>(3stap),
+<I><A HREF="stap-server.8.html">stap-server</A></I>(8),
+<I><A HREF="awk.1.html">awk</A></I>(1),
+<I><A HREF="gdb.1.html">gdb</A></I>(1)
+
+
+</PRE><A NAME="lbAF"> </A>
+<H2>BUGS</H2>
+
+Use the Bugzilla link of the project web page or our mailing list.
+
+<B><A HREF="http://sourceware.org/systemtap/">http://sourceware.org/systemtap/</A></B>,<B><<A HREF="mailto:systemtap@sourceware.org">systemtap@sourceware.org</A>></B>.
+
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">FILES</A><DD>
+<DT><A HREF="#lbAE">SEE ALSO</A><DD>
+<DT><A HREF="#lbAF">BUGS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of STAPPROBES</TITLE>
+</HEAD><BODY>
+<H1>STAPPROBES</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+stapprobes - systemtap probe points
+<P>
+
+
+
+<P>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+The following sections enumerate the variety of probe points supported
+by the systemtap translator, and some of the additional aliases defined by
+standard tapset scripts. Many are individually documented in the
+<I>3stap</I>
+
+manual section, with the
+<I>probe::</I>
+
+prefix.
+<P>
+<A NAME="lbAD"> </A>
+<H2>SYNTAX</H2>
+
+<P>
+<P>
+
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>probe</B> PROBEPOINT [<B>,</B> PROBEPOINT] <B>{</B> [STMT ...] <B>}</B>
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+
+A probe declaration may list multiple comma-separated probe points in
+order to attach a handler to all of the named events. Normally, the
+handler statements are run whenever any of events occur.
+<P>
+
+The syntax of a single probe point is a general dotted-symbol
+sequence. This allows a breakdown of the event namespace into parts,
+somewhat like the Domain Name System does on the Internet. Each
+component identifier may be parametrized by a string or number
+literal, with a syntax like a function call. A component may include
+a "*" character, to expand to a set of matching probe points. It may
+also include "**" to match multiple sequential components at once.
+Probe aliases likewise expand to other probe points.
+<P>
+
+Probe aliases can be given on their own, or with a suffix. The suffix
+attaches to the underlying probe point that the alias is expanded
+to. For example,
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+syscall.read.return.maxactive(10)
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+expands to
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+kernel.function("sys_read").return.maxactive(10)
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+with the component
+<I>maxactive(10)</I>
+
+being recognized as a suffix.
+<P>
+
+Normally, each and every probe point resulting from wildcard- and
+alias-expansion must be resolved to some low-level system
+instrumentation facility (e.g., a kprobe address, marker, or a timer
+configuration), otherwise the elaboration phase will fail.
+<P>
+
+However, a probe point may be followed by a "?" character, to indicate
+that it is optional, and that no error should result if it fails to
+resolve. Optionalness passes down through all levels of
+alias/wildcard expansion. Alternately, a probe point may be followed
+by a "!" character, to indicate that it is both optional and
+sufficient. (Think vaguely of the Prolog cut operator.) If it does
+resolve, then no further probe points in the same comma-separated list
+will be resolved. Therefore, the "!" sufficiency mark only makes
+sense in a list of probe point alternatives.
+<P>
+
+Additionally, a probe point may be followed by a "if (expr)" statement, in
+order to enable/disable the probe point on-the-fly. With the "if" statement,
+if the "expr" is false when the probe point is hit, the whole probe body
+including alias's body is skipped. The condition is stacked up through
+all levels of alias/wildcard expansion. So the final condition becomes
+the logical-and of conditions of all expanded alias/wildcard. The expressions
+are necessarily restricted to global variables.
+<P>
+
+These are all
+<B>syntactically</B>
+
+valid probe points. (They are generally
+<B>semantically</B>
+
+invalid, depending on the contents of the tapsets, and the versions of
+kernel/user software installed.)
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+kernel.function("foo").return
+process("/bin/vi").statement(0x2222)
+end
+syscall.*
+syscall.*.return.maxactive(10)
+sys**open
+kernel.function("no_such_function") ?
+module("awol").function("no_such_function") !
+signal.*? if (switch)
+kprobe.function("foo")
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+Probes may be broadly classified into "synchronous" and
+"asynchronous". A "synchronous" event is deemed to occur when any
+processor executes an instruction matched by the specification. This
+gives these probes a reference point (instruction address) from which
+more contextual data may be available. Other families of probe points
+refer to "asynchronous" events such as timers/counters rolling over,
+where there is no fixed reference point that is related. Each probe
+point specification may match multiple locations (for example, using
+wildcards or aliases), and all them are then probed. A probe
+declaration may also contain several comma-separated specifications,
+all of which are probed.
+<P>
+<A NAME="lbAE"> </A>
+<H2>DWARF DEBUGINFO</H2>
+
+<P>
+Resolving some probe points requires DWARF debuginfo or "debug
+symbols" for the specific part being instrumented. For some others,
+DWARF is automatically synthesized on the fly from source code header
+files. For others, it is not needed at all. Since a systemtap script
+may use any mixture of probe points together, the union of their DWARF
+requirements has to be met on the computer where script compilation
+occurs. (See the <I>--use-server</I> option and the <B><A HREF="stap-server.8.html">stap-server</A>(8)</B> man page for information about the remote compilation facility,
+which allows these requirements to be met on a different machine.)
+<P>
+
+The following point lists many of the available probe point families,
+to classify them with respect to their need for DWARF debuginfo.
+<P>
+<TABLE>
+<TR VALIGN=top><TD><B>DWARF</B></TD><TD>NON-DWARF</TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD></TD><TD></TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD>kernel.function, .statement</TD><TD>kernel.mark</TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD>module.function, .statement</TD><TD>process.mark, process.plt</TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD>process.function, .statement</TD><TD>begin, end, error, never</TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD>process.mark <I>(backup)</I></TD><TD>timer</TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD></TD><TD>perf</TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD></TD><TD>procfs</TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD><B>AUTO-GENERATED-DWARF</B></TD><TD>kernel.statement.absolute</TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD></TD><TD>kernel.data</TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD>kernel.trace</TD><TD>kprobe.function</TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD></TD><TD>process.statement.absolute</TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD></TD><TD>process.begin, .end</TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD></TD><TD>netfilter</TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD></TD><TD>java</TD><TD><BR></TD></TR>
+</TABLE>
+
+<P>
+<A NAME="lbAF"> </A>
+<H2>ON-THE-FLY ARMING</H2>
+
+<P>
+The following types of probe points may be armed/disarmed on-the-fly
+to save overheads during uninteresting times. Arming conditions may
+also be added to other types of probes, but will be treated as a
+wrapping conditional and won't benefit from overhead savings.
+<P>
+<TABLE>
+<TR VALIGN=top><TD><B>DISARMABLE</B></TD><TD>exceptions<BR></TD></TR>
+<TR VALIGN=top><TD>kernel.function, kernel.statement</TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD>module.function, module.statement</TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD>process.*.function, process.*.statement</TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD>process.*.plt, process.*.mark</TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD>timer.</TD><TD>timer.profile<BR></TD></TR>
+<TR VALIGN=top><TD>java</TD><TD><BR></TD></TR>
+</TABLE>
+
+<P>
+<A NAME="lbAG"> </A>
+<H2>PROBE POINT FAMILIES</H2>
+
+<P>
+<A NAME="lbAH"> </A>
+<H3>BEGIN/END/ERROR</H3>
+
+<P>
+The probe points
+<I>begin</I> and <I>end</I>
+
+are defined by the translator to refer to the time of session startup
+and shutdown. All "begin" probe handlers are run, in some sequence,
+during the startup of the session. All global variables will have
+been initialized prior to this point. All "end" probes are run, in
+some sequence, during the
+<I>normal</I>
+
+shutdown of a session, such as in the aftermath of an
+<I>exit ()</I>
+
+function call, or an interruption from the user. In the case of an
+error-triggered shutdown, "end" probes are not run. There are no
+target variables available in either context.
+<P>
+
+If the order of execution among "begin" or "end" probes is significant,
+then an optional sequence number may be provided:
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+begin(N)
+end(N)
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+The number N may be positive or negative. The probe handlers are run in
+increasing order, and the order between handlers with the same sequence
+number is unspecified. When "begin" or "end" are given without a
+sequence, they are effectively sequence zero.
+<P>
+The
+<I>error</I>
+
+probe point is similar to the
+<I>end</I>
+
+probe, except that each such probe handler run when the session ends
+after errors have occurred. In such cases, "end" probes are skipped,
+but each "error" probe is still attempted. This kind of probe can be
+used to clean up or emit a "final gasp". It may also be numerically
+parametrized to set a sequence.
+<P>
+<A NAME="lbAI"> </A>
+<H3>NEVER</H3>
+
+The probe point
+<I>never</I>
+
+is specially defined by the translator to mean "never". Its probe
+handler is never run, though its statements are analyzed for symbol /
+type correctness as usual. This probe point may be useful in
+conjunction with optional probes.
+<P>
+<A NAME="lbAJ"> </A>
+<H3>SYSCALL and ND_SYSCALL</H3>
+
+<P>
+The
+<I>syscall.*</I> and <I>nd_syscall.*</I>
+
+aliases define several hundred probes, too many to
+detail here. They are of the general form:
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+syscall.NAME
+<BR>
+nd_syscall.NAME
+<BR>
+syscall.NAME.return
+<BR>
+nd_syscall.NAME.return
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+Generally, a pair of probes are defined for each normal system call as listed in the
+<I><A HREF="syscalls.2.html">syscalls</A>(2)</I>
+
+manual page, one for entry and one for return. Those system calls that never
+return do not have a corresponding
+<I>.return</I>
+
+probe. The nd_* family of probes are about the same, except it uses
+<B>non-DWARF</B>
+
+based searching mechanisms, which may result in a lower quality of symbolic
+context data (parameters), and may miss some system calls. You may want to
+try them first, in case kernel debugging information is not immediately available.
+<P>
+
+Each probe alias provides a variety of variables. Looking at the tapset source
+code is the most reliable way. Generally, each variable listed in the standard
+manual page is made available as a script-level variable, so
+<I>syscall.open</I>
+
+exposes
+<I>filename</I>, <I>flags</I>, and <I>mode</I>.
+
+In addition, a standard suite of variables is available at most aliases:
+<DL COMPACT>
+<DT><I>argstr</I>
+
+<DD>
+A pretty-printed form of the entire argument list, without parentheses.
+<DT><I>name</I>
+
+<DD>
+The name of the system call.
+<DT><I>retstr</I>
+
+<DD>
+For return probes, a pretty-printed form of the system-call result.
+</DL>
+<P>
+
+As usual for probe aliases, these variables are all initialized once
+from the underlying $context variables, so that later changes to
+$context variables are not automatically reflected. Not all probe
+aliases obey all of these general guidelines. Please report any
+bothersome ones you encounter as a bug. Note that on some
+kernel/userspace architecture combinations (e.g., 32-bit userspace on
+64-bit kernel), the underlying $context variables may need explicit
+sign extension / masking. When this is an issue, consider using the
+tapset-provided variables instead of raw $context variables.
+<P>
+
+If debuginfo availability is a problem, you may try using the
+non-DWARF syscall probe aliases instead. Use the
+<I>nd_syscall.</I>
+
+prefix instead of
+<I>syscall.</I>
+
+The same context variables are available, as far as possible.
+<P>
+<A NAME="lbAK"> </A>
+<H3>TIMERS</H3>
+
+<P>
+Intervals defined by the standard kernel "jiffies" timer may be used
+to trigger probe handlers asynchronously. Two probe point variants
+are supported by the translator:
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+timer.jiffies(N)
+timer.jiffies(N).randomize(M)
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+The probe handler is run every N jiffies (a kernel-defined unit of
+time, typically between 1 and 60 ms). If the "randomize" component is
+given, a linearly distributed random value in the range [-M..+M] is
+added to N every time the handler is run. N is restricted to a
+reasonable range (1 to around a million), and M is restricted to be
+smaller than N. There are no target variables provided in either
+context. It is possible for such probes to be run concurrently on
+a multi-processor computer.
+<P>
+
+Alternatively, intervals may be specified in units of time.
+There are two probe point variants similar to the jiffies timer:
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+timer.ms(N)
+timer.ms(N).randomize(M)
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+Here, N and M are specified in milliseconds, but the full options for units
+are seconds (s/sec), milliseconds (ms/msec), microseconds (us/usec),
+nanoseconds (ns/nsec), and hertz (hz). Randomization is not supported for
+hertz timers.
+<P>
+The actual resolution of the timers depends on the target kernel. For
+kernels prior to 2.6.17, timers are limited to jiffies resolution, so
+intervals are rounded up to the nearest jiffies interval. After 2.6.17,
+the implementation uses hrtimers for tighter precision, though the actual
+resolution will be arch-dependent. In either case, if the "randomize"
+component is given, then the random value will be added to the interval
+before any rounding occurs.
+<P>
+
+Profiling timers are also available to provide probes that execute on
+all CPUs at the rate of the system tick (CONFIG_HZ). This probe takes
+no parameters. On some kernels, this is a one-concurrent-user-only or
+disabled facility, resulting in error -16 (EBUSY) during probe
+registration.
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+timer.profile.tick
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+Full context information of the interrupted process is available, making
+this probe suitable for a time-based sampling profiler.
+<P>
+
+It is recommended to use the tapset probe
+<I>timer.profile</I>
+
+rather than timer.profile.tick. This probe point behaves identically
+to timer.profile.tick when the underlying functionality is available,
+and falls back to using perf.sw.cpu_clock on some recent kernels which
+lack the corresponding profile timer facility.
+<P>
+<A NAME="lbAL"> </A>
+<H3>DWARF</H3>
+
+<P>
+This family of probe points uses symbolic debugging information for
+the target kernel/module/program, as may be found in unstripped
+executables, or the separate
+<I>debuginfo</I>
+
+packages. They allow placement of probes logically into the execution
+path of the target program, by specifying a set of points in the
+source or object code. When a matching statement executes on any
+processor, the probe handler is run in that context.
+<P>
+
+Probe points in the DWARF family can be identified by the target kernel
+module (or user process), source file, line number, function name, or
+some combination of these.
+<P>
+
+Here is a list of DWARF probe points currently supported:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+kernel.function(PATTERN)
+kernel.function(PATTERN).call
+kernel.function(PATTERN).callee(PATTERN)
+kernel.function(PATTERN).callees(DEPTH)
+kernel.function(PATTERN).return
+kernel.function(PATTERN).inline
+kernel.function(PATTERN).label(LPATTERN)
+module(MPATTERN).function(PATTERN)
+module(MPATTERN).function(PATTERN).call
+module(MPATTERN).function(PATTERN).callee(PATTERN)
+module(MPATTERN).function(PATTERN).callees(DEPTH)
+module(MPATTERN).function(PATTERN).return
+module(MPATTERN).function(PATTERN).inline
+module(MPATTERN).function(PATTERN).label(LPATTERN)
+kernel.statement(PATTERN)
+kernel.statement(PATTERN).nearest
+kernel.statement(ADDRESS).absolute
+module(MPATTERN).statement(PATTERN)
+process("PATH").function("NAME")
+process("PATH").statement("*@FILE.c:123")
+process("PATH").library("PATH").function("NAME")
+process("PATH").library("PATH").statement("*@FILE.c:123")
+process("PATH").library("PATH").statement("*@FILE.c:123").nearest
+process("PATH").function("*").return
+process("PATH").function("myfun").label("foo")
+process("PATH").function("foo").callee("bar")
+process("PATH").function("foo").callees(DEPTH)
+process(PID).function("NAME")
+process(PID).function("myfun").label("foo")
+process(PID).plt("NAME")
+process(PID).plt("NAME").return
+process(PID).statement("*@FILE.c:123")
+process(PID).statement("*@FILE.c:123").nearest
+process(PID).statement(ADDRESS).absolute
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+(See the USER-SPACE section below for more information on the process
+probes.)
+<P>
+
+The list above includes multiple variants and modifiers which provide
+additional functionality or filters. They are:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>.function</B><DD>
+Places a probe near the beginning of the named function, so that
+parameters are available as context variables.
+<DT><B>.return</B><DD>
+Places a probe at the moment <B>after</B> the return from the named
+function, so the return value is available as the "$return" context
+variable.
+<DT><B>.inline</B><DD>
+Filters the results to include only instances of inlined functions. Note
+that inlined functions do not have an identifiable return point, so
+<B>.return</B> is not supported on <B>.inline</B> probes.
+<DT><B>.call</B><DD>
+Filters the results to include only non-inlined functions (the opposite
+set of <B>.inline</B>)
+<DT><B>.exported</B><DD>
+Filters the results to include only exported functions.
+<DT><B>.statement</B><DD>
+Places a probe at the exact spot, exposing those local variables that
+are visible there.
+<DT><B>.statement.nearest</B><DD>
+Places a probe at the nearest available spot to the given statement.
+<DT><B>.callee</B><DD>
+Places a probe on the callee function given in the <B>.callee</B>
+modifier, where the callee must be a function called by the target
+function given in <B>.function</B>. The advantage of doing this over
+directly probing the callee function is that this probe point is run
+only when the callee is called from the target function (add the
+-DSTAP_CALLEE_MATCHALL directive to override this when calling
+<B><A HREF="stap.1.html">stap</A></B>(1)).
+<P>
+Note that only callees that can be statically determined are available.
+For example, calls through function pointers are not available.
+Additionally, calls to functions located in other objects (e.g.
+libraries) are not available (instead use another probe point). This
+feature will only work for code compiled with GCC 4.7+.
+<DT><B>.callees</B><DD>
+Shortcut for <B>.callee("*")</B>, which places a probe on all callees of
+the function.
+<DT><B>.callees</B>(DEPTH)<DD>
+Recursively places probes on callees. For example, <B><A HREF=".callees.2.html">.callees</A>(2)</B>
+will probe both callees of the target function, as well as callees of
+those callees. And <B><A HREF=".callees.3.html">.callees</A>(3)</B> goes one level deeper, etc...
+A callee probe at depth N is only triggered when the N callers in the
+callstack match those that were statically determined during analysis
+(this also may be overridden using -DSTAP_CALLEE_MATCHALL).
+</DL>
+</DL>
+
+<P>
+
+In the above list of probe points, MPATTERN stands for a string literal
+that aims to identify the loaded kernel module of interest. For in-tree
+kernel modules, the name suffices (e.g. "btrfs"). The name may also
+include the "*", "[]", and "?" wildcards to match multiple in-tree
+modules. Out-of-tree modules are also supported by specifying the full
+path to the ko file. Wildcards are not supported. The file must follow
+the convention of being named <module_name>.ko (characters ',' and '-'
+are replaced by '_').
+<P>
+
+LPATTERN stands for a source program label. It may also contain "*",
+"[]", and "?" wildcards. PATTERN stands for a string literal that aims
+to identify a point in the program. It is made up of three parts:
+<DL COMPACT>
+<DT>•<DD>
+The first part is the name of a function, as would appear in the
+<I>nm</I>
+
+program's output. This part may use the "*" and "?" wildcarding
+operators to match multiple names.
+<DT>•<DD>
+The second part is optional and begins with the "@" character.
+It is followed by the path to the source file containing the function,
+which may include a wildcard pattern, such as mm/slab*.
+If it does not match as is, an implicit "*/" is optionally added
+<I>before</I>
+
+the pattern, so that a script need only name the last few components
+of a possibly long source directory path.
+<DT>•<DD>
+Finally, the third part is optional if the file name part was given,
+and identifies the line number in the source file preceded by a ":"
+or a "+". The line number is assumed to be an
+absolute line number if preceded by a ":", or relative to the
+declaration line of the function if preceded by a "+".
+All the lines in the function can be matched with ":*".
+A range of lines x through y can be matched with ":x-y". Ranges and
+specific lines can be mixed using commas, e.g. ":x,y-z".
+</DL>
+<P>
+
+As an alternative, PATTERN may be a numeric constant, indicating an
+address. Such an address may be found from symbol tables of the
+appropriate kernel / module object file. It is verified against
+known statement code boundaries, and will be relocated for use at
+run time.
+<P>
+
+In guru mode only, absolute kernel-space addresses may be specified with
+the ".absolute" suffix. Such an address is considered already relocated,
+as if it came from
+<B>/proc/kallsyms</B>,
+
+so it cannot be checked against statement/instruction boundaries.
+<A NAME="lbAM"> </A>
+<H3>CONTEXT VARIABLES</H3>
+
+<P>
+<P>
+
+Many of the source-level context variables, such as function parameters,
+locals, globals visible in the compilation unit, may be visible to
+probe handlers. They may refer to these variables by prefixing their
+name with "$" within the scripts. In addition, a special syntax
+allows limited traversal of structures, pointers, and arrays. More
+syntax allows pretty-printing of individual variables or their groups.
+See also
+<B>@cast</B>.
+
+Note that variables may be inaccessible due to them being paged out,
+or for a few other reasons. See also man
+<I><A HREF="./error::fault.7stap.html">error::fault</A></I>(7stap).
+
+<P>
+<DL COMPACT>
+<DT>$var<DD>
+refers to an in-scope variable "var". If it's an integer-like type,
+it will be cast to a 64-bit int for systemtap script use. String-like
+pointers (char *) may be copied to systemtap string values using the
+<I>kernel_string</I> or <I>user_string</I>
+
+functions.
+<DT>@var("varname")<DD>
+an alternative syntax for
+<I>$varname</I>
+
+<DT>@var("varname@src/file.c")<DD>
+refers to the global (either file local or external) variable
+<I>varname</I>
+
+defined when the file
+<I>src/file.c</I>
+
+was compiled. The CU in which the variable is resolved is the first CU
+in the module of the probe point which matches the given file name at
+the end and has the shortest file name path (e.g. given
+<I>@var(foo@bar/baz.c)</I>
+
+and CUs with file name paths
+<I>src/sub/module/bar/baz.c</I>
+
+and
+<I>src/bar/baz.c</I>
+
+the second CU will be chosen to resolve the (file) global variable
+<I>foo</I>
+
+<DT>$var->field traversal via a structure's or a pointer's field. This<DD>
+generalized indirection operator may be repeated to follow more
+levels. Note that the
+<I>.</I>
+
+operator is not used for plain structure
+members, only
+<I>-></I>
+
+for both purposes. (This is because "." is reserved for string
+concatenation.)
+<DT>$return<DD>
+is available in return probes only for functions that are declared
+with a return value, which can be determined using @defined($return).
+<DT>$var[N]<DD>
+indexes into an array. The index given with a literal number or even
+an arbitrary numeric expression.
+</DL>
+<P>
+
+A number of operators exist for such basic context variable expressions:
+<DL COMPACT>
+<DT>$$vars<DD>
+expands to a character string that is equivalent to
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+sprintf("parm1=%x ... parmN=%x var1=%x ... varN=%x",
+ parm1, ..., parmN, var1, ..., varN)
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+for each variable in scope at the probe point. Some values may be
+printed as
+<I>=?</I>
+
+if their run-time location cannot be found.
+<DT>$$locals<DD>
+expands to a subset of $$vars for only local variables.
+<DT>$$parms<DD>
+expands to a subset of $$vars for only function parameters.
+<DT>$$return<DD>
+is available in return probes only. It expands to a string that
+is equivalent to sprintf("return=%x", $return)
+if the probed function has a return value, or else an empty string.
+<DT>& $EXPR<DD>
+expands to the address of the given context variable expression, if it
+is addressable.
+<DT>@defined($EXPR)<DD>
+expands to 1 or 0 iff the given context variable expression is resolvable,
+for use in conditionals such as
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+@defined($foo->bar) ? $foo->bar : 0
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<DT>$EXPR$<DD>
+expands to a string with all of $EXPR's members, equivalent to
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+sprintf("{.a=%i, .b=%u, .c={...}, .d=[...]}",
+ $EXPR->a, $EXPR->b)
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<DT>$EXPR$$<DD>
+expands to a string with all of $var's members and submembers, equivalent to
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+sprintf("{.a=%i, .b=%u, .c={.x=%p, .y=%c}, .d=[%i, ...]}",
+ $EXPR->a, $EXPR->b, $EXPR->c->x, $EXPR->c->y, $EXPR->d[0])
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+</DL>
+<A NAME="lbAN"> </A>
+<H3>MORE ON RETURN PROBES</H3>
+
+<P>
+<P>
+
+For the kernel ".return" probes, only a certain fixed number of
+returns may be outstanding. The default is a relatively small number,
+on the order of a few times the number of physical CPUs. If many
+different threads concurrently call the same blocking function, such
+as <A HREF="futex.2.html">futex</A>(2) or <A HREF="read.2.html">read</A>(2), this limit could be exceeded, and skipped
+"kretprobes" would be reported by "stap -t". To work around this,
+specify a
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+probe FOO.return.maxactive(NNN)
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+suffix, with a large enough NNN to cover all expected concurrently blocked
+threads. Alternately, use the
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+stap -DKRETACTIVE=NNNN
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+stap command line macro setting to override the default for all
+".return" probes.
+<P>
+<P>
+
+For ".return" probes, context variables other than the "$return" may
+be accessible, as a convenience for a script programmer wishing to
+access function parameters. These values are <B>snapshots</B>
+taken at the time of function entry. Local variables within the
+function are <B>not</B> generally accessible, since those variables did
+not exist in allocated/initialized form at the snapshot moment.
+<P>
+
+In addition, arbitrary entry-time expressions can also be saved for
+".return" probes using the
+<I>@entry(expr)</I>
+
+operator. For example, one can compute the elapsed time of a function:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+probe kernel.function("do_filp_open").return {
+ println( get_timeofday_us() - @entry(get_timeofday_us()) )
+}
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<P>
+
+The following table summarizes how values related to a function
+parameter context variable, a pointer named <B>addr</B>, may be
+accessed from a
+<I>.return</I>
+
+probe.
+
+<TABLE>
+<TR VALIGN=top><TD><B>at-entry value</B></TD><TD>past-exit value</TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD></TD><TD></TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD>$addr</TD><TD><I>not available</I></TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD>$addr->x->y</TD><TD>@cast(@entry($addr),"struct zz")->x->y</TD><TD><BR></TD></TR>
+<TR VALIGN=top><TD>$addr[0]</TD><TD>{kernel,user}_{char,int,...}(& $addr[0])</TD><TD><BR></TD></TR>
+</TABLE>
+
+<P>
+<P>
+<A NAME="lbAO"> </A>
+<H3>DWARFLESS</H3>
+
+In absence of debugging information, entry & exit points of kernel & module
+functions can be probed using the "kprobe" family of probes.
+However, these do not permit looking up the arguments / local variables
+of the function.
+Following constructs are supported :
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+kprobe.function(FUNCTION)
+kprobe.function(FUNCTION).call
+kprobe.function(FUNCTION).return
+kprobe.module(NAME).function(FUNCTION)
+kprobe.module(NAME).function(FUNCTION).call
+kprobe.module(NAME).function(FUNCTION).return
+kprobe.statement.(ADDRESS).absolute
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+
+Probes of type
+<B>function</B>
+
+are recommended for kernel functions, whereas probes of type
+<B>module</B>
+
+are recommended for probing functions of the specified module.
+In case the absolute address of a kernel or module function is known,
+<B>statement</B>
+
+probes can be utilized.
+<P>
+
+Note that
+<I>FUNCTION</I>
+
+and
+<I>MODULE</I>
+
+names
+<B>must not</B>
+
+contain wildcards, or the probe will not be registered.
+Also, statement probes must be run under guru-mode only.
+<P>
+<P>
+<A NAME="lbAP"> </A>
+<H3>USER-SPACE</H3>
+
+Support for user-space probing is available for kernels that are
+configured with the utrace extensions, or have the uprobes facility in
+linux 3.5. (Various kernel build configuration options need to be
+enabled; systemtap will advise if these are missing.)
+<P>
+<P>
+
+There are several forms. First, a non-symbolic probe point:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+process(PID).statement(ADDRESS).absolute
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+is analogous to
+
+kernel.statement(ADDRESS).absolute
+in that both use raw (unverified) virtual addresses and provide
+no $variables. The target PID parameter must identify a running
+process, and ADDRESS should identify a valid instruction address.
+All threads of that process will be probed.
+<P>
+
+Second, non-symbolic user-kernel interface events handled by
+utrace may be probed:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+process(PID).begin
+process("FULLPATH").begin
+process.begin
+process(PID).thread.begin
+process("FULLPATH").thread.begin
+process.thread.begin
+process(PID).end
+process("FULLPATH").end
+process.end
+process(PID).thread.end
+process("FULLPATH").thread.end
+process.thread.end
+process(PID).syscall
+process("FULLPATH").syscall
+process.syscall
+process(PID).syscall.return
+process("FULLPATH").syscall.return
+process.syscall.return
+process(PID).insn
+process("FULLPATH").insn
+process(PID).insn.block
+process("FULLPATH").insn.block
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+
+A
+<B>.begin</B>
+
+probe gets called when new process described by PID or FULLPATH gets created.
+A
+<B>.thread.begin</B>
+
+probe gets called when a new thread described by PID or FULLPATH gets created.
+A
+<B>.end</B>
+
+probe gets called when process described by PID or FULLPATH dies.
+A
+<B>.thread.end</B>
+
+probe gets called when a thread described by PID or FULLPATH dies.
+A
+<B>.syscall</B>
+
+probe gets called when a thread described by PID or FULLPATH makes a
+system call. The system call number is available in the
+<B>$syscall</B>
+
+context variable, and the first 6 arguments of the system call
+are available in the
+<B>$argN</B>
+
+(ex. $arg1, $arg2, ...) context variable.
+A
+<B>.syscall.return</B>
+
+probe gets called when a thread described by PID or FULLPATH returns from a
+system call. The system call number is available in the
+<B>$syscall</B>
+
+context variable, and the return value of the system call is available
+in the
+<B>$return</B>
+
+context variable.
+A
+<B>.insn</B>
+
+probe gets called for every single-stepped instruction of the process described by PID or FULLPATH.
+A
+<B>.insn.block</B>
+
+probe gets called for every block-stepped instruction of the process described by PID or FULLPATH.
+<P>
+
+If a process probe is specified without a PID or FULLPATH, all user
+threads will be probed. However, if systemtap was invoked with the
+<I>-c</I> or <I>-x</I>
+
+options, then process probes are restricted to the process
+hierarchy associated with the target process. If a process probe is
+unspecified (i.e. without a PID or FULLPATH), but with the
+<I>-c</I>
+
+option, the PATH of the
+<I>-c</I>
+
+cmd will be heuristically filled into the process PATH. In that case,
+only command parameters are allowed in the <I>-c</I> command (i.e. no
+command substitution allowed and no occurrences of any of these
+characters: '|&;<>(){}').
+<P>
+<P>
+
+Third, symbolic static instrumentation compiled into programs and
+shared libraries may be
+probed:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+process("PATH").mark("LABEL")
+process("PATH").provider("PROVIDER").mark("LABEL")
+process(PID).mark("LABEL")
+process(PID).provider("PROVIDER").mark("LABEL")
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+
+A
+<B>.mark</B>
+
+probe gets called via a static probe which is defined in the
+application by STAP_PROBE1(PROVIDER,LABEL,arg1), which are macros defined in
+<B>sys/sdt.h</B>.
+
+The PROVIDER is an arbitrary application identifier, LABEL is the
+marker site identifier, and arg1 is the integer-typed argument.
+STAP_PROBE1 is used for probes with 1 argument, STAP_PROBE2 is used
+for probes with 2 arguments, and so on. The arguments of the probe
+are available in the context variables $arg1, $arg2, ... An
+alternative to using the STAP_PROBE macros is to use the dtrace script
+to create custom macros. Additionally, the variables $$name and
+$$provider are available as parts of the probe point name. The
+<B>sys/sdt.h </B>
+
+macro names DTRACE_PROBE* are available as aliases for STAP_PROBE*.
+<P>
+<P>
+
+Finally, full symbolic source-level probes in user-space programs and
+shared libraries are supported. These are exactly analogous to the
+symbolic DWARF-based kernel/module probes described above. They
+expose the same sorts of context $variables for function parameters,
+local variables, and so on.
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+process("PATH").function("NAME")
+process("PATH").statement("*@FILE.c:123")
+process("PATH").plt("NAME")
+process("PATH").library("PATH").plt("NAME")
+process("PATH").library("PATH").function("NAME")
+process("PATH").library("PATH").statement("*@FILE.c:123")
+process("PATH").function("*").return
+process("PATH").function("myfun").label("foo")
+process("PATH").function("foo").callee("bar")
+process("PATH").plt("NAME").return
+process(PID).function("NAME")
+process(PID).statement("*@FILE.c:123")
+process(PID).plt("NAME")
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<P>
+
+Note that for all process probes,
+<I>PATH</I>
+
+names refer to executables that are searched the same way shells do: relative
+to the working directory if they contain a "/" character, otherwise in
+<B>$PATH</B>.
+
+If PATH names refer to scripts, the actual interpreters (specified in the
+script in the first line after the #! characters) are probed.
+<P>
+<P>
+
+If PATH is a process component parameter referring to shared libraries
+then all processes that map it at runtime would be selected for probing.
+If PATH is a library component parameter referring to shared libraries
+then the process specified by the process component would be selected.
+Note that the PATH pattern in a library component will always apply to
+libraries statically determined to be in use by the process. However,
+you may also specify the full path to any library file even if not
+statically needed by the process.
+<P>
+<P>
+
+A .plt probe will probe functions in the program linkage table
+corresponding to the rest of the probe point. .plt can be specified
+as a shorthand for .plt("*"). The symbol name is available as a
+$$name context variable; function arguments are not available, since
+PLTs are processed without debuginfo. A .plt.return probe places a
+probe at the moment <B>after</B> the return from the named
+function.
+<P>
+<P>
+
+If the PATH string contains wildcards as in the MPATTERN case, then
+standard globbing is performed to find all matching paths. In this
+case, the
+<B>$PATH</B>
+
+environment variable is not used.
+<P>
+<P>
+
+If systemtap was invoked with the
+<I>-c</I> or <I>-x</I>
+
+options, then process probes are restricted to the process
+hierarchy associated with the target process.
+<P>
+<A NAME="lbAQ"> </A>
+<H3>JAVA</H3>
+
+Support for probing Java methods is available using Byteman as a
+backend. Byteman is an instrumentation tool from the JBoss project
+which systemtap can use to monitor invocations for a specific method
+or line in a Java program.
+<P>
+
+Systemtap does so by generating a Byteman script listing the probes to
+instrument and then invoking the Byteman
+<I>bminstall</I>
+
+utility.
+<P>
+
+This Java instrumentation support is currently a prototype feature
+with major limitations. Moreover, Java probing currently does not
+work across users; the stap script must run (with appropriate
+permissions) under the same user that the Java process being
+probed. (Thus a stap script under root currently cannot probe Java
+methods in a non-root-user Java process.)
+<P>
+<P>
+
+The first probe type refers to Java processes by the name of the Java process:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+java("PNAME").class("CLASSNAME").method("PATTERN")
+java("PNAME").class("CLASSNAME").method("PATTERN").return
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+The PNAME argument must be a pre-existing jvm pid, and be identifiable
+via a jps listing.
+<P>
+
+The PATTERN parameter specifies the signature of the Java method to
+probe. The signature must consist of the exact name of the method,
+followed by a bracketed list of the types of the arguments, for
+instance "myMethod(int,double,Foo)". Wildcards are not supported.
+<P>
+
+The probe can be set to trigger at a specific line within the method
+by appending a line number with colon, just as in other types of
+probes: "myMethod(int,double,Foo):245".
+<P>
+
+The CLASSNAME parameter identifies the Java class the method belongs
+to, either with or without the package qualification. By default, the
+probe only triggers on descendants of the class that do not override
+the method definition of the original class. However, CLASSNAME can
+take an optional caret prefix, as in
+<I>^org.my.MyClass,</I>
+
+which specifies that the probe should also trigger on all descendants
+of MyClass that override the original method. For instance, every method
+with signature foo(int) in program org.my.MyApp can be probed at once using
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+java("org.my.MyApp").class("^java.lang.Object").method("foo(int)")
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+
+The second probe type works analogously, but refers to Java processes by PID:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+java(PID).class("CLASSNAME").method("PATTERN")
+java(PID).class("CLASSNAME").method("PATTERN").return
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+(PIDs for an already running process can be obtained using the
+<I><A HREF="jps.1.html">jps</A></I>(1)
+
+utility.)
+<P>
+
+Context variables defined within java probes include
+<I>$arg1</I>
+
+through
+<I>$arg10</I>
+
+(for up to the first 10 arguments of a method), represented as integers or strings.
+<P>
+<A NAME="lbAR"> </A>
+<H3>PROCFS</H3>
+
+<P>
+These probe points allow procfs "files" in
+/proc/systemtap/MODNAME to be created, read and written using a
+permission that may be modified using the proper umask value. Default permissions are 0400 for read
+probes, and 0200 for write probes. If both a read and write probe are being
+used on the same file, a default permission of 0600 will be used.
+Using procfs.umask(0040).read would
+result in a 0404 permission set for the file.
+(<I>MODNAME</I>
+
+is the name of the systemtap module). The
+<I>proc</I>
+
+filesystem is a pseudo-filesystem which is used as an interface to
+kernel data structures. There are several probe point variants supported
+by the translator:
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+procfs("PATH").read
+procfs("PATH").umask(UMASK).read
+procfs("PATH").read.maxsize(MAXSIZE)
+procfs("PATH").umask(UMASK).maxsize(MAXSIZE)
+procfs("PATH").write
+procfs("PATH").umask(UMASK).write
+procfs.read
+procfs.umask(UMASK).read
+procfs.read.maxsize(MAXSIZE)
+procfs.umask(UMASK).read.maxsize(MAXSIZE)
+procfs.write
+procfs.umask(UMASK).write
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<I>PATH</I>
+
+is the file name (relative to /proc/systemtap/MODNAME) to be created.
+If no
+<I>PATH</I>
+
+is specified (as in the last two variants above),
+<I>PATH</I>
+
+defaults to "command".
+<P>
+
+When a user reads /proc/systemtap/MODNAME/PATH, the corresponding
+procfs
+<I>read</I>
+
+probe is triggered. The string data to be read should be assigned to
+a variable named
+<I>$value</I>,
+
+like this:
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+procfs("PATH").read { $value = "100\n" }
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+
+When a user writes into /proc/systemtap/MODNAME/PATH, the
+corresponding procfs
+<I>write</I>
+
+probe is triggered. The data the user wrote is available in the
+string variable named
+<I>$value</I>,
+
+like this:
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+procfs("PATH").write { printf("user wrote: %s", $value) }
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+
+<I>MAXSIZE</I>
+
+is the size of the procfs read buffer. Specifying
+<I>MAXSIZE</I>
+
+allows larger procfs output. If no
+<I>MAXSIZE</I>
+
+is specified, the procfs read buffer defaults to
+<I>STP_PROCFS_BUFSIZE</I>
+
+(which defaults to
+<I>MAXSTRINGLEN</I>,
+
+the maximum length of a string).
+If setting the procfs read buffers for more than one file is needed,
+it may be easiest to override the
+<I>STP_PROCFS_BUFSIZE</I>
+
+definition.
+Here's an example of using
+<I>MAXSIZE</I>:
+
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+procfs.read.maxsize(1024) {
+ $value = "long string..."
+ $value .= "another long string..."
+ $value .= "another long string..."
+ $value .= "another long string..."
+}
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<A NAME="lbAS"> </A>
+<H3>NETFILTER HOOKS</H3>
+
+<P>
+These probe points allow observation of network packets using the
+netfilter mechanism. A netfilter probe in systemtap corresponds to a
+netfilter hook function in the original netfilter probes API. It is
+probably more convenient to use
+<I><A HREF="./tapset::netfilter.3stap.html">tapset::netfilter</A></I>(3stap),
+
+which wraps the primitive netfilter hooks and does the work of
+extracting useful information from the context variables.
+<P>
+<P>
+
+There are several probe point variants supported by the translator:
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+netfilter.hook("HOOKNAME").pf("PROTOCOL_F")
+netfilter.pf("PROTOCOL_F").hook("HOOKNAME")
+netfilter.hook("HOOKNAME").pf("PROTOCOL_F").priority("PRIORITY")
+netfilter.pf("PROTOCOL_F").hook("HOOKNAME").priority("PRIORITY")
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<P>
+
+<I>PROTOCOL_F</I>
+
+is the protocol family to listen for, currently one of
+<I>NFPROTO_IPV4,</I>
+
+<I>NFPROTO_IPV6,</I>
+
+<I>NFPROTO_ARP,</I>
+
+or
+<I>NFPROTO_BRIDGE.</I>
+
+<P>
+<P>
+
+<I>HOOKNAME</I>
+
+is the point, or 'hook', in the protocol stack at which to intercept
+the packet. The available hook names for each protocol family are
+taken from the kernel header files <<A HREF="file:///usr/include/linux/netfilter_ipv4.h">linux/netfilter_ipv4.h</A>>,
+<<A HREF="file:///usr/include/linux/netfilter_ipv6.h">linux/netfilter_ipv6.h</A>>, <<A HREF="file:///usr/include/linux/netfilter_arp.h">linux/netfilter_arp.h</A>> and
+<<A HREF="file:///usr/include/linux/netfilter_bridge.h">linux/netfilter_bridge.h</A>>. For instance, allowable hook names for
+<I>NFPROTO_IPV4</I>
+
+are
+<I>NF_INET_PRE_ROUTING,</I>
+
+<I>NF_INET_LOCAL_IN,</I>
+
+<I>NF_INET_FORWARD,</I>
+
+<I>NF_INET_LOCAL_OUT,</I>
+
+and
+<I>NF_INET_POST_ROUTING.</I>
+
+<P>
+<P>
+
+<I>PRIORITY</I>
+
+is an integer priority giving the order in which the probe point
+should be triggered relative to any other netfilter hook functions
+which trigger on the same packet. Hook functions execute on each
+packet in order from smallest priority number to largest priority number. If no
+<I>PRIORITY</I>
+
+is specified (as in the first two probe point variants above),
+<I>PRIORITY</I>
+
+defaults to "0".
+<P>
+There are a number of predefined priority names of the form
+<I>NF_IP_PRI_*</I>
+
+and
+<I>NF_IP6_PRI_*</I>
+
+which are defined in the kernel header files <<A HREF="file:///usr/include/linux/netfilter_ipv4.h">linux/netfilter_ipv4.h</A>> and <<A HREF="file:///usr/include/linux/netfilter_ipv6.h">linux/netfilter_ipv6.h</A>> respectively. The script is permitted to use these
+instead of specifying an integer priority. (The probe points for
+<I>NFPROTO_ARP</I>
+
+and
+<I>NFPROTO_BRIDGE</I>
+
+currently do not expose any named hook priorities to the script writer.)
+Thus, allowable ways to specify the priority include:
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+priority("255")
+priority("NF_IP_PRI_SELINUX_LAST")
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+A script using guru mode is permitted to specify any identifier or
+number as the parameter for hook, pf, and priority. This feature
+should be used with caution, as the parameter is inserted verbatim into
+the C code generated by systemtap.
+<P>
+The netfilter probe points define the following context variables:
+<DL COMPACT>
+<DT><I>$hooknum</I>
+
+<DD>
+The hook number.
+<DT><I>$skb</I>
+
+<DD>
+The address of the sk_buff struct representing the packet. See
+<<A HREF="file:///usr/include/linux/skbuff.h">linux/skbuff.h</A>> for details on how to use this struct, or
+alternatively use the tapset
+<I><A HREF="./tapset::netfilter.3stap.html">tapset::netfilter</A></I>(3stap)
+
+for easy access to key information.
+<P>
+<DT><I>$in</I>
+
+<DD>
+The address of the net_device struct representing the network device
+on which the packet was received (if any). May be 0 if the device is
+unknown or undefined at that stage in the protocol stack.
+<P>
+<DT><I>$out</I>
+
+<DD>
+The address of the net_device struct representing the network device
+on which the packet will be sent (if any). May be 0 if the device is
+unknown or undefined at that stage in the protocol stack.
+<P>
+<DT><I>$verdict</I>
+
+<DD>
+(Guru mode only.) Assigning one of the verdict values defined in
+<<A HREF="file:///usr/include/linux/netfilter.h">linux/netfilter.h</A>> to this variable alters the further progress of
+the packet through the protocol stack. For instance, the following
+guru mode script forces all ipv6 network packets to be dropped:
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+probe netfilter.pf("NFPROTO_IPV6").hook("NF_IP6_PRE_ROUTING") {
+ $verdict = 0 /* nf_drop */
+}
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+For convenience, unlike the primitive probe points discussed here, the
+probes defined in
+<I><A HREF="./tapset::netfilter.3stap.html">tapset::netfilter</A></I>(3stap)
+
+export the lowercase names of the verdict constants (e.g. NF_DROP
+becomes nf_drop) as local variables.
+<P>
+</DL>
+<A NAME="lbAT"> </A>
+<H3>KERNEL TRACEPOINTS</H3>
+
+<P>
+This family of probe points hooks up to static probing tracepoints
+inserted into the kernel or modules. As with markers, these
+tracepoints are special macro calls inserted by kernel developers to
+make probing faster and more reliable than with DWARF-based probes,
+and DWARF debugging information is not required to probe tracepoints.
+Tracepoints have an extra advantage of more strongly-typed parameters
+than markers.
+<P>
+Tracepoint probes look like:
+<B>kernel.trace(name)</B>.
+
+The tracepoint name string, which may contain the usual wildcard
+characters, is matched against the names defined by the kernel
+developers in the tracepoint header files.
+<P>
+The handler associated with a tracepoint-based probe may read the
+optional parameters specified at the macro call site. These are
+named according to the declaration by the tracepoint author. For
+example, the tracepoint probe
+<B>kernel.trace(sched_switch)</B>
+
+provides the parameters
+<B>$rq</B>, <B>$prev</B>, and <B>$next</B>.
+
+If the parameter is a complex type, as in a struct pointer, then a
+script can access fields with the same syntax as DWARF $target
+variables. Also, tracepoint parameters cannot be modified, but in
+guru-mode a script may modify fields of parameters.
+<P>
+The name of the tracepoint is available in
+<B>$$name</B>,
+
+and a string of name=value pairs for all parameters of the tracepoint
+is available in
+<B>$$vars</B> or <B>$$parms</B>.
+
+<P>
+<A NAME="lbAU"> </A>
+<H3>KERNEL MARKERS (OBSOLETE)</H3>
+
+<P>
+This family of probe points hooks up to an older style of static
+probing markers inserted into older kernels or modules. These markers
+are special STAP_MARK macro calls inserted by kernel developers to
+make probing faster and more reliable than with DWARF-based probes.
+Further, DWARF debugging information is
+<I>not</I>
+
+required to probe markers.
+<P>
+Marker probe points begin with
+<B>kernel</B>.
+
+The next part names the marker itself:
+<B>mark(name)</B>.
+
+The marker name string, which may contain the usual wildcard characters,
+is matched against the names given to the marker macros when the kernel
+and/or module was compiled. Optionally, you can specify
+<B>format(format)</B>.
+
+Specifying the marker format string allows differentiation between two
+markers with the same name but different marker format strings.
+<P>
+The handler associated with a marker-based probe may read the
+optional parameters specified at the macro call site. These are
+named
+<B>$arg1</B> through <B>$argNN</B>,
+
+where NN is the number of parameters supplied by the macro. Number
+and string parameters are passed in a type-safe manner.
+<P>
+The marker format string associated with a marker is available in
+<B>$format</B>.
+
+And also the marker name string is available in
+<B>$name</B>.
+
+<P>
+<A NAME="lbAV"> </A>
+<H3>HARDWARE BREAKPOINTS</H3>
+
+This family of probes is used to set hardware watchpoints for a given
+<BR> (global) kernel symbol. The probes take three components as inputs :
+<P>
+1. The
+<B>virtual</B>address<B>/</B>name
+
+of the kernel symbol to be traced is supplied as argument to this class
+of probes. ( Probes for only data segment variables are supported. Probing
+local variables of a function cannot be done.)
+<P>
+2. Nature of access to be probed :
+a.
+<I>.write</I>
+
+probe gets triggered when a write happens at the specified address/symbol
+name.
+b.
+<I>rw</I>
+
+probe is triggered when either a read or write happens.
+<P>
+3.
+<B>.length</B>
+
+(optional)
+Users have the option of specifying the address interval to be probed
+using "length" constructs. The user-specified length gets approximated
+to the closest possible address length that the architecture can
+support. If the specified length exceeds the limits imposed by
+architecture, an error message is flagged and probe registration fails.
+Wherever 'length' is not specified, the translator requests a hardware
+breakpoint probe of length 1. It should be noted that the "length"
+construct is not valid with symbol names.
+<P>
+Following constructs are supported :
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+probe kernel.data(ADDRESS).write
+probe kernel.data(ADDRESS).rw
+probe kernel.data(ADDRESS).length(LEN).write
+probe kernel.data(ADDRESS).length(LEN).rw
+probe kernel.data("SYMBOL_NAME").write
+probe kernel.data("SYMBOL_NAME").rw
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+This set of probes make use of the debug registers of the processor,
+which is a scarce resource. (4 on x86 , 1 on powerpc ) The script
+translation flags a warning if a user requests more hardware breakpoint probes
+than the limits set by architecture. For example,a pass-2 warning is flashed
+when an input script requests 5 hardware breakpoint probes on an x86
+system while x86 architecture supports a maximum of 4 breakpoints.
+Users are cautioned to set probes judiciously.
+<P>
+<A NAME="lbAW"> </A>
+<H3>PERF</H3>
+
+<P>
+This family of probe points interfaces to the kernel "perf event"
+infrastructure for controlling hardware performance counters.
+The events being attached to are described by the "type",
+"config" fields of the
+<I>perf_event_attr</I>
+
+structure, and are sampled at an interval governed by the
+"sample_period" field.
+<P>
+These fields are made available to systemtap scripts using
+the following syntax:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+probe perf.type(NN).config(MM).sample(XX)
+probe perf.type(NN).config(MM)
+probe perf.type(NN).config(MM).process("PROC")
+probe perf.type(NN).config(MM).counter("COUNTER")
+probe perf.type(NN).config(MM).process("PROC").counter("COUNTER")
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+The systemtap probe handler is called once per XX increments
+of the underlying performance counter. The default sampling
+count is 1000000.
+The range of valid type/config is described by the
+<I><A HREF="perf_event_open.2.html">perf_event_open</A></I>(2)
+
+system call, and/or the
+<I>linux/perf_event.h</I>
+
+file. Invalid combinations or exhausted hardware counter resources
+result in errors during systemtap script startup. Systemtap does
+not sanity-check the values: it merely passes them through to
+the kernel for error- and safety-checking. By default the perf event
+probe is systemwide unless .process is specified, which will bind the
+probe to a specific task. If the name is omitted then it
+is inferred from the stap -c argument. A perf event can be read on
+demand using .counter. The body of the perf probe handler will not be
+invoked for a .counter probe; instead, the counter is read in a user
+space probe via:
+<DL COMPACT>
+<DT><BR> process("PROCESS").statement("<A HREF="mailto:func@file">func@file</A>") {stat <<< @perf("NAME")} <DD>
+<P>
+<P>
+</DL>
+<A NAME="lbAX"> </A>
+<H2>EXAMPLES</H2>
+
+<P>
+
+Here are some example probe points, defining the associated events.
+<DL COMPACT>
+<DT>begin, end, end<DD>
+refers to the startup and normal shutdown of the session. In this
+case, the handler would run once during startup and twice during
+shutdown.
+<DT>timer.jiffies(1000).randomize(200)<DD>
+refers to a periodic interrupt, every 1000 +/- 200 jiffies.
+<DT>kernel.function("*init*"), kernel.function("*exit*")<DD>
+refers to all kernel functions with "init" or "exit" in the name.
+<DT>kernel.function("*@kernel/time.c:240")<DD>
+refers to any functions within the "kernel/time.c" file that span
+line 240.
+
+Note
+that this is
+<B>not</B>
+
+a probe at the statement at that line number. Use the
+
+kernel.statement
+probe instead.
+<DT>kernel.trace("sched_*")<DD>
+refers to all scheduler-related (really, prefixed) tracepoints in
+the kernel.
+<DT>kernel.mark("getuid")<DD>
+refers to an obsolete STAP_MARK(getuid, ...) macro call in the kernel.
+<DT>module("usb*").function("*sync*").return<DD>
+refers to the moment of return from all functions with "sync" in the
+name in any of the USB drivers.
+<DT>kernel.statement(0xc0044852)<DD>
+refers to the first byte of the statement whose compiled instructions
+include the given address in the kernel.
+<DT>kernel.statement("*@kernel/time.c:296")<DD>
+refers to the statement of line 296 within "kernel/time.c".
+<DT>kernel.statement("bio_init@fs/bio.c+3")<DD>
+refers to the statement at line bio_init+3 within "fs/bio.c".
+<DT>kernel.data("pid_max").write<DD>
+refers to a hardware breakpoint of type "write" set on pid_max
+<DT>syscall.*.return<DD>
+refers to the group of probe aliases with any name in the third position
+<P>
+</DL>
+<A NAME="lbAY"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1),
+<I>probe::*</I>(3stap),
+<I>tapset::*</I>(3stap)
+
+
+</PRE>
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SYNTAX</A><DD>
+<DT><A HREF="#lbAE">DWARF DEBUGINFO</A><DD>
+<DT><A HREF="#lbAF">ON-THE-FLY ARMING</A><DD>
+<DT><A HREF="#lbAG">PROBE POINT FAMILIES</A><DD>
+<DL>
+<DT><A HREF="#lbAH">BEGIN/END/ERROR</A><DD>
+<DT><A HREF="#lbAI">NEVER</A><DD>
+<DT><A HREF="#lbAJ">SYSCALL and ND_SYSCALL</A><DD>
+<DT><A HREF="#lbAK">TIMERS</A><DD>
+<DT><A HREF="#lbAL">DWARF</A><DD>
+<DT><A HREF="#lbAM">CONTEXT VARIABLES</A><DD>
+<DT><A HREF="#lbAN">MORE ON RETURN PROBES</A><DD>
+<DT><A HREF="#lbAO">DWARFLESS</A><DD>
+<DT><A HREF="#lbAP">USER-SPACE</A><DD>
+<DT><A HREF="#lbAQ">JAVA</A><DD>
+<DT><A HREF="#lbAR">PROCFS</A><DD>
+<DT><A HREF="#lbAS">NETFILTER HOOKS</A><DD>
+<DT><A HREF="#lbAT">KERNEL TRACEPOINTS</A><DD>
+<DT><A HREF="#lbAU">KERNEL MARKERS (OBSOLETE)</A><DD>
+<DT><A HREF="#lbAV">HARDWARE BREAKPOINTS</A><DD>
+<DT><A HREF="#lbAW">PERF</A><DD>
+</DL>
+<DT><A HREF="#lbAX">EXAMPLES</A><DD>
+<DT><A HREF="#lbAY">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of STAPRUN</TITLE>
+</HEAD><BODY>
+<H1>STAPRUN</H1>
+Section: Maintenance Commands (8)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+staprun - systemtap runtime
+<P>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<BR>
+
+<B>staprun</B>
+
+[
+<I>OPTIONS</I>
+
+]
+<I>MODULE</I>
+
+[
+<I>MODULE-OPTIONS</I>
+
+]
+<P>
+<A NAME="lbAD"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+The
+<I>staprun</I>
+
+program is the back-end of the Systemtap tool. It expects a kernel
+module produced by the front-end
+<I>stap</I>
+
+tool.
+<P>
+
+Splitting the systemtap tool into a front-end and a back-end allows a
+user to compile a systemtap script on a development machine that has
+the kernel development tools (needed to compile the script) and then
+transfer the resulting kernel module to a production machine that
+doesn't have any development tools installed.
+<P>
+
+Please refer to stappaths (7) for the version number, or run
+rpm -q systemtap (fedora/red hat)
+apt-get -v systemtap (ubuntu)
+<P>
+<A NAME="lbAE"> </A>
+<H2>OPTIONS</H2>
+
+The
+<I>staprun</I>
+
+program supports the following options. Any other option
+prints a list of supported options.
+<DL COMPACT>
+<DT><B>-v</B>
+
+<DD>
+Verbose mode. The level of verbosity is also set in the
+<I>SYSTEMTAP_VERBOSE</I>
+
+environment variable.
+<DT><B>-V</B>
+
+<DD>
+Print version number and exit.
+<DT><B>-w</B>
+
+<DD>
+Suppress warnings from the script.
+<DT><B>-u</B>
+
+<DD>
+Load the uprobes.ko module.
+<DT><B>-c CMD</B>
+
+<DD>
+Command CMD will be run and the
+<I>staprun</I>
+
+program will exit when CMD
+does. The '_stp_target' variable will contain the pid for CMD.
+<DT><B>-x PID</B>
+
+<DD>
+The '_stp_target' variable will be set to PID.
+<DT><B>-o FILE</B>
+
+<DD>
+Send output to FILE. If the module uses bulk mode, the output will
+be in percpu files FILE_x(FILE_cpux in background and bulk mode)
+where 'x' is the cpu number. This supports <A HREF="strftime.3.html">strftime</A>(3) formats
+for FILE.
+<DT><B>-b BUFFER_SIZE</B>
+
+<DD>
+The systemtap module will specify a buffer size.
+Setting one here will override that value. The value should be
+an integer between 1 and 4095 which be assumed to be the
+buffer size in MB. That value will be per-cpu if bulk mode is used.
+<DT><B>-L</B>
+
+<DD>
+Load module and start probes, then detach from the module leaving the
+probes running. The module can be attached to later by using the
+<B>-A</B>
+
+option.
+<DT><B>-A</B>
+
+<DD>
+Attach to loaded systemtap module.
+<DT><B>-C WHEN</B>
+
+<DD>
+Control coloring of error messages. WHEN must be either
+
+"never", "always", or "auto"
+
+(i.e. enable only if at a terminal). If the option is missing, then "auto"
+is assumed. Colors can be modified using the SYSTEMTAP_COLORS environment
+variable. See the
+<I><A HREF="stap.1.html">stap</A></I>(1)
+
+manual page for more information on syntax and behaviour.
+<DT><B>-d</B>
+
+<DD>
+Delete a module. Only detached or unused modules
+the user has permission to access will be deleted. Use "*"
+(quoted) to delete all unused modules.
+<DT><B>-D</B>
+
+<DD>
+Run staprun in background as a daemon and show it's pid.
+<DT><B>-R</B>
+
+<DD>
+Rename the module to a unique name before inserting it.
+<DT><B>-r N:URI</B>
+
+<DD>
+Pass the given number and URI data to the tapset functions
+remote_id() and remote_uri().
+<DT><B>-S</B><I> size[,N]</I>
+
+<DD>
+Sets the maximum size of output file and the maximum number of output files.
+If the size of output file will exceed
+<B>size</B>
+
+, systemtap switches output file to the next file. And if the number of
+output files exceed
+<B>N</B>
+
+, systemtap removes the oldest output file. You can omit the second argument.
+<DT><B>-T timeout</B>
+
+<DD>
+Sets maximum time reader thread will wait before dumping trace buffer. Value is
+in ms, default is 200ms. Setting this to a high value decreases number of stapio
+wake-ups, allowing deeper sleep for embedded platforms. But it impacts interactivity
+on terminal as traces are dumped less often in case of low throughput.
+There is no interactivity or performance impact for high throughput as trace is
+dumped when buffer is full, before this timeout expires.
+<DT><B>var1=val</B>
+
+<DD>
+Sets the value of global variable var1 to val. Global variables contained
+within a module are treated as module options and can be set from the
+staprun command line.
+<P>
+</DL>
+<A NAME="lbAF"> </A>
+<H2>ARGUMENTS</H2>
+
+<B>MODULE</B>
+
+is either a module path or a module name. If it is a module name,
+the module will be looked for in the following directory
+(where 'VERSION' is the output of "uname -r"):
+<DL COMPACT>
+<DT><DD>
+/lib/modules/VERSION/systemtap
+</DL>
+<P>
+
+
+Any additional arguments on the command line are passed to the
+module. One use of these additional module arguments is to set the value
+of global variables declared within the module.
+<P>
+
+<P>
+ $ stap -p4 -m mod1 -e 'global var1="foo"; probe begin{printf("%s\n", var1); exit()}'
+<BR>
+
+<P>
+
+Running this with an additional module argument:
+<P>
+
+<P>
+ $ staprun mod1.ko var1="HelloWorld"
+<BR>
+
+ HelloWorld
+<P>
+
+Spaces and exclamation marks currently cannot be passed into global variables
+this way.
+<P>
+<A NAME="lbAG"> </A>
+<H2>EXAMPLES</H2>
+
+See the
+<I><A HREF="stapex.3stap.html">stapex</A></I>(3stap)
+
+manual page for a collection of sample scripts.
+<P>
+
+Here is a very basic example of how to use
+<I>staprun.</I>
+
+First, use
+<I>stap</I>
+
+to compile a script. The
+<I>stap</I>
+
+program will report the pathname to the resulting module.
+<P>
+
+ $ stap -p4 -e 'probe begin { printf("Hello World!\n"); exit() }'
+<BR>
+
+ /home/user/.systemtap/cache/85/stap_8553d83f78c_265.ko
+<P>
+
+Run
+<I>staprun</I>
+
+with the pathname to the module as an argument.
+<P>
+
+ $ staprun /home/user/.systemtap/cache/85/stap_8553d83f78c_265.ko
+<BR>
+
+ Hello World!
+<A NAME="lbAH"> </A>
+<H2>MODULE DETACHING AND ATTACHING</H2>
+
+After the
+<I>staprun</I>
+
+program installs a Systemtap kernel module, users can detach from the
+kernel module and reattach to it later. The
+<B>-L</B>
+
+option loads the module and automatically detaches. Users can also
+detach from the kernel module interactively by sending the SIGQUIT
+signal from the keyboard (typically by typing Ctrl-\).
+<P>
+
+To reattach to a kernel module, the
+<I>staprun</I>
+
+<B>-A</B>
+
+option would be used.
+<P>
+<A NAME="lbAI"> </A>
+<H2>FILE SWITCHING BY SIGNAL</H2>
+
+After
+<I>staprun</I>
+
+launched the
+<I>stapio</I>
+
+program, users can command it to switch output file to next file when it
+outputs to file(s) (running staprun with
+<B>-o</B>
+
+option) by sending a
+<B>SIGUSR2</B>
+
+signal to the
+<I>stapio</I>
+
+process. When it receives SIGUSR2, it will switch output file to
+new file with suffix
+<I>.N</I>
+
+where N is the sequential number.
+For example,
+<P>
+
+ $ staprun -o foo ...
+<P>
+
+outputs trace logs to
+<I>foo</I>
+
+and if it receives
+<B>SIGUSR2</B>
+
+signal, it switches output to
+<I>foo.1</I>
+
+file. And receiving
+<B>SIGUSR2</B>
+
+again, it switches to
+<I>foo.2</I>
+
+file.
+<P>
+<A NAME="lbAJ"> </A>
+<H2>SAFETY AND SECURITY</H2>
+
+Systemtap, in the default kernel-module runtime mode, is an
+administrative tool. It exposes kernel internal data structures and
+potentially private user information. See the
+<I><A HREF="stap.1.html">stap</A></I>(1)
+
+manual page for additional information on safety and security.
+<P>
+
+To increase system security, users of systemtap must be root, or in the
+<I>staprun</I>
+
+group in order to execute this setuid
+<I>staprun</I>
+
+program.
+A user may select a particular privilege level with the stap
+<I>--privilege=</I>
+
+option, which
+<I>staprun</I>
+
+will later enforce.
+<DL COMPACT>
+<DT>stapdev<DD>
+Members of the
+<I>stapdev</I>
+
+group can write and load script modules with root-equivalent
+privileges, without particular security constraints. (Many safety
+constraints remain.)
+<DT>stapsys<DD>
+Members of the
+<I>stapsys</I>
+
+group have almost all the privileges of
+<I>stapdev</I>,
+
+except for guru mode constructs.
+<DT>staprun<DD>
+Members only of the
+<I>stapusr</I>
+
+group may any-privileged modules placed into the /lib/modules/VERSION/systemtap
+by the system administrator.
+<DT>staprun<DD>
+Members only of the
+<I>stapusr</I>
+
+group may also write and load low-privilege script modules, which are normally
+limited to manipulating their own processes (and not the kernel nor other users'
+processes).
+</DL>
+<P>
+
+Part of the privilege enforcement mechanism may require using a
+stap-server and administrative trust in its cryptographic signer; see the
+<I><A HREF="stap-server.8.html">stap-server</A></I>(8)
+
+manual page for a for more information.
+<P>
+<P>
+
+On a kernel with FIPS mode enabled, staprun normally refuses to attempt to
+load systemtap-generated kernel modules. This is because on some kernels,
+this results in a panic. If your kernel includes corrections such as
+linux commit #002c77a48b47, then you can force staprun to attempt module
+loads anyway, by setting the
+<B>STAP_FIPS_OVERRIDE</B>
+
+environment variable to any value.
+<P>
+<A NAME="lbAK"> </A>
+<H2>FILES</H2>
+
+<DL COMPACT>
+<DT>/lib/modules/VERSION/systemtap<DD>
+If MODULE is a module name, the module will be looked for in this directory.
+Users who are only in the
+<I>'stapusr'</I>
+
+group can install modules
+located in this directory. This directory must be owned by the root
+user and not be world writable.
+<P>
+</DL>
+<A NAME="lbAL"> </A>
+<H2>SEE ALSO</H2>
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap),
+
+<I><A HREF="stap-server.8.html">stap-server</A></I>(8),
+
+<I><A HREF="stapdyn.8.html">stapdyn</A></I>(8),
+
+<I><A HREF="stapex.3stap.html">stapex</A></I>(3stap)
+
+<P>
+<A NAME="lbAM"> </A>
+<H2>BUGS</H2>
+
+Use the Bugzilla link of the project web page or our mailing list.
+
+<B><A HREF="http://sourceware.org/systemtap/">http://sourceware.org/systemtap/</A></B>, <B><<A HREF="mailto:systemtap@sourceware.org">systemtap@sourceware.org</A>></B>.
+
+
+<P>
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAE">OPTIONS</A><DD>
+<DT><A HREF="#lbAF">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAG">EXAMPLES</A><DD>
+<DT><A HREF="#lbAH">MODULE DETACHING AND ATTACHING</A><DD>
+<DT><A HREF="#lbAI">FILE SWITCHING BY SIGNAL</A><DD>
+<DT><A HREF="#lbAJ">SAFETY AND SECURITY</A><DD>
+<DT><A HREF="#lbAK">FILES</A><DD>
+<DT><A HREF="#lbAL">SEE ALSO</A><DD>
+<DT><A HREF="#lbAM">BUGS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of STAPSH</TITLE>
+</HEAD><BODY>
+<H1>STAPSH</H1>
+Section: Maintenance Commands (8)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+stapsh
+<P>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<P>
+<BR>
+
+<B>stapsh</B>
+
+<P>
+<A NAME="lbAD"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+The stapsh executable is used by the stap
+<I>--remote</I>
+
+functionality, as a wrapper shell on the remote machines.
+It is not intended to be run directly by users.
+<P>
+<A NAME="lbAE"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1)
+
+</PRE><A NAME="lbAF"> </A>
+<H2>BUGS</H2>
+
+Use the Bugzilla link of the project web page or our mailing list.
+
+<B><A HREF="http://sourceware.org/systemtap/">http://sourceware.org/systemtap/</A></B>,<B><<A HREF="mailto:systemtap@sourceware.org">systemtap@sourceware.org</A>></B>.
+
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAE">SEE ALSO</A><DD>
+<DT><A HREF="#lbAF">BUGS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of STAPVARS</TITLE>
+</HEAD><BODY>
+<H1>STAPVARS</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+stapvars - systemtap variables
+<P>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+The following sections enumerate the public variables provided by
+standard tapsets installed, (the installation path is show in the
+stappaths (7) manual page). Each variable is described with a
+type, and its behavior/restrictions.
+The syntax is the same as printed with the
+<I>stap</I> option <I>-p2</I>.
+
+Examples:
+<P>
+<DL COMPACT>
+<DT>example1:long<DD>
+Variable "example1" contains an integer.
+<P>
+<DT>example2:string [long]<DD>
+Variable "example2" is an array of strings, indexed by integers.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H3>ARGV</H3>
+
+<P>
+<DL COMPACT>
+<DT>argc:long<DD>
+Contains the value of the
+
+$#
+value: the number of command line arguments passed to the systemtap script.
+It is initialized with an implicit begin(-1) probe.
+<P>
+<DT>argv:string [long]<DD>
+Contains each command line argument as a string. argv[1] will equal @1 if
+there was at least one command line argument. Arguments beyond #32 are not
+transcribed, and produce a warning message within the begin(-1) probe that
+initializes this array.
+<P>
+</DL>
+<A NAME="lbAE"> </A>
+<H3>NULL</H3>
+
+<P>
+<DL COMPACT>
+<DT>NULL:long<DD>
+Simply defined as the number 0.
+<P>
+</DL>
+<A NAME="lbAF"> </A>
+<H2>FILES</H2>
+
+<DL COMPACT>
+<DT>More files and their corresponding paths can be found in the stappaths (7) manual page.<DD>
+<P>
+</DL>
+<A NAME="lbAG"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1)
+<I><A HREF="stappaths.7.html">stappaths</A></I>(7)
+
+</PRE>
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DL>
+<DT><A HREF="#lbAD">ARGV</A><DD>
+<DT><A HREF="#lbAE">NULL</A><DD>
+</DL>
+<DT><A HREF="#lbAF">FILES</A><DD>
+<DT><A HREF="#lbAG">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of STAPVIRT</TITLE>
+</HEAD><BODY>
+<H1>STAPVIRT</H1>
+Section: User Commands (1)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+stapvirt - prepare libvirt domains for systemtap probing
+<P>
+
+
+
+<P>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<B>stapvirt</B>
+[<B>-c</B> <I>URI</I>]
+[<B>-d</B> <I>PATH</I>]
+[<B>-v</B>]
+<I>COMMAND</I>
+<I>ARGUMENTS</I>
+<P>
+<A NAME="lbAD"> </A>
+<H2>DESCRIPTION</H2>
+
+The <I>stapvirt</I> program can be used to add ports to domains managed by
+libvirt (see
+
+<<A HREF="http://libvirt.org/">http://libvirt.org/</A>>).
+
+These ports can then be used by <I>stap</I> to
+run scripts inside the domains (see the '--remote' option in <I><A HREF="stap.1.html">stap</A></I>(1) for
+more information).
+<P>
+
+Ports are added to the definition of the domain using the <B>port-add</B>
+command. These ports can later be removed using the <B>port-remove</B> command.
+Note that there can only be as many simultaneous <I>stap</I> sessions as there
+are ports.
+<P>
+
+Starting from libvirt v1.1.1 and QEMU v0.10.0, SystemTap ports can be hotplugged
+and thus do not need to be added first using the <B>port-add</B> command.
+However, you need to ensure that there is a virtio-serial controller in place so
+that hotplugged ports can be connected. If creating a domain using virt-install,
+you can do this by adding this option:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>$</B> virt-install [...] --controller=virtio-serial
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+If the domain has already been created, you can simply do <B>port-add</B>
+followed immediately by <B>port-remove</B>, and then power off and restart the
+domain. The port will be removed, but the controller will remain.
+<P>
+<A NAME="lbAE"> </A>
+<H2>OPTIONS</H2>
+
+The following options are supported. Any other option prints a short help
+message.
+<P>
+<DL COMPACT>
+<DT><B>-c</B> <I>URI</I><DD>
+Specify the libvirt driver URI to which to connect (e.g. '<A HREF="qemu:///system').">qemu:///system').</A> The
+default value is NULL, which indicates to libvirt to connect to the default
+driver. See the page at <<A HREF="http://libvirt.org/uri.html">http://libvirt.org/uri.html</A>> for supported values.
+<P>
+<DT><B>-d</B> <I>PATH</I><DD>
+Specify the directory in which UNIX sockets should be created when SystemTap
+ports are added. The default directory is '/var/lib/libvirt/qemu'.
+<P>
+<DT><B>-v</B><DD>
+Increase verbosity. This option may be repeated for more verbosity.
+<P>
+</DL>
+<A NAME="lbAF"> </A>
+<H2>COMMANDS</H2>
+
+The following commands are recognized by stapvirt. Any other command prints a
+short help message.
+<P>
+<DL COMPACT>
+<DT><B>help</B><DD>
+Display the help message.
+<P>
+<DT><B>list</B><DD>
+List available domains.
+<P>
+<DT><B>port-add</B> <I>DOMAIN</I><DD>
+Add a permanent SystemTap port to the domain's definition. If the domain is
+currently running, it must be powered off before changes take effect.
+<P>
+<DT><B>port-list</B> <I>DOMAIN</I><DD>
+List the UNIX socket paths of the permanent SystemTap ports in the domain's
+definition.
+<P>
+<DT><B>port-remove</B> <I>DOMAIN</I><DD>
+Remove a permanent SystemTap port from the domain's definition. If the domain is
+currently running, it must be powered off before changes take effect.
+<P>
+<DT><B>query</B> <I>DOMAIN</I><DD>
+Display the following information about the domain: its name, its UUID, its
+state, the number of permanent SystemTap ports installed, and whether
+hotplugging is supported.
+<P>
+</DL>
+<A NAME="lbAG"> </A>
+<H2>TUTORIAL</H2>
+
+This tutorial will help you get started with stapvirt. Let's start by listing
+all the privileged domains on the machine with the <B>list</B> command:
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>$</B> stapvirt -c '<A HREF="qemu:///system'">qemu:///system'</A> list
+Available domains on URI '<A HREF="qemu:///system':">qemu:///system':</A>
+ID State Type Name
+2 running persistent TestVM
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+Note that we specified the libvirt URI using the -c switch. Otherwise libvirt
+might have defaulted to e.g. '<A HREF="qemu:///session'.">qemu:///session'.</A>
+<P>
+
+Rather than typing the URI everytime, it might be easier to instead set the
+
+LIBVIRT_DEFAULT_URI
+
+environment variable and omit the -c switch. Note that this is a libvirt
+functionality (see
+
+<libvirt.org/uri.html>
+
+for more details).
+<P>
+
+The <B>list</B> command indicates that we have a running domain named 'TestVM'
+with ID 2. Let's use the <B>query</B> command to retrieve more information:
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>$</B> stapvirt query TestVM # by name
+<B>$</B> stapvirt query 2 # by ID
+
+ Name: TestVM
+ UUID: 905951c0-fa4f-409b-079c-c91ddda27028
+ State: running
+ ID: 2
+ Type: persistent
+ Permanent Ports: 0
+ Hotplugging: not supported
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+The <B>query</B> command gives us some basic information about the domain, such
+as its name, UUID, and state. More importantly, it gives us two pieces of
+information: the number of permanent ports installed, and whether hotplugging is
+supported. Technically, hotplugging support depends on libvirt and qemu, and is
+not related to the domain in itself.
+<P>
+
+If hotplugging were supported, we could stop here and run <I>stap</I> directly
+(assuming we have a virtio-serial controller already in place, see
+<B>DESCRIPTION</B>). Since in our case hotplugging is not supported, we need to
+add SystemTap ports. To do this, we use the <B>port-add</B> command:
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>$</B> stapvirt port-add TestVM
+Added new port org.systemtap.stapsh.0
+The domain must be powered off before changes take effect.
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+We can confirm that a port was added by running the <B>query</B> command again:
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>$</B> stapvirt query TestVM
+<B>...</B>
+ Permanent Ports: 1
+ Hotplugging: not supported
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+It now indicates that there is 1 permanent port. We can also use the
+<B>port-list</B> command to know exactly where the port will be created:
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>$</B> stapvirt port-list TestVM
+/var/lib/libvirt/qemu/TestVM.org.systemtap.stapsh.0.sock
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+After powering off and restarting the domain, we are now ready to use the port
+with <I>stap</I>:
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>$</B> stap -e 'probe begin { printf("Hello from TestVM!\n"); exit() }' \
+ --remote=libvirt://TestVM
+Hello from TestVM!
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+Finally, if we'd like to remove the port, we can use the <B>port-remove</B>
+command:
+<P>
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>$</B> stapvirt port-remove TestVM
+Removed port org.systemtap.stapsh.0
+The domain must be powered off before changes take effect.
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+And that's all there is to it!
+<P>
+<A NAME="lbAH"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1),
+<I><A HREF="virt-install.1.html">virt-install</A></I>(1)
+
+</PRE><A NAME="lbAI"> </A>
+<H2>BUGS</H2>
+
+Use the Bugzilla link of the project web page or our mailing list.
+
+<B><A HREF="http://sourceware.org/systemtap/">http://sourceware.org/systemtap/</A></B>,<B><<A HREF="mailto:systemtap@sourceware.org">systemtap@sourceware.org</A>></B>.
+
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAE">OPTIONS</A><DD>
+<DT><A HREF="#lbAF">COMMANDS</A><DD>
+<DT><A HREF="#lbAG">TUTORIAL</A><DD>
+<DT><A HREF="#lbAH">SEE ALSO</A><DD>
+<DT><A HREF="#lbAI">BUGS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:39 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of SYSTEMTAP</TITLE>
+</HEAD><BODY>
+<H1>SYSTEMTAP</H1>
+Section: Maintenance Commands (8)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+systemtap - SystemTap initscript service
+<P>
+
+
+
+<P>
+<A NAME="lbAC"> </A>
+<H2>SYNOPSIS</H2>
+
+<B>service systemtap</B>
+
+<I>COMMAND</I> [<I>OPTIONS</I>] [<I>SCRIPT</I>...]
+
+<P>
+<A NAME="lbAD"> </A>
+<H2>DESCRIPTION</H2>
+
+The SystemTap initscript aims to provide a way to run scripts as a service and
+easily control them individually. Scripts can be configured to start upon manual
+request, or during system startup. On dracut-based systems, it is also possible
+to integrate scripts in the initramfs and have them start during early-boot.
+<P>
+There are various parameters and options available to modify global behaviour,
+as well as script behaviour. Dependencies between scripts can be established so
+that starting one starts others (especially convenient when using the
+-DRELAY_HOST and -DRELAY_GUEST options of <I><A HREF="stap.1.html">stap</A></I>(1)).
+<P>
+The configuration file of the initscript is located at
+<B>${prefix}/etc/systemtap/config</B>. Acceptable parameters are detailed in the
+GLOBAL PARAMETERS section.
+<P>
+Scripts must be placed in the <B>${prefix}/etc/systemtap/script.d</B> directory
+and must have a <B>.stp</B> extension. When referring to them on the
+command-line however, there in no need to include the <B>.stp</B> extension.
+Script names can only contain alphanumeric characters (and '_') and must not
+start with a number. The scripts directory may be changed by setting the
+SCRIPT_PATH parameter in the configuration file.
+<P>
+<A NAME="lbAE"> </A>
+<H2>COMMANDS</H2>
+
+One of the commands below must be specified:
+<P>
+<DL COMPACT>
+<DT><B>start</B>
+
+<DD>
+Start <I>SCRIPT</I>s. If no scripts are specified, start the scripts specified by
+the DEFAULT_START configuration. If DEFAULT_START is not set, start all scripts
+in the script directory. For scripts already started, the command is ignored.
+The command will fail if the scripts fail to start (see also the PASSALL
+configuration).
+<P>
+If the AUTOCOMPILE configuration is on, the command will try to compile or
+update the specified scripts when one of the below conditions is true:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT>-<DD>
+The compiled cache file does not exist.
+<DT>-<DD>
+The mtime (modified timestamp) of the original script file is newer than the
+time of the compiled script cache.
+<DT>-<DD>
+The specified stap options used to compile the script has been changed (see
+also the SCRIPT PARAMETERS section).
+<DT>-<DD>
+The result of `uname -a` has been changed.
+</DL>
+</DL>
+
+<P>
+<DT><B>stop</B>
+
+<DD>
+Stop <I>SCRIPT</I>s. If no scripts are specified, stop all running scripts. For
+scripts already stopped, the command is ignored. The command will fail if the
+scripts fail to stop (see also the PASSALL configuration).
+<P>
+<DT><B>restart</B>
+
+<DD>
+Stop and start <I>SCRIPT</I>s.
+<P>
+<DT><B>status</B>
+
+<DD>
+Show the state of <I>SCRIPT</I>s and their dependencies.
+<P>
+<DT><B>compile</B>
+
+<DD>
+Compile <I>SCRIPT</I>s but do not start them. If the scripts have already been
+compiled, prompt for confirmation before overwriting cache. Compile for the
+current kernel, or the kernel release specified by the <B>-r</B> option.
+<P>
+<DT><B>onboot</B>
+
+<DD>
+Make <I>SCRIPT</I>s part of the initramfs so that they are started earlier during
+the boot process. This command is only available on dracut-based systems. If no
+scripts are specified, create a normal initramfs devoid of any SystemTap files.
+<P>
+The initramfs is created for the current kernel, or the kernel release specified
+by the <B>-r</B> option. The path of the created initramfs defaults to
+<B>/boot/initramfs-KVER.img</B>, where KVER is the output of `uname -r`. The
+bootloader is also updated (using <I><A HREF="new-kernel-pkg.8.html">new-kernel-pkg</A></I>(8)) to make the kernel
+entry use the new initramfs file. Use the <B>-o</B> option to specify a different
+path (the bootloader will not be updated).
+<P>
+If the output file already exists, it is overwritten, unless the <B>-b</B> switch
+is given, in which case the file is appended <B>.bak</B> rather than overwritten.
+However, if there is already a <B>.bak</B> version of the file, the backup will
+not be overwritten.
+<P>
+WARNING: do not use the <B>-o</B> option of <I><A HREF="stap.1.html">stap</A></I>(1) with onboot scripts
+because the script is started before the root filesystem is even mounted.
+Increase the buffer size if more space is needed.
+<P>
+<DT><B>cleanup</B>
+
+<DD>
+Delete the compiled <I>SCRIPT</I>s from cache. If no scripts are specified, then
+all compiled scripts are deleted. Only the cache for the current kernel is
+deleted, or the kernel release specified by the <B>-r</B> option. Prompt for
+confirmation before deleting.
+<P>
+</DL>
+<A NAME="lbAF"> </A>
+<H2>OPTIONS</H2>
+
+Many of the commands can also take options. However, since users can't pass
+these options on boot, they are only meant for managing scripts after boot and
+for testing. Available options are:
+<P>
+<DL COMPACT>
+<DT><B>-c </B><I>CONFIG_FILE</I>
+
+<DD>
+Specify a different configuration file in place of the default one.
+<P>
+<DT><B>-R</B>
+
+<DD>
+When using the <B>start</B> and <B>stop</B> commands, also include the scripts'
+dependencies (recursively).
+<P>
+<DT><B>-r </B><I>KERNEL_RELEASE</I>
+
+<DD>
+When using the <B>compile</B>, <B>onboot</B>, and <B>cleanup</B> commands, specify
+the target kernel version rather than using the current one. Must be in the same
+format as `uname -r`.
+<P>
+<DT><B>-y</B>
+
+<DD>
+Answer yes for all prompts.
+<P>
+<DT><B>-o </B><I>PATH.IMG</I>
+
+<DD>
+When using the <B>onboot</B> command, specify the output path of the created
+initramfs. When specified, the bootloader configuration is not updated.
+<P>
+<DT><B>-b</B>
+
+<DD>
+When using the <B>onboot</B> command, backup an existing initramfs image by
+adding a <B>.bak</B> extension rather than overwriting it. Without this option,
+the initramfs is overwritten.
+<P>
+</DL>
+<A NAME="lbAG"> </A>
+<H2>GLOBAL PARAMETERS</H2>
+
+These parameters affect the general behaviour of the SystemTap initscript
+service. They can be specified in the configuration file.
+<P>
+<DL COMPACT>
+<DT><B>SCRIPT_PATH</B>
+
+<DD>
+Specify the absolute path of the script directory. These are the scripts on
+which the initscript can operate. Scripts must have the <B>.stp</B> extension.
+The default path is <B>${prefix}/etc/systemtap/script.d</B>.
+<P>
+<DT><B>CONFIG_PATH</B>
+
+<DD>
+Specify the absolute path of the script configuration directory. These
+configuration files contain options for specific scripts. They must have the
+<B>.conf</B> extension. The default path is <B>${prefix}/etc/systemtap/conf.d</B>.
+<P>
+<DT><B>CACHE_PATH</B>
+
+<DD>
+Specify the absolute path of the cache directory. The default path is
+<B>${prefix}/var/cache/systemtap</B>.
+<P>
+<DT><B>TEMP_PATH</B>
+
+<DD>
+Specify the absolute path of the temporary directory in which SystemTap
+makes temporary directories to compile scripts. The default path is <B>/tmp</B>.
+<P>
+<DT><B>STAT_PATH</B>
+
+<DD>
+Specify the absolute path of the directory containing PID files used to track
+the status of SystemTap scripts. The default path is
+<B>${prefix}/var/run/systemtap</B>.
+<P>
+<DT><B>LOG_FILE</B>
+
+<DD>
+Specify the absolute path of the log file. All messages are sent to this file,
+including compilation and runtime errors. The default path is
+<B>${prefix}/var/log/systemtap.log</B>.
+<P>
+<DT><B>PASSALL</B>
+
+<DD>
+If this is set <B>yes</B>, initscript commands that operate on multiple scripts
+will report as failed when the action could not be performed on at least one
+script. If set to <B>no</B>, only a warning is emitted. The default is <B>yes</B>.
+<P>
+<DT><B>RECURSIVE</B>
+
+<DD>
+If this is set <B>yes</B>, the initscript will always follow script dependencies
+recursively. This means that there is no need to specify the <B>-R</B> option.
+This flag is effective only if you specify script(s) from the command-line. The
+default is <B>no</B>.
+<P>
+<DT><B>AUTOCOMPILE</B>
+
+<DD>
+If this is set <B>yes</B>, the initscript automatically tries to compile
+specified scripts when needed if there is no valid cache. Otherwise, the related
+command simply fails. The default is <B>yes</B>.
+<P>
+<DT><B>DEFAULT_START</B>
+
+<DD>
+Specify scripts which will be started by default. If omitted (or empty), all
+scripts in the script directory will be started. The default is <B>""</B>.
+<P>
+<DT><B>ALLOW_CACHEONLY</B>
+
+<DD>
+If this is set <B>yes</B>, the initscript will also allow operating on scripts
+that are located in the cache directory, but not in the script directory. The
+default is <B>no</B>.
+<P>
+WARNING: the initscript may load unexpected obsolete caches with this option.
+The cache directory should be checked before enabling this option.
+<P>
+<DT><B>LOG_BOOT_ERR</B>
+
+<DD>
+Because boot-time scripts are run before the root filesystem is mounted,
+staprun's stderr cannot be logged to the LOG_FILE as usual. However, the log
+can instead be output to /var/run/systemtap/$script.log by setting LOG_BOOT_ERR
+to <B>yes</B>. If STAT_PATH is different from the default, the log files will be
+moved there upon executing any of the initscript commands. The default is
+<B>no</B>.
+<P>
+</DL>
+<P>
+
+Here is a global configuration file example:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+SCRIPT_PATH=/var/systemtap/script.d/
+PASSALL=yes
+RECURSIVE=no
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<A NAME="lbAH"> </A>
+<H2>SCRIPT PARAMETERS</H2>
+
+These parameters affect the compilation or runtime behaviour of specific
+SystemTap scripts. They must be placed in config files located in the
+CONFIG_PATH directory.
+<P>
+<DL COMPACT>
+<DT><B><SCRIPT>_OPT</B>
+
+<DD>
+Specify options passed to the <I><A HREF="stap.1.html">stap</A></I>(1) command for the SCRIPT. Here, SCRIPT
+is the name of the script file without the <B>.stp</B> extension. Note that the
+<B>-F</B> option is always added.
+<P>
+The following options are ignored when compiling scripts: -p, -m, -r, -c, -x,
+-e, -s, -o, -h, -V, -k.
+<P>
+The following options are ignored when running starting scripts: -h, -V, -v, -t,
+-p, -I, -e, -R, -r, -m, -k, -g, -P, -D, -b, -u, -q, -w, -l, -d, -L, -F, and all
+long options.
+<P>
+<DT><B><SCRIPT>_REQ</B>
+
+<DD>
+Specify script dependencies (i.e. which script this script requires). For
+example, if foo.stp requires (or needs to run after) bar.stp, set
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+foo_REQ="bar"
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+Specify multiple scripts by separating their names by spaces.
+<P>
+</DL>
+<P>
+
+Here is a script configuration file example:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+script1_OPT="-o /var/log/script1.out -DRELAY_HOST=group1"
+script2_OPT="-DRELAY_GUEST=group1"
+script2_REQ="script1"
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<A NAME="lbAI"> </A>
+<H2>EXAMPLES</H2>
+
+<P>
+<DL COMPACT>
+<DT><B>INSTALLING SCRIPTS</B>
+
+<DD>
+We first copy a SystemTap script (e.g. "script1.stp") into the script directory:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>#</B> cp script1.stp /etc/systemtap/script.d/
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+We can then set any script options, for example:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>#</B> vi /etc/systemtap/conf.d/group1
+script1_OPT="-o /var/log/group1.out -DRELAY_HOST=group1"
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+If we then install a script (e.g. "script2.stp") which shares a buffer with
+script1, there is a dependency. In this case, we can do the following:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>#</B> cp script2.stp /etc/systemtap/script.d/
+<B>#</B> vi /etc/systemtap/conf.d/group1
+script2_OPT="-DRELAY_GUEST=group1"
+script2_REQ="script1"
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+This way, if <I><A HREF="stap.1.html">stap</A></I>(1) fails to run script1, the initscript will not even
+try to run script2.
+<P>
+<DT><B>TESTING</B>
+
+<DD>
+After installing scripts, we can test that they work by simply doing:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>#</B> service systemtap start
+<B>#</B> service systemtap stop
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+We could be more specific as well, for example:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>#</B> service systemtap start script1
+<B>#</B> service systemtap stop script1
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+If there were no errors, we are ready to use it.
+<P>
+<DT><B>ENABLING SERVICE</B>
+
+<DD>
+After we're satisfied with the scripts and their tests, we can enable the
+SystemTap initscript service:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>#</B> chkconfig systemtap on
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<DT><B>DELETING SCRIPTS</B>
+
+<DD>
+Scripts are deleted by simply removing them from the script directory and
+removing any configuration lines specific to them:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>#</B> rm /etc/systemtap/script.d/script2.stp
+<B>#</B> vi /etc/systemtap/conf.d/group1
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+If the script is still running, we also need to stop it:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>#</B> service systemtap stop script2
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+We can then also remove the cache associated with the script:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>#</B> service systemtap cleanup script2
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<DT><B>PREPARING FOR KERNEL UPDATES</B>
+
+<DD>
+Usually, there is nothing to do when booting into a new kernel. The initscript
+will see that the kernel version is different and will compile the scripts. The
+compilation can be done beforehand as well to avoid having to compile during
+boot by using the <B>-r</B> option:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>#</B> service systemtap compile myscript -r <NEW_KERNEL_VERSION>
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<DT><B>IMPORTING COMPILED SCRIPTS</B>
+
+<DD>
+For environments which lack compilation infrastructure (e.g. no compilers or
+debuginfo), such as a production system, the scripts can be compiled on another
+(development) machine and then transferred over to the production system:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>#</B> service systemtap compile myscript -r \
+<BR>
+> <KERNEL_VERSION_OF_TARGET_MACHINE>
+<B>#</B> tar czf stap-scripts-<kernel-version>.tar.gz \
+<BR>
+> /var/cache/systemtap/<kernel-version> \
+<BR>
+> /etc/systemtap/conf.d/<configfile>
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+And then copy this package to the target machine and extract it.
+<P>
+<DT><B>STARTING SCRIPTS DURING EARLY-BOOT</B>
+
+<DD>
+The initscript also allows us to start scripts earlier during the boot process
+by creating an initramfs containing the script's module. The system must be
+dracut-based for this to work. Starting a script at this stage gives access to
+information otherwise very hard to obtain.
+<P>
+We first install the script by copying it into the script directory as usual and
+setting whatever options we'd like:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>#</B> cp myscript.stp /etc/systemtap/script.d
+<B>#</B> vi /etc/systemtap/conf.d/myscript.conf
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+To add the script to the initramfs, we use the <B>onboot</B> command:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>#</B> service systemtap onboot myscript
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+If the script is not already compiled and cached, it will be done at this point.
+A new initramfs will then be created at the default location. We can use the
+<B>-b</B> option to ensure that the existing initramfs is backed up. We can then
+restart the system.
+<P>
+<DT><B>USING A DIFFERENT INITRAMFS</B>
+
+<DD>
+If we would prefer to only start the script for one boot and not others, it
+might be easier to instead use the <B>-o</B> option to specify a different
+initramfs output file:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>#</B> service systemtap onboot myscript \
+> -o /boot/special_initramfs.img
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+Once the initramfs is created, it's simply a matter of changing the command-line
+options at boot-time so that the new image is used rather than the usual one.
+<P>
+<DT><B>CREATING AN INITRAMFS FOR A DIFFERENT KERNEL</B>
+
+<DD>
+Just like the compile command, we can use the <B>-r</B> option to specify the
+kernel for which we want to create the initramfs. This is useful when we are
+about to upgrade and would like to prepare in advance. For example:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>#</B> service systemtap onboot myscript \
+> -r 3.12.6-200.fc19.x86_64
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<DT><B>REMOVING SCRIPTS FROM THE INITRAMFS</B>
+
+<DD>
+Finally, to remove all script from the initramfs, we simple run the <B>onboot</B>
+command without specifying any scripts:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+<B>#</B> service systemtap onboot
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+This will simply create a standard initramfs without any SystemTap modules
+inserted.
+<P>
+<DT><B>TROUBLESHOOTING EARLY-BOOT ISSUES</B>
+
+<DD>
+There can be many reasons for which the module didn't insert or did not work as
+expected. It may be useful to turn on dracut debugging by adding 'rdinitdebug'
+to the kernel command-line and checking dmesg/journalctl -ae. Also, the stderr
+output of staprun can be captured by setting the LOG_BOOT_ERR option to
+<B>yes</B>.
+<P>
+</DL>
+<A NAME="lbAJ"> </A>
+<H2>SEE ALSO</H2>
+
+<I><A HREF="stap.1.html">stap</A></I>(1)
+
+<I><A HREF="dracut.8.html">dracut</A></I>(8)
+
+<I><A HREF="new-kernel-pkg.8.html">new-kernel-pkg</A></I>(8)
+
+<P>
+<A NAME="lbAK"> </A>
+<H2>BUGS</H2>
+
+Use the Bugzilla link of the project web page or our mailing list.
+
+<B><A HREF="http://sourceware.org/systemtap/">http://sourceware.org/systemtap/</A></B>, <B><<A HREF="mailto:systemtap@sourceware.org">systemtap@sourceware.org</A>></B>.
+
+
+<P>
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAE">COMMANDS</A><DD>
+<DT><A HREF="#lbAF">OPTIONS</A><DD>
+<DT><A HREF="#lbAG">GLOBAL PARAMETERS</A><DD>
+<DT><A HREF="#lbAH">SCRIPT PARAMETERS</A><DD>
+<DT><A HREF="#lbAI">EXAMPLES</A><DD>
+<DT><A HREF="#lbAJ">SEE ALSO</A><DD>
+<DT><A HREF="#lbAK">BUGS</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::ansi</TITLE>
+</HEAD><BODY>
+<H1>tapset::ansi</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::ansi - systemtap ansi tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>ansi_clear_screen </B>
+
+<DD>
+Move cursor to top left and clear screen.
+<DT><DD>
+See
+<I><A HREF="./function::ansi_clear_screen.3stap.html">function::ansi_clear_screen</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ansi_set_color </B>
+
+<DD>
+Set the ansi Select Graphic Rendition mode.
+<DT><DD>
+See
+<I><A HREF="./function::ansi_set_color.3stap.html">function::ansi_set_color</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ansi_set_color2 </B>
+
+<DD>
+Set the ansi Select Graphic Rendition mode.
+<DT><DD>
+See
+<I><A HREF="./function::ansi_set_color2.3stap.html">function::ansi_set_color2</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ansi_set_color3 </B>
+
+<DD>
+Set the ansi Select Graphic Rendition mode.
+<DT><DD>
+See
+<I><A HREF="./function::ansi_set_color3.3stap.html">function::ansi_set_color3</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ansi_reset_color </B>
+
+<DD>
+Resets Select Graphic Rendition mode.
+<DT><DD>
+See
+<I><A HREF="./function::ansi_reset_color.3stap.html">function::ansi_reset_color</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ansi_new_line </B>
+
+<DD>
+Move cursor to new line.
+<DT><DD>
+See
+<I><A HREF="./function::ansi_new_line.3stap.html">function::ansi_new_line</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ansi_cursor_move </B>
+
+<DD>
+Move cursor to new coordinates.
+<DT><DD>
+See
+<I><A HREF="./function::ansi_cursor_move.3stap.html">function::ansi_cursor_move</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ansi_cursor_hide </B>
+
+<DD>
+Hides the cursor.
+<DT><DD>
+See
+<I><A HREF="./function::ansi_cursor_hide.3stap.html">function::ansi_cursor_hide</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ansi_cursor_save </B>
+
+<DD>
+Saves the cursor position.
+<DT><DD>
+See
+<I><A HREF="./function::ansi_cursor_save.3stap.html">function::ansi_cursor_save</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ansi_cursor_restore </B>
+
+<DD>
+Restores a previously saved cursor position.
+<DT><DD>
+See
+<I><A HREF="./function::ansi_cursor_restore.3stap.html">function::ansi_cursor_restore</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ansi_cursor_show </B>
+
+<DD>
+Shows the cursor.
+<DT><DD>
+See
+<I><A HREF="./function::ansi_cursor_show.3stap.html">function::ansi_cursor_show</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::ansi_clear_screen.3stap.html">function::ansi_clear_screen</A></I>(3stap),
+
+
+<I><A HREF="./function::ansi_set_color.3stap.html">function::ansi_set_color</A></I>(3stap),
+
+
+<I><A HREF="./function::ansi_set_color2.3stap.html">function::ansi_set_color2</A></I>(3stap),
+
+
+<I><A HREF="./function::ansi_set_color3.3stap.html">function::ansi_set_color3</A></I>(3stap),
+
+
+<I><A HREF="./function::ansi_reset_color.3stap.html">function::ansi_reset_color</A></I>(3stap),
+
+
+<I><A HREF="./function::ansi_new_line.3stap.html">function::ansi_new_line</A></I>(3stap),
+
+
+<I><A HREF="./function::ansi_cursor_move.3stap.html">function::ansi_cursor_move</A></I>(3stap),
+
+
+<I><A HREF="./function::ansi_cursor_hide.3stap.html">function::ansi_cursor_hide</A></I>(3stap),
+
+
+<I><A HREF="./function::ansi_cursor_save.3stap.html">function::ansi_cursor_save</A></I>(3stap),
+
+
+<I><A HREF="./function::ansi_cursor_restore.3stap.html">function::ansi_cursor_restore</A></I>(3stap),
+
+
+<I><A HREF="./function::ansi_cursor_show.3stap.html">function::ansi_cursor_show</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::atomic</TITLE>
+</HEAD><BODY>
+<H1>tapset::atomic</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::atomic - systemtap atomic tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>atomic_read </B>
+
+<DD>
+Retrieves an atomic variable from kernel memory
+<DT><DD>
+See
+<I><A HREF="./function::atomic_read.3stap.html">function::atomic_read</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>atomic_long_read </B>
+
+<DD>
+Retrieves an atomic long variable from kernel memory
+<DT><DD>
+See
+<I><A HREF="./function::atomic_long_read.3stap.html">function::atomic_long_read</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::atomic_read.3stap.html">function::atomic_read</A></I>(3stap),
+
+
+<I><A HREF="./function::atomic_long_read.3stap.html">function::atomic_long_read</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::context-caller</TITLE>
+</HEAD><BODY>
+<H1>tapset::context-caller</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::context-caller - systemtap context-caller tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> Provides caller and caller_addr function for context for kernel and user
+<BR> space.
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>callers </B>
+
+<DD>
+Return first n elements of kernel stack backtrace
+<DT><DD>
+See
+<I><A HREF="./function::callers.3stap.html">function::callers</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>caller </B>
+
+<DD>
+Return name and address of calling function
+<DT><DD>
+See
+<I><A HREF="./function::caller.3stap.html">function::caller</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>caller_addr </B>
+
+<DD>
+Return caller address
+<DT><DD>
+See
+<I><A HREF="./function::caller_addr.3stap.html">function::caller_addr</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::callers.3stap.html">function::callers</A></I>(3stap),
+
+
+<I><A HREF="./function::caller.3stap.html">function::caller</A></I>(3stap),
+
+
+<I><A HREF="./function::caller_addr.3stap.html">function::caller_addr</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::context-envvar</TITLE>
+</HEAD><BODY>
+<H1>tapset::context-envvar</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::context-envvar - systemtap context-envvar tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> Context functions provide additional information about where an event occurred. These functions can
+provide information such as a backtrace to where the event occurred and the current register values for the
+processor.
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>env_var </B>
+
+<DD>
+Fetch environment variable from current process
+<DT><DD>
+See
+<I><A HREF="./function::env_var.3stap.html">function::env_var</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::env_var.3stap.html">function::env_var</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::context-symbols</TITLE>
+</HEAD><BODY>
+<H1>tapset::context-symbols</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::context-symbols - systemtap context-symbols tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> Context functions provide additional information about where an event occurred. These functions can
+provide information such as a backtrace to where the event occurred and the current register values for the
+processor.
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>stack </B>
+
+<DD>
+Return address at given depth of kernel stack backtrace
+<DT><DD>
+See
+<I><A HREF="./function::stack.3stap.html">function::stack</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>print_stack </B>
+
+<DD>
+Print out kernel stack from string
+<DT><DD>
+See
+<I><A HREF="./function::print_stack.3stap.html">function::print_stack</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sprint_stack </B>
+
+<DD>
+Return stack for kernel addresses from string
+<DT><DD>
+See
+<I><A HREF="./function::sprint_stack.3stap.html">function::sprint_stack</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>probefunc </B>
+
+<DD>
+Return the probe point's function name, if known
+<DT><DD>
+See
+<I><A HREF="./function::probefunc.3stap.html">function::probefunc</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>probemod </B>
+
+<DD>
+Return the probe point's kernel module name
+<DT><DD>
+See
+<I><A HREF="./function::probemod.3stap.html">function::probemod</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>modname </B>
+
+<DD>
+Return the kernel module name loaded at the address
+<DT><DD>
+See
+<I><A HREF="./function::modname.3stap.html">function::modname</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>symname </B>
+
+<DD>
+Return the kernel symbol associated with the given address
+<DT><DD>
+See
+<I><A HREF="./function::symname.3stap.html">function::symname</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>symdata </B>
+
+<DD>
+Return the kernel symbol and module offset for the address
+<DT><DD>
+See
+<I><A HREF="./function::symdata.3stap.html">function::symdata</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>print_syms </B>
+
+<DD>
+Print out kernel stack from string
+<DT><DD>
+See
+<I><A HREF="./function::print_syms.3stap.html">function::print_syms</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sprint_syms </B>
+
+<DD>
+Return stack for kernel addresses from string
+<DT><DD>
+See
+<I><A HREF="./function::sprint_syms.3stap.html">function::sprint_syms</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::stack.3stap.html">function::stack</A></I>(3stap),
+
+
+<I><A HREF="./function::print_stack.3stap.html">function::print_stack</A></I>(3stap),
+
+
+<I><A HREF="./function::sprint_stack.3stap.html">function::sprint_stack</A></I>(3stap),
+
+
+<I><A HREF="./function::probefunc.3stap.html">function::probefunc</A></I>(3stap),
+
+
+<I><A HREF="./function::probemod.3stap.html">function::probemod</A></I>(3stap),
+
+
+<I><A HREF="./function::modname.3stap.html">function::modname</A></I>(3stap),
+
+
+<I><A HREF="./function::symname.3stap.html">function::symname</A></I>(3stap),
+
+
+<I><A HREF="./function::symdata.3stap.html">function::symdata</A></I>(3stap),
+
+
+<I><A HREF="./function::print_syms.3stap.html">function::print_syms</A></I>(3stap),
+
+
+<I><A HREF="./function::sprint_syms.3stap.html">function::sprint_syms</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::context-unwind</TITLE>
+</HEAD><BODY>
+<H1>tapset::context-unwind</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::context-unwind - systemtap context-unwind tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> Context functions provide additional information about where an event occurred. These functions can
+provide information such as a backtrace to where the event occurred and the current register values for the
+processor.
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>print_backtrace </B>
+
+<DD>
+Print kernel stack back trace
+<DT><DD>
+See
+<I><A HREF="./function::print_backtrace.3stap.html">function::print_backtrace</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sprint_backtrace </B>
+
+<DD>
+Return stack back trace as string
+<DT><DD>
+See
+<I><A HREF="./function::sprint_backtrace.3stap.html">function::sprint_backtrace</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>backtrace </B>
+
+<DD>
+Hex backtrace of current kernel stack
+<DT><DD>
+See
+<I><A HREF="./function::backtrace.3stap.html">function::backtrace</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_backtrace </B>
+
+<DD>
+Hex backtrace of an arbitrary task
+<DT><DD>
+See
+<I><A HREF="./function::task_backtrace.3stap.html">function::task_backtrace</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::print_backtrace.3stap.html">function::print_backtrace</A></I>(3stap),
+
+
+<I><A HREF="./function::sprint_backtrace.3stap.html">function::sprint_backtrace</A></I>(3stap),
+
+
+<I><A HREF="./function::backtrace.3stap.html">function::backtrace</A></I>(3stap),
+
+
+<I><A HREF="./function::task_backtrace.3stap.html">function::task_backtrace</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::context</TITLE>
+</HEAD><BODY>
+<H1>tapset::context</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::context - systemtap context tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> Context functions provide additional information about where an event occurred. These functions can
+provide information such as a backtrace to where the event occurred and the current register values for the
+processor.
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>print_regs </B>
+
+<DD>
+Print a register dump
+<DT><DD>
+See
+<I><A HREF="./function::print_regs.3stap.html">function::print_regs</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>pp </B>
+
+<DD>
+Returns the active probe point
+<DT><DD>
+See
+<I><A HREF="./function::pp.3stap.html">function::pp</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ppfunc </B>
+
+<DD>
+Returns the function name parsed from pp()
+<DT><DD>
+See
+<I><A HREF="./function::ppfunc.3stap.html">function::ppfunc</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>probe_type </B>
+
+<DD>
+The low level probe handler type of the current probe.
+<DT><DD>
+See
+<I><A HREF="./function::probe_type.3stap.html">function::probe_type</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>execname </B>
+
+<DD>
+Returns the execname of a target process (or group of processes)
+<DT><DD>
+See
+<I><A HREF="./function::execname.3stap.html">function::execname</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>pid </B>
+
+<DD>
+Returns the ID of a target process
+<DT><DD>
+See
+<I><A HREF="./function::pid.3stap.html">function::pid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tid </B>
+
+<DD>
+Returns the thread ID of a target process
+<DT><DD>
+See
+<I><A HREF="./function::tid.3stap.html">function::tid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ppid </B>
+
+<DD>
+Returns the process ID of a target process's parent process
+<DT><DD>
+See
+<I><A HREF="./function::ppid.3stap.html">function::ppid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>pgrp </B>
+
+<DD>
+Returns the process group ID of the current process
+<DT><DD>
+See
+<I><A HREF="./function::pgrp.3stap.html">function::pgrp</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sid </B>
+
+<DD>
+Returns the session ID of the current process
+<DT><DD>
+See
+<I><A HREF="./function::sid.3stap.html">function::sid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>pexecname </B>
+
+<DD>
+Returns the execname of a target process's parent process
+<DT><DD>
+See
+<I><A HREF="./function::pexecname.3stap.html">function::pexecname</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>gid </B>
+
+<DD>
+Returns the group ID of a target process
+<DT><DD>
+See
+<I><A HREF="./function::gid.3stap.html">function::gid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>egid </B>
+
+<DD>
+Returns the effective gid of a target process
+<DT><DD>
+See
+<I><A HREF="./function::egid.3stap.html">function::egid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>uid </B>
+
+<DD>
+Returns the user ID of a target process
+<DT><DD>
+See
+<I><A HREF="./function::uid.3stap.html">function::uid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>euid </B>
+
+<DD>
+Return the effective uid of a target process
+<DT><DD>
+See
+<I><A HREF="./function::euid.3stap.html">function::euid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>is_myproc </B>
+
+<DD>
+Determines if the current probe point has occurred in the user's own process
+<DT><DD>
+See
+<I><A HREF="./function::is_myproc.3stap.html">function::is_myproc</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>cpuid </B>
+
+<DD>
+Returns the current cpu number
+<DT><DD>
+See
+<I><A HREF="./function::cpuid.3stap.html">function::cpuid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>cpu </B>
+
+<DD>
+Returns the current cpu number
+<DT><DD>
+See
+<I><A HREF="./function::cpu.3stap.html">function::cpu</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>registers_valid </B>
+
+<DD>
+Determines validity of register() and u_register() in current context
+<DT><DD>
+See
+<I><A HREF="./function::registers_valid.3stap.html">function::registers_valid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_mode </B>
+
+<DD>
+Determines if probe point occurs in user-mode
+<DT><DD>
+See
+<I><A HREF="./function::user_mode.3stap.html">function::user_mode</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>is_return </B>
+
+<DD>
+Whether the current probe context is a return probe
+<DT><DD>
+See
+<I><A HREF="./function::is_return.3stap.html">function::is_return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>target </B>
+
+<DD>
+Return the process ID of the target process
+<DT><DD>
+See
+<I><A HREF="./function::target.3stap.html">function::target</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>module_name </B>
+
+<DD>
+The module name of the current script
+<DT><DD>
+See
+<I><A HREF="./function::module_name.3stap.html">function::module_name</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stp_pid </B>
+
+<DD>
+The process id of the stapio process
+<DT><DD>
+See
+<I><A HREF="./function::stp_pid.3stap.html">function::stp_pid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>remote_id </B>
+
+<DD>
+The index of this instance in a remote execution.
+<DT><DD>
+See
+<I><A HREF="./function::remote_id.3stap.html">function::remote_id</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>remote_uri </B>
+
+<DD>
+The name of this instance in a remote execution.
+<DT><DD>
+See
+<I><A HREF="./function::remote_uri.3stap.html">function::remote_uri</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stack_size </B>
+
+<DD>
+Return the size of the kernel stack
+<DT><DD>
+See
+<I><A HREF="./function::stack_size.3stap.html">function::stack_size</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stack_used </B>
+
+<DD>
+Returns the amount of kernel stack used
+<DT><DD>
+See
+<I><A HREF="./function::stack_used.3stap.html">function::stack_used</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stack_unused </B>
+
+<DD>
+Returns the amount of kernel stack currently available
+<DT><DD>
+See
+<I><A HREF="./function::stack_unused.3stap.html">function::stack_unused</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>addr </B>
+
+<DD>
+Address of the current probe point.
+<DT><DD>
+See
+<I><A HREF="./function::addr.3stap.html">function::addr</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>uaddr </B>
+
+<DD>
+User space address of current running task
+<DT><DD>
+See
+<I><A HREF="./function::uaddr.3stap.html">function::uaddr</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>cmdline_args </B>
+
+<DD>
+Fetch command line arguments from current process
+<DT><DD>
+See
+<I><A HREF="./function::cmdline_args.3stap.html">function::cmdline_args</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>cmdline_arg </B>
+
+<DD>
+Fetch a command line argument
+<DT><DD>
+See
+<I><A HREF="./function::cmdline_arg.3stap.html">function::cmdline_arg</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>cmdline_str </B>
+
+<DD>
+Fetch all command line arguments from current process
+<DT><DD>
+See
+<I><A HREF="./function::cmdline_str.3stap.html">function::cmdline_str</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::print_regs.3stap.html">function::print_regs</A></I>(3stap),
+
+
+<I><A HREF="./function::pp.3stap.html">function::pp</A></I>(3stap),
+
+
+<I><A HREF="./function::ppfunc.3stap.html">function::ppfunc</A></I>(3stap),
+
+
+<I><A HREF="./function::probe_type.3stap.html">function::probe_type</A></I>(3stap),
+
+
+<I><A HREF="./function::execname.3stap.html">function::execname</A></I>(3stap),
+
+
+<I><A HREF="./function::pid.3stap.html">function::pid</A></I>(3stap),
+
+
+<I><A HREF="./function::tid.3stap.html">function::tid</A></I>(3stap),
+
+
+<I><A HREF="./function::ppid.3stap.html">function::ppid</A></I>(3stap),
+
+
+<I><A HREF="./function::pgrp.3stap.html">function::pgrp</A></I>(3stap),
+
+
+<I><A HREF="./function::sid.3stap.html">function::sid</A></I>(3stap),
+
+
+<I><A HREF="./function::pexecname.3stap.html">function::pexecname</A></I>(3stap),
+
+
+<I><A HREF="./function::gid.3stap.html">function::gid</A></I>(3stap),
+
+
+<I><A HREF="./function::egid.3stap.html">function::egid</A></I>(3stap),
+
+
+<I><A HREF="./function::uid.3stap.html">function::uid</A></I>(3stap),
+
+
+<I><A HREF="./function::euid.3stap.html">function::euid</A></I>(3stap),
+
+
+<I><A HREF="./function::is_myproc.3stap.html">function::is_myproc</A></I>(3stap),
+
+
+<I><A HREF="./function::cpuid.3stap.html">function::cpuid</A></I>(3stap),
+
+
+<I><A HREF="./function::cpu.3stap.html">function::cpu</A></I>(3stap),
+
+
+<I><A HREF="./function::registers_valid.3stap.html">function::registers_valid</A></I>(3stap),
+
+
+<I><A HREF="./function::user_mode.3stap.html">function::user_mode</A></I>(3stap),
+
+
+<I><A HREF="./function::is_return.3stap.html">function::is_return</A></I>(3stap),
+
+
+<I><A HREF="./function::target.3stap.html">function::target</A></I>(3stap),
+
+
+<I><A HREF="./function::module_name.3stap.html">function::module_name</A></I>(3stap),
+
+
+<I><A HREF="./function::stp_pid.3stap.html">function::stp_pid</A></I>(3stap),
+
+
+<I><A HREF="./function::remote_id.3stap.html">function::remote_id</A></I>(3stap),
+
+
+<I><A HREF="./function::remote_uri.3stap.html">function::remote_uri</A></I>(3stap),
+
+
+<I><A HREF="./function::stack_size.3stap.html">function::stack_size</A></I>(3stap),
+
+
+<I><A HREF="./function::stack_used.3stap.html">function::stack_used</A></I>(3stap),
+
+
+<I><A HREF="./function::stack_unused.3stap.html">function::stack_unused</A></I>(3stap),
+
+
+<I><A HREF="./function::addr.3stap.html">function::addr</A></I>(3stap),
+
+
+<I><A HREF="./function::uaddr.3stap.html">function::uaddr</A></I>(3stap),
+
+
+<I><A HREF="./function::cmdline_args.3stap.html">function::cmdline_args</A></I>(3stap),
+
+
+<I><A HREF="./function::cmdline_arg.3stap.html">function::cmdline_arg</A></I>(3stap),
+
+
+<I><A HREF="./function::cmdline_str.3stap.html">function::cmdline_str</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::conversions-guru</TITLE>
+</HEAD><BODY>
+<H1>tapset::conversions-guru</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::conversions-guru - systemtap conversions-guru tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>set_kernel_string </B>
+
+<DD>
+Writes a string to kernel memory
+<DT><DD>
+See
+<I><A HREF="./function::set_kernel_string.3stap.html">function::set_kernel_string</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>set_kernel_string_n </B>
+
+<DD>
+Writes a string of given length to kernel memory
+<DT><DD>
+See
+<I><A HREF="./function::set_kernel_string_n.3stap.html">function::set_kernel_string_n</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>set_kernel_long </B>
+
+<DD>
+Writes a long value to kernel memory
+<DT><DD>
+See
+<I><A HREF="./function::set_kernel_long.3stap.html">function::set_kernel_long</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>set_kernel_int </B>
+
+<DD>
+Writes an int value to kernel memory
+<DT><DD>
+See
+<I><A HREF="./function::set_kernel_int.3stap.html">function::set_kernel_int</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>set_kernel_short </B>
+
+<DD>
+Writes a short value to kernel memory
+<DT><DD>
+See
+<I><A HREF="./function::set_kernel_short.3stap.html">function::set_kernel_short</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>set_kernel_char </B>
+
+<DD>
+Writes a char value to kernel memory
+<DT><DD>
+See
+<I><A HREF="./function::set_kernel_char.3stap.html">function::set_kernel_char</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>set_kernel_pointer </B>
+
+<DD>
+Writes a pointer value to kernel memory.
+<DT><DD>
+See
+<I><A HREF="./function::set_kernel_pointer.3stap.html">function::set_kernel_pointer</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::set_kernel_string.3stap.html">function::set_kernel_string</A></I>(3stap),
+
+
+<I><A HREF="./function::set_kernel_string_n.3stap.html">function::set_kernel_string_n</A></I>(3stap),
+
+
+<I><A HREF="./function::set_kernel_long.3stap.html">function::set_kernel_long</A></I>(3stap),
+
+
+<I><A HREF="./function::set_kernel_int.3stap.html">function::set_kernel_int</A></I>(3stap),
+
+
+<I><A HREF="./function::set_kernel_short.3stap.html">function::set_kernel_short</A></I>(3stap),
+
+
+<I><A HREF="./function::set_kernel_char.3stap.html">function::set_kernel_char</A></I>(3stap),
+
+
+<I><A HREF="./function::set_kernel_pointer.3stap.html">function::set_kernel_pointer</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::conversions</TITLE>
+</HEAD><BODY>
+<H1>tapset::conversions</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::conversions - systemtap conversions tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>kernel_string </B>
+
+<DD>
+Retrieves string from kernel memory
+<DT><DD>
+See
+<I><A HREF="./function::kernel_string.3stap.html">function::kernel_string</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>kernel_string2 </B>
+
+<DD>
+Retrieves string from kernel memory with alternative error string
+<DT><DD>
+See
+<I><A HREF="./function::kernel_string2.3stap.html">function::kernel_string2</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>kernel_string_quoted </B>
+
+<DD>
+Retrieves and quotes string from kernel memory
+<DT><DD>
+See
+<I><A HREF="./function::kernel_string_quoted.3stap.html">function::kernel_string_quoted</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>kernel_string_n </B>
+
+<DD>
+Retrieves string of given length from kernel memory
+<DT><DD>
+See
+<I><A HREF="./function::kernel_string_n.3stap.html">function::kernel_string_n</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>kernel_string_utf32 </B>
+
+<DD>
+Retrieves UTF-32 string from kernel memory
+<DT><DD>
+See
+<I><A HREF="./function::kernel_string_utf32.3stap.html">function::kernel_string_utf32</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>kernel_string2_utf32 </B>
+
+<DD>
+Retrieves UTF-32 string from kernel memory with alternative error string
+<DT><DD>
+See
+<I><A HREF="./function::kernel_string2_utf32.3stap.html">function::kernel_string2_utf32</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>kernel_string_utf16 </B>
+
+<DD>
+Retrieves UTF-16 string from kernel memory
+<DT><DD>
+See
+<I><A HREF="./function::kernel_string_utf16.3stap.html">function::kernel_string_utf16</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>kernel_string2_utf16 </B>
+
+<DD>
+Retrieves UTF-16 string from kernel memory with alternative error string
+<DT><DD>
+See
+<I><A HREF="./function::kernel_string2_utf16.3stap.html">function::kernel_string2_utf16</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>kernel_long </B>
+
+<DD>
+Retrieves a long value stored in kernel memory
+<DT><DD>
+See
+<I><A HREF="./function::kernel_long.3stap.html">function::kernel_long</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>kernel_int </B>
+
+<DD>
+Retrieves an int value stored in kernel memory
+<DT><DD>
+See
+<I><A HREF="./function::kernel_int.3stap.html">function::kernel_int</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>kernel_short </B>
+
+<DD>
+Retrieves a short value stored in kernel memory
+<DT><DD>
+See
+<I><A HREF="./function::kernel_short.3stap.html">function::kernel_short</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>kernel_char </B>
+
+<DD>
+Retrieves a char value stored in kernel memory
+<DT><DD>
+See
+<I><A HREF="./function::kernel_char.3stap.html">function::kernel_char</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>kernel_pointer </B>
+
+<DD>
+Retrieves a pointer value stored in kernel memory
+<DT><DD>
+See
+<I><A HREF="./function::kernel_pointer.3stap.html">function::kernel_pointer</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::kernel_string.3stap.html">function::kernel_string</A></I>(3stap),
+
+
+<I><A HREF="./function::kernel_string2.3stap.html">function::kernel_string2</A></I>(3stap),
+
+
+<I><A HREF="./function::kernel_string_quoted.3stap.html">function::kernel_string_quoted</A></I>(3stap),
+
+
+<I><A HREF="./function::kernel_string_n.3stap.html">function::kernel_string_n</A></I>(3stap),
+
+
+<I><A HREF="./function::kernel_string_utf32.3stap.html">function::kernel_string_utf32</A></I>(3stap),
+
+
+<I><A HREF="./function::kernel_string2_utf32.3stap.html">function::kernel_string2_utf32</A></I>(3stap),
+
+
+<I><A HREF="./function::kernel_string_utf16.3stap.html">function::kernel_string_utf16</A></I>(3stap),
+
+
+<I><A HREF="./function::kernel_string2_utf16.3stap.html">function::kernel_string2_utf16</A></I>(3stap),
+
+
+<I><A HREF="./function::kernel_long.3stap.html">function::kernel_long</A></I>(3stap),
+
+
+<I><A HREF="./function::kernel_int.3stap.html">function::kernel_int</A></I>(3stap),
+
+
+<I><A HREF="./function::kernel_short.3stap.html">function::kernel_short</A></I>(3stap),
+
+
+<I><A HREF="./function::kernel_char.3stap.html">function::kernel_char</A></I>(3stap),
+
+
+<I><A HREF="./function::kernel_pointer.3stap.html">function::kernel_pointer</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::ctime</TITLE>
+</HEAD><BODY>
+<H1>tapset::ctime</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::ctime - systemtap ctime tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>ctime </B>
+
+<DD>
+Convert seconds since epoch into human readable date/time string
+<DT><DD>
+See
+<I><A HREF="./function::ctime.3stap.html">function::ctime</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::ctime.3stap.html">function::ctime</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::dentry</TITLE>
+</HEAD><BODY>
+<H1>tapset::dentry</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::dentry - systemtap dentry tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT><DD>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::dev</TITLE>
+</HEAD><BODY>
+<H1>tapset::dev</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::dev - systemtap dev tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>MAJOR </B>
+
+<DD>
+Extract major device number from a kernel device number (kdev_t)
+<DT><DD>
+See
+<I><A HREF="./function::MAJOR.3stap.html">function::MAJOR</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>MINOR </B>
+
+<DD>
+Extract minor device number from a kernel device number (kdev_t)
+<DT><DD>
+See
+<I><A HREF="./function::MINOR.3stap.html">function::MINOR</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>MKDEF </B>
+
+<DD>
+Creates a value that can be compared to a kernel device number (kdev_t)
+<DT><DD>
+See
+<I><A HREF="./function::MKDEF.3stap.html">function::MKDEF</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>usrdev2kerndev </B>
+
+<DD>
+Converts a user-space device number into the format used in the kernel
+<DT><DD>
+See
+<I><A HREF="./function::usrdev2kerndev.3stap.html">function::usrdev2kerndev</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::MAJOR.3stap.html">function::MAJOR</A></I>(3stap),
+
+
+<I><A HREF="./function::MINOR.3stap.html">function::MINOR</A></I>(3stap),
+
+
+<I><A HREF="./function::MKDEF.3stap.html">function::MKDEF</A></I>(3stap),
+
+
+<I><A HREF="./function::usrdev2kerndev.3stap.html">function::usrdev2kerndev</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::errno</TITLE>
+</HEAD><BODY>
+<H1>tapset::errno</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::errno - systemtap errno tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>errno_str </B>
+
+<DD>
+Symbolic string associated with error code
+<DT><DD>
+See
+<I><A HREF="./function::errno_str.3stap.html">function::errno_str</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>returnval </B>
+
+<DD>
+Possible return value of probed function
+<DT><DD>
+See
+<I><A HREF="./function::returnval.3stap.html">function::returnval</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>returnstr </B>
+
+<DD>
+Formats the return value as a string
+<DT><DD>
+See
+<I><A HREF="./function::returnstr.3stap.html">function::returnstr</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>return_str </B>
+
+<DD>
+Formats the return value as a string
+<DT><DD>
+See
+<I><A HREF="./function::return_str.3stap.html">function::return_str</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::errno_str.3stap.html">function::errno_str</A></I>(3stap),
+
+
+<I><A HREF="./function::returnval.3stap.html">function::returnval</A></I>(3stap),
+
+
+<I><A HREF="./function::returnstr.3stap.html">function::returnstr</A></I>(3stap),
+
+
+<I><A HREF="./function::return_str.3stap.html">function::return_str</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::guru-delay</TITLE>
+</HEAD><BODY>
+<H1>tapset::guru-delay</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::guru-delay - systemtap guru-delay tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> Functions in the guru-delay tapset allow a probe handler to insert
+<BR> deliberate delays. This is sometimes useful as a fault-injection
+<BR> aid. Due to its likelihood of interference with the kernel, guru
+<BR> mode is required, and overload-prevention is suppressed.
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>mdelay </B>
+
+<DD>
+millisecond delay
+<DT><DD>
+See
+<I><A HREF="./function::mdelay.3stap.html">function::mdelay</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>udelay </B>
+
+<DD>
+microsecond delay
+<DT><DD>
+See
+<I><A HREF="./function::udelay.3stap.html">function::udelay</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::mdelay.3stap.html">function::mdelay</A></I>(3stap),
+
+
+<I><A HREF="./function::udelay.3stap.html">function::udelay</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::guru-signal</TITLE>
+</HEAD><BODY>
+<H1>tapset::guru-signal</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::guru-signal - systemtap guru-signal tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> Functions in the guru-signal tapset allow a probe handler to queue
+<BR> a user-space signals. Such operations may only be safe from some
+<BR> kinds of probe points, therefore are guru-mode only.
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>raise </B>
+
+<DD>
+raise a signal in the current thread
+<DT><DD>
+See
+<I><A HREF="./function::raise.3stap.html">function::raise</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::raise.3stap.html">function::raise</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::indent</TITLE>
+</HEAD><BODY>
+<H1>tapset::indent</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::indent - systemtap indent tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>thread_indent </B>
+
+<DD>
+returns an amount of space with the current task information
+<DT><DD>
+See
+<I><A HREF="./function::thread_indent.3stap.html">function::thread_indent</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>thread_indent_depth </B>
+
+<DD>
+returns the nested-depth of the current task
+<DT><DD>
+See
+<I><A HREF="./function::thread_indent_depth.3stap.html">function::thread_indent_depth</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>indent </B>
+
+<DD>
+returns an amount of space to indent
+<DT><DD>
+See
+<I><A HREF="./function::indent.3stap.html">function::indent</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>indent_depth </B>
+
+<DD>
+returns the global nested-depth
+<DT><DD>
+See
+<I><A HREF="./function::indent_depth.3stap.html">function::indent_depth</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::thread_indent.3stap.html">function::thread_indent</A></I>(3stap),
+
+
+<I><A HREF="./function::thread_indent_depth.3stap.html">function::thread_indent_depth</A></I>(3stap),
+
+
+<I><A HREF="./function::indent.3stap.html">function::indent</A></I>(3stap),
+
+
+<I><A HREF="./function::indent_depth.3stap.html">function::indent_depth</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::inet</TITLE>
+</HEAD><BODY>
+<H1>tapset::inet</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::inet - systemtap inet tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>htonll </B>
+
+<DD>
+Convert 64-bit long long from host to network order
+<DT><DD>
+See
+<I><A HREF="./function::htonll.3stap.html">function::htonll</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>htonl </B>
+
+<DD>
+Convert 32-bit long from host to network order
+<DT><DD>
+See
+<I><A HREF="./function::htonl.3stap.html">function::htonl</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>htons </B>
+
+<DD>
+Convert 16-bit short from host to network order
+<DT><DD>
+See
+<I><A HREF="./function::htons.3stap.html">function::htons</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ntohll </B>
+
+<DD>
+Convert 64-bit long long from network to host order
+<DT><DD>
+See
+<I><A HREF="./function::ntohll.3stap.html">function::ntohll</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ntohl </B>
+
+<DD>
+Convert 32-bit long from network to host order
+<DT><DD>
+See
+<I><A HREF="./function::ntohl.3stap.html">function::ntohl</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ntohs </B>
+
+<DD>
+Convert 16-bit short from network to host order
+<DT><DD>
+See
+<I><A HREF="./function::ntohs.3stap.html">function::ntohs</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::htonll.3stap.html">function::htonll</A></I>(3stap),
+
+
+<I><A HREF="./function::htonl.3stap.html">function::htonl</A></I>(3stap),
+
+
+<I><A HREF="./function::htons.3stap.html">function::htons</A></I>(3stap),
+
+
+<I><A HREF="./function::ntohll.3stap.html">function::ntohll</A></I>(3stap),
+
+
+<I><A HREF="./function::ntohl.3stap.html">function::ntohl</A></I>(3stap),
+
+
+<I><A HREF="./function::ntohs.3stap.html">function::ntohs</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::inet_sock</TITLE>
+</HEAD><BODY>
+<H1>tapset::inet_sock</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::inet_sock - systemtap inet_sock tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>inet_get_local_port </B>
+
+<DD>
+Provide local port number for a kernel socket
+<DT><DD>
+See
+<I><A HREF="./function::inet_get_local_port.3stap.html">function::inet_get_local_port</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>inet_get_ip_source </B>
+
+<DD>
+Provide IP source address string for a kernel socket
+<DT><DD>
+See
+<I><A HREF="./function::inet_get_ip_source.3stap.html">function::inet_get_ip_source</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::inet_get_local_port.3stap.html">function::inet_get_local_port</A></I>(3stap),
+
+
+<I><A HREF="./function::inet_get_ip_source.3stap.html">function::inet_get_ip_source</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::ioblock</TITLE>
+</HEAD><BODY>
+<H1>tapset::ioblock</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::ioblock - systemtap ioblock tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>ioblock.request </B>
+
+<DD>
+Fires whenever making a generic block I/O request.
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ioblock.request.3stap.html">probe::ioblock.request</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ioblock.end </B>
+
+<DD>
+Fires whenever a block I/O transfer is complete.
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ioblock.end.3stap.html">probe::ioblock.end</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ioblock_trace.bounce </B>
+
+<DD>
+Fires whenever a buffer bounce is needed for at least one page of a block IO request.
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ioblock_trace.bounce.3stap.html">probe::ioblock_trace.bounce</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ioblock_trace.request </B>
+
+<DD>
+Fires just as a generic block I/O request is created for a bio.
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ioblock_trace.request.3stap.html">probe::ioblock_trace.request</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ioblock_trace.end </B>
+
+<DD>
+Fires whenever a block I/O transfer is complete.
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ioblock_trace.end.3stap.html">probe::ioblock_trace.end</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./probe::ioblock.request.3stap.html">probe::ioblock.request</A></I>(3stap),
+
+
+<I><A HREF="./probe::ioblock.end.3stap.html">probe::ioblock.end</A></I>(3stap),
+
+
+<I><A HREF="./probe::ioblock_trace.bounce.3stap.html">probe::ioblock_trace.bounce</A></I>(3stap),
+
+
+<I><A HREF="./probe::ioblock_trace.request.3stap.html">probe::ioblock_trace.request</A></I>(3stap),
+
+
+<I><A HREF="./probe::ioblock_trace.end.3stap.html">probe::ioblock_trace.end</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::ioscheduler</TITLE>
+</HEAD><BODY>
+<H1>tapset::ioscheduler</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::ioscheduler - systemtap ioscheduler tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> This family of probe points is used to probe IO scheduler activities.
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>ioscheduler.elv_next_request </B>
+
+<DD>
+Fires when a request is retrieved from the request queue
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ioscheduler.elv_next_request.3stap.html">probe::ioscheduler.elv_next_request</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ioscheduler.elv_next_request.return </B>
+
+<DD>
+Fires when a request retrieval issues a return signal
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ioscheduler.elv_next_request.return.3stap.html">probe::ioscheduler.elv_next_request.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ioscheduler.elv_completed_request </B>
+
+<DD>
+Fires when a request is completed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ioscheduler.elv_completed_request.3stap.html">probe::ioscheduler.elv_completed_request</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ioscheduler.elv_add_request.kp </B>
+
+<DD>
+kprobe based probe to indicate that a request was added to the request queue
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ioscheduler.elv_add_request.kp.3stap.html">probe::ioscheduler.elv_add_request.kp</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ioscheduler.elv_add_request.tp </B>
+
+<DD>
+tracepoint based probe to indicate a request is added to the request queue.
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ioscheduler.elv_add_request.tp.3stap.html">probe::ioscheduler.elv_add_request.tp</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ioscheduler.elv_add_request </B>
+
+<DD>
+probe to indicate request is added to the request queue.
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ioscheduler.elv_add_request.3stap.html">probe::ioscheduler.elv_add_request</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ioscheduler_trace.elv_completed_request </B>
+
+<DD>
+Fires when a request is
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ioscheduler_trace.elv_completed_request.3stap.html">probe::ioscheduler_trace.elv_completed_request</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ioscheduler_trace.elv_issue_request </B>
+
+<DD>
+Fires when a request is
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ioscheduler_trace.elv_issue_request.3stap.html">probe::ioscheduler_trace.elv_issue_request</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ioscheduler_trace.elv_requeue_request </B>
+
+<DD>
+Fires when a request is
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ioscheduler_trace.elv_requeue_request.3stap.html">probe::ioscheduler_trace.elv_requeue_request</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ioscheduler_trace.elv_abort_request </B>
+
+<DD>
+Fires when a request is aborted.
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ioscheduler_trace.elv_abort_request.3stap.html">probe::ioscheduler_trace.elv_abort_request</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ioscheduler_trace.plug </B>
+
+<DD>
+Fires when a request queue is plugged;
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ioscheduler_trace.plug.3stap.html">probe::ioscheduler_trace.plug</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ioscheduler_trace.unplug_io </B>
+
+<DD>
+Fires when a request queue is unplugged;
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ioscheduler_trace.unplug_io.3stap.html">probe::ioscheduler_trace.unplug_io</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ioscheduler_trace.unplug_timer </B>
+
+<DD>
+Fires when unplug timer associated
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ioscheduler_trace.unplug_timer.3stap.html">probe::ioscheduler_trace.unplug_timer</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./probe::ioscheduler.elv_next_request.3stap.html">probe::ioscheduler.elv_next_request</A></I>(3stap),
+
+
+<I><A HREF="./probe::ioscheduler.elv_next_request.return.3stap.html">probe::ioscheduler.elv_next_request.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::ioscheduler.elv_completed_request.3stap.html">probe::ioscheduler.elv_completed_request</A></I>(3stap),
+
+
+<I><A HREF="./probe::ioscheduler.elv_add_request.kp.3stap.html">probe::ioscheduler.elv_add_request.kp</A></I>(3stap),
+
+
+<I><A HREF="./probe::ioscheduler.elv_add_request.tp.3stap.html">probe::ioscheduler.elv_add_request.tp</A></I>(3stap),
+
+
+<I><A HREF="./probe::ioscheduler.elv_add_request.3stap.html">probe::ioscheduler.elv_add_request</A></I>(3stap),
+
+
+<I><A HREF="./probe::ioscheduler_trace.elv_completed_request.3stap.html">probe::ioscheduler_trace.elv_completed_request</A></I>(3stap),
+
+
+<I><A HREF="./probe::ioscheduler_trace.elv_issue_request.3stap.html">probe::ioscheduler_trace.elv_issue_request</A></I>(3stap),
+
+
+<I><A HREF="./probe::ioscheduler_trace.elv_requeue_request.3stap.html">probe::ioscheduler_trace.elv_requeue_request</A></I>(3stap),
+
+
+<I><A HREF="./probe::ioscheduler_trace.elv_abort_request.3stap.html">probe::ioscheduler_trace.elv_abort_request</A></I>(3stap),
+
+
+<I><A HREF="./probe::ioscheduler_trace.plug.3stap.html">probe::ioscheduler_trace.plug</A></I>(3stap),
+
+
+<I><A HREF="./probe::ioscheduler_trace.unplug_io.3stap.html">probe::ioscheduler_trace.unplug_io</A></I>(3stap),
+
+
+<I><A HREF="./probe::ioscheduler_trace.unplug_timer.3stap.html">probe::ioscheduler_trace.unplug_timer</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::ip</TITLE>
+</HEAD><BODY>
+<H1>tapset::ip</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::ip - systemtap ip tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>format_ipaddr </B>
+
+<DD>
+Returns a string representation for an IP address
+<DT><DD>
+See
+<I><A HREF="./function::format_ipaddr.3stap.html">function::format_ipaddr</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ip_ntop </B>
+
+<DD>
+Returns a string representation for an IPv4 address
+<DT><DD>
+See
+<I><A HREF="./function::ip_ntop.3stap.html">function::ip_ntop</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::format_ipaddr.3stap.html">function::format_ipaddr</A></I>(3stap),
+
+
+<I><A HREF="./function::ip_ntop.3stap.html">function::ip_ntop</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::ipmib-filter-default</TITLE>
+</HEAD><BODY>
+<H1>tapset::ipmib-filter-default</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::ipmib-filter-default - systemtap ipmib-filter-default tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>ipmib_filter_key </B>
+
+<DD>
+Default filter function for ipmib.* probes
+<DT><DD>
+See
+<I><A HREF="./function::ipmib_filter_key.3stap.html">function::ipmib_filter_key</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::ipmib_filter_key.3stap.html">function::ipmib_filter_key</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::ipmib</TITLE>
+</HEAD><BODY>
+<H1>tapset::ipmib</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::ipmib - systemtap ipmib tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>ipmib_remote_addr </B>
+
+<DD>
+Get the remote ip address
+<DT><DD>
+See
+<I><A HREF="./function::ipmib_remote_addr.3stap.html">function::ipmib_remote_addr</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ipmib_local_addr </B>
+
+<DD>
+Get the local ip address
+<DT><DD>
+See
+<I><A HREF="./function::ipmib_local_addr.3stap.html">function::ipmib_local_addr</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ipmib_tcp_remote_port </B>
+
+<DD>
+Get the remote tcp port
+<DT><DD>
+See
+<I><A HREF="./function::ipmib_tcp_remote_port.3stap.html">function::ipmib_tcp_remote_port</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ipmib_tcp_local_port </B>
+
+<DD>
+Get the local tcp port
+<DT><DD>
+See
+<I><A HREF="./function::ipmib_tcp_local_port.3stap.html">function::ipmib_tcp_local_port</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ipmib_get_proto </B>
+
+<DD>
+Get the protocol value
+<DT><DD>
+See
+<I><A HREF="./function::ipmib_get_proto.3stap.html">function::ipmib_get_proto</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ipmib.InReceives </B>
+
+<DD>
+Count an arriving packet
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ipmib.InReceives.3stap.html">probe::ipmib.InReceives</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ipmib.InNoRoutes </B>
+
+<DD>
+Count an arriving packet with no matching socket
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ipmib.InNoRoutes.3stap.html">probe::ipmib.InNoRoutes</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ipmib.InAddrErrors </B>
+
+<DD>
+Count arriving packets with an incorrect address
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ipmib.InAddrErrors.3stap.html">probe::ipmib.InAddrErrors</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ipmib.InUnknownProtos </B>
+
+<DD>
+Count arriving packets with an unbound proto
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ipmib.InUnknownProtos.3stap.html">probe::ipmib.InUnknownProtos</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ipmib.InDiscards </B>
+
+<DD>
+Count discarded inbound packets
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ipmib.InDiscards.3stap.html">probe::ipmib.InDiscards</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ipmib.ForwDatagrams </B>
+
+<DD>
+Count forwarded packet
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ipmib.ForwDatagrams.3stap.html">probe::ipmib.ForwDatagrams</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ipmib.OutRequests </B>
+
+<DD>
+Count a request to send a packet
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ipmib.OutRequests.3stap.html">probe::ipmib.OutRequests</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ipmib.ReasmTimeout </B>
+
+<DD>
+Count Reassembly Timeouts
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ipmib.ReasmTimeout.3stap.html">probe::ipmib.ReasmTimeout</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ipmib.ReasmReqds </B>
+
+<DD>
+Count number of packet fragments reassembly requests
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ipmib.ReasmReqds.3stap.html">probe::ipmib.ReasmReqds</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ipmib.FragOKs </B>
+
+<DD>
+Count datagram fragmented successfully
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ipmib.FragOKs.3stap.html">probe::ipmib.FragOKs</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ipmib.FragFails </B>
+
+<DD>
+Count datagram fragmented unsuccessfully
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::ipmib.FragFails.3stap.html">probe::ipmib.FragFails</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::ipmib_remote_addr.3stap.html">function::ipmib_remote_addr</A></I>(3stap),
+
+
+<I><A HREF="./function::ipmib_local_addr.3stap.html">function::ipmib_local_addr</A></I>(3stap),
+
+
+<I><A HREF="./function::ipmib_tcp_remote_port.3stap.html">function::ipmib_tcp_remote_port</A></I>(3stap),
+
+
+<I><A HREF="./function::ipmib_tcp_local_port.3stap.html">function::ipmib_tcp_local_port</A></I>(3stap),
+
+
+<I><A HREF="./function::ipmib_get_proto.3stap.html">function::ipmib_get_proto</A></I>(3stap),
+
+
+<I><A HREF="./probe::ipmib.InReceives.3stap.html">probe::ipmib.InReceives</A></I>(3stap),
+
+
+<I><A HREF="./probe::ipmib.InNoRoutes.3stap.html">probe::ipmib.InNoRoutes</A></I>(3stap),
+
+
+<I><A HREF="./probe::ipmib.InAddrErrors.3stap.html">probe::ipmib.InAddrErrors</A></I>(3stap),
+
+
+<I><A HREF="./probe::ipmib.InUnknownProtos.3stap.html">probe::ipmib.InUnknownProtos</A></I>(3stap),
+
+
+<I><A HREF="./probe::ipmib.InDiscards.3stap.html">probe::ipmib.InDiscards</A></I>(3stap),
+
+
+<I><A HREF="./probe::ipmib.ForwDatagrams.3stap.html">probe::ipmib.ForwDatagrams</A></I>(3stap),
+
+
+<I><A HREF="./probe::ipmib.OutRequests.3stap.html">probe::ipmib.OutRequests</A></I>(3stap),
+
+
+<I><A HREF="./probe::ipmib.ReasmTimeout.3stap.html">probe::ipmib.ReasmTimeout</A></I>(3stap),
+
+
+<I><A HREF="./probe::ipmib.ReasmReqds.3stap.html">probe::ipmib.ReasmReqds</A></I>(3stap),
+
+
+<I><A HREF="./probe::ipmib.FragOKs.3stap.html">probe::ipmib.FragOKs</A></I>(3stap),
+
+
+<I><A HREF="./probe::ipmib.FragFails.3stap.html">probe::ipmib.FragFails</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::irq</TITLE>
+</HEAD><BODY>
+<H1>tapset::irq</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::irq - systemtap irq tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>workqueue.create </B>
+
+<DD>
+Creating a new workqueue
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::workqueue.create.3stap.html">probe::workqueue.create</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>workqueue.insert </B>
+
+<DD>
+Queuing work on a workqueue
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::workqueue.insert.3stap.html">probe::workqueue.insert</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>workqueue.execute </B>
+
+<DD>
+Executing deferred work
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::workqueue.execute.3stap.html">probe::workqueue.execute</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>workqueue.destroy </B>
+
+<DD>
+Destroying workqueue
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::workqueue.destroy.3stap.html">probe::workqueue.destroy</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>irq_handler.entry </B>
+
+<DD>
+Execution of interrupt handler starting
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::irq_handler.entry.3stap.html">probe::irq_handler.entry</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>irq_handler.exit </B>
+
+<DD>
+Execution of interrupt handler completed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::irq_handler.exit.3stap.html">probe::irq_handler.exit</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>softirq.entry </B>
+
+<DD>
+Execution of handler for a pending softirq starting
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::softirq.entry.3stap.html">probe::softirq.entry</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>softirq.exit </B>
+
+<DD>
+Execution of handler for a pending softirq completed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::softirq.exit.3stap.html">probe::softirq.exit</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./probe::workqueue.create.3stap.html">probe::workqueue.create</A></I>(3stap),
+
+
+<I><A HREF="./probe::workqueue.insert.3stap.html">probe::workqueue.insert</A></I>(3stap),
+
+
+<I><A HREF="./probe::workqueue.execute.3stap.html">probe::workqueue.execute</A></I>(3stap),
+
+
+<I><A HREF="./probe::workqueue.destroy.3stap.html">probe::workqueue.destroy</A></I>(3stap),
+
+
+<I><A HREF="./probe::irq_handler.entry.3stap.html">probe::irq_handler.entry</A></I>(3stap),
+
+
+<I><A HREF="./probe::irq_handler.exit.3stap.html">probe::irq_handler.exit</A></I>(3stap),
+
+
+<I><A HREF="./probe::softirq.entry.3stap.html">probe::softirq.entry</A></I>(3stap),
+
+
+<I><A HREF="./probe::softirq.exit.3stap.html">probe::softirq.exit</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::kprocess</TITLE>
+</HEAD><BODY>
+<H1>tapset::kprocess</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::kprocess - systemtap kprocess tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> This family of probe points is used to probe process-related activities.
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>kprocess.create </B>
+
+<DD>
+Fires whenever a new process or thread is successfully created
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::kprocess.create.3stap.html">probe::kprocess.create</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>kprocess.start </B>
+
+<DD>
+Starting new process
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::kprocess.start.3stap.html">probe::kprocess.start</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>kprocess.exec </B>
+
+<DD>
+Attempt to exec to a new program
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::kprocess.exec.3stap.html">probe::kprocess.exec</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>kprocess.exec_complete </B>
+
+<DD>
+Return from exec to a new program
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::kprocess.exec_complete.3stap.html">probe::kprocess.exec_complete</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>kprocess.exit </B>
+
+<DD>
+Exit from process
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::kprocess.exit.3stap.html">probe::kprocess.exit</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>kprocess.release </B>
+
+<DD>
+Process released
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::kprocess.release.3stap.html">probe::kprocess.release</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./probe::kprocess.create.3stap.html">probe::kprocess.create</A></I>(3stap),
+
+
+<I><A HREF="./probe::kprocess.start.3stap.html">probe::kprocess.start</A></I>(3stap),
+
+
+<I><A HREF="./probe::kprocess.exec.3stap.html">probe::kprocess.exec</A></I>(3stap),
+
+
+<I><A HREF="./probe::kprocess.exec_complete.3stap.html">probe::kprocess.exec_complete</A></I>(3stap),
+
+
+<I><A HREF="./probe::kprocess.exit.3stap.html">probe::kprocess.exit</A></I>(3stap),
+
+
+<I><A HREF="./probe::kprocess.release.3stap.html">probe::kprocess.release</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::linuxmib-filter-default</TITLE>
+</HEAD><BODY>
+<H1>tapset::linuxmib-filter-default</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::linuxmib-filter-default - systemtap linuxmib-filter-default tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>linuxmib_filter_key </B>
+
+<DD>
+Default filter function for linuxmib.* probes
+<DT><DD>
+See
+<I><A HREF="./function::linuxmib_filter_key.3stap.html">function::linuxmib_filter_key</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::linuxmib_filter_key.3stap.html">function::linuxmib_filter_key</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::linuxmib</TITLE>
+</HEAD><BODY>
+<H1>tapset::linuxmib</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::linuxmib - systemtap linuxmib tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>linuxmib.DelayedACKs </B>
+
+<DD>
+Count of delayed acks
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::linuxmib.DelayedACKs.3stap.html">probe::linuxmib.DelayedACKs</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>linuxmib.ListenOverflows </B>
+
+<DD>
+Count of times a listen queue overflowed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::linuxmib.ListenOverflows.3stap.html">probe::linuxmib.ListenOverflows</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>linuxmib.ListenDrops </B>
+
+<DD>
+Count of times conn request that were dropped
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::linuxmib.ListenDrops.3stap.html">probe::linuxmib.ListenDrops</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>linuxmib.TCPMemoryPressures </B>
+
+<DD>
+Count of times memory pressure was used
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::linuxmib.TCPMemoryPressures.3stap.html">probe::linuxmib.TCPMemoryPressures</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./probe::linuxmib.DelayedACKs.3stap.html">probe::linuxmib.DelayedACKs</A></I>(3stap),
+
+
+<I><A HREF="./probe::linuxmib.ListenOverflows.3stap.html">probe::linuxmib.ListenOverflows</A></I>(3stap),
+
+
+<I><A HREF="./probe::linuxmib.ListenDrops.3stap.html">probe::linuxmib.ListenDrops</A></I>(3stap),
+
+
+<I><A HREF="./probe::linuxmib.TCPMemoryPressures.3stap.html">probe::linuxmib.TCPMemoryPressures</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::loadavg</TITLE>
+</HEAD><BODY>
+<H1>tapset::loadavg</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::loadavg - systemtap loadavg tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> Functions in the loadavg tapset allow a probe handler to capture
+<BR> the load average.
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>get_loadavg_index </B>
+
+<DD>
+Get the load average for a specified interval
+<DT><DD>
+See
+<I><A HREF="./function::get_loadavg_index.3stap.html">function::get_loadavg_index</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sprint_loadavg </B>
+
+<DD>
+Report a pretty-printed load average
+<DT><DD>
+See
+<I><A HREF="./function::sprint_loadavg.3stap.html">function::sprint_loadavg</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::get_loadavg_index.3stap.html">function::get_loadavg_index</A></I>(3stap),
+
+
+<I><A HREF="./function::sprint_loadavg.3stap.html">function::sprint_loadavg</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::logging</TITLE>
+</HEAD><BODY>
+<H1>tapset::logging</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::logging - systemtap logging tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>log </B>
+
+<DD>
+Send a line to the common trace buffer
+<DT><DD>
+See
+<I><A HREF="./function::log.3stap.html">function::log</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>warn </B>
+
+<DD>
+Send a line to the warning stream
+<DT><DD>
+See
+<I><A HREF="./function::warn.3stap.html">function::warn</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>exit </B>
+
+<DD>
+Start shutting down probing script.
+<DT><DD>
+See
+<I><A HREF="./function::exit.3stap.html">function::exit</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>error </B>
+
+<DD>
+Send an error message
+<DT><DD>
+See
+<I><A HREF="./function::error.3stap.html">function::error</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ftrace </B>
+
+<DD>
+Send a message to the ftrace ring-buffer
+<DT><DD>
+See
+<I><A HREF="./function::ftrace.3stap.html">function::ftrace</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>printk </B>
+
+<DD>
+Send a message to the kernel trace buffer
+<DT><DD>
+See
+<I><A HREF="./function::printk.3stap.html">function::printk</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::log.3stap.html">function::log</A></I>(3stap),
+
+
+<I><A HREF="./function::warn.3stap.html">function::warn</A></I>(3stap),
+
+
+<I><A HREF="./function::exit.3stap.html">function::exit</A></I>(3stap),
+
+
+<I><A HREF="./function::error.3stap.html">function::error</A></I>(3stap),
+
+
+<I><A HREF="./function::ftrace.3stap.html">function::ftrace</A></I>(3stap),
+
+
+<I><A HREF="./function::printk.3stap.html">function::printk</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::memory</TITLE>
+</HEAD><BODY>
+<H1>tapset::memory</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::memory - systemtap memory tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> This family of probe points is used to probe memory-related events.
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>vm_fault_contains </B>
+
+<DD>
+Test return value for page fault reason
+<DT><DD>
+See
+<I><A HREF="./function::vm_fault_contains.3stap.html">function::vm_fault_contains</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>vm.pagefault </B>
+
+<DD>
+Records that a page fault occurred
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::vm.pagefault.3stap.html">probe::vm.pagefault</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>vm.pagefault.return </B>
+
+<DD>
+Indicates what type of fault occurred
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::vm.pagefault.return.3stap.html">probe::vm.pagefault.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>addr_to_node </B>
+
+<DD>
+Returns which node a given address belongs to within a NUMA system
+<DT><DD>
+See
+<I><A HREF="./function::addr_to_node.3stap.html">function::addr_to_node</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>vm.write_shared </B>
+
+<DD>
+Attempts at writing to a shared page
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::vm.write_shared.3stap.html">probe::vm.write_shared</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>vm.write_shared_copy </B>
+
+<DD>
+Page copy for shared page write
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::vm.write_shared_copy.3stap.html">probe::vm.write_shared_copy</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>vm.mmap </B>
+
+<DD>
+Fires when an mmap is requested
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::vm.mmap.3stap.html">probe::vm.mmap</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>vm.munmap </B>
+
+<DD>
+Fires when an munmap is requested
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::vm.munmap.3stap.html">probe::vm.munmap</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>vm.brk </B>
+
+<DD>
+Fires when a brk is requested (i.e. the heap will be resized)
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::vm.brk.3stap.html">probe::vm.brk</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>vm.oom_kill </B>
+
+<DD>
+Fires when a thread is selected for termination by the OOM killer
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::vm.oom_kill.3stap.html">probe::vm.oom_kill</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>vm.kmalloc </B>
+
+<DD>
+Fires when kmalloc is requested
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::vm.kmalloc.3stap.html">probe::vm.kmalloc</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>vm.kmem_cache_alloc </B>
+
+<DD>
+Fires when kmem_cache_alloc is requested
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::vm.kmem_cache_alloc.3stap.html">probe::vm.kmem_cache_alloc</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>vm.kmalloc_node </B>
+
+<DD>
+Fires when kmalloc_node is requested
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::vm.kmalloc_node.3stap.html">probe::vm.kmalloc_node</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>vm.kmem_cache_alloc_node </B>
+
+<DD>
+Fires when kmem_cache_alloc_node is requested
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::vm.kmem_cache_alloc_node.3stap.html">probe::vm.kmem_cache_alloc_node</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>vm.kfree </B>
+
+<DD>
+Fires when kfree is requested
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::vm.kfree.3stap.html">probe::vm.kfree</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>vm.kmem_cache_free </B>
+
+<DD>
+Fires when kmem_cache_free is requested
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::vm.kmem_cache_free.3stap.html">probe::vm.kmem_cache_free</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::vm_fault_contains.3stap.html">function::vm_fault_contains</A></I>(3stap),
+
+
+<I><A HREF="./function::addr_to_node.3stap.html">function::addr_to_node</A></I>(3stap),
+
+
+<I><A HREF="./probe::vm.pagefault.3stap.html">probe::vm.pagefault</A></I>(3stap),
+
+
+<I><A HREF="./probe::vm.pagefault.return.3stap.html">probe::vm.pagefault.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::vm.write_shared.3stap.html">probe::vm.write_shared</A></I>(3stap),
+
+
+<I><A HREF="./probe::vm.write_shared_copy.3stap.html">probe::vm.write_shared_copy</A></I>(3stap),
+
+
+<I><A HREF="./probe::vm.mmap.3stap.html">probe::vm.mmap</A></I>(3stap),
+
+
+<I><A HREF="./probe::vm.munmap.3stap.html">probe::vm.munmap</A></I>(3stap),
+
+
+<I><A HREF="./probe::vm.brk.3stap.html">probe::vm.brk</A></I>(3stap),
+
+
+<I><A HREF="./probe::vm.oom_kill.3stap.html">probe::vm.oom_kill</A></I>(3stap),
+
+
+<I><A HREF="./probe::vm.kmalloc.3stap.html">probe::vm.kmalloc</A></I>(3stap),
+
+
+<I><A HREF="./probe::vm.kmem_cache_alloc.3stap.html">probe::vm.kmem_cache_alloc</A></I>(3stap),
+
+
+<I><A HREF="./probe::vm.kmalloc_node.3stap.html">probe::vm.kmalloc_node</A></I>(3stap),
+
+
+<I><A HREF="./probe::vm.kmem_cache_alloc_node.3stap.html">probe::vm.kmem_cache_alloc_node</A></I>(3stap),
+
+
+<I><A HREF="./probe::vm.kfree.3stap.html">probe::vm.kfree</A></I>(3stap),
+
+
+<I><A HREF="./probe::vm.kmem_cache_free.3stap.html">probe::vm.kmem_cache_free</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::netfilter</TITLE>
+</HEAD><BODY>
+<H1>tapset::netfilter</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::netfilter - systemtap netfilter tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>netfilter.ip.pre_routing </B>
+
+<DD>
+Called before an IP packet is routed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netfilter.ip.pre_routing.3stap.html">probe::netfilter.ip.pre_routing</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>netfilter.ip.local_in </B>
+
+<DD>
+Called on an incoming IP packet addressed to the local computer
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netfilter.ip.local_in.3stap.html">probe::netfilter.ip.local_in</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>netfilter.ip.forward </B>
+
+<DD>
+Called on an incoming IP packet addressed to some other computer
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netfilter.ip.forward.3stap.html">probe::netfilter.ip.forward</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>netfilter.ip.local_out </B>
+
+<DD>
+Called on an outgoing IP packet
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netfilter.ip.local_out.3stap.html">probe::netfilter.ip.local_out</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>netfilter.ip.post_routing </B>
+
+<DD>
+Called immediately before an outgoing IP packet leaves the computer
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netfilter.ip.post_routing.3stap.html">probe::netfilter.ip.post_routing</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>netfilter.bridge.local_in </B>
+
+<DD>
+Called on a bridging packet destined for the local computer
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netfilter.bridge.local_in.3stap.html">probe::netfilter.bridge.local_in</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>netfilter.bridge.forward </B>
+
+<DD>
+Called on an incoming bridging packet destined for some other computer
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netfilter.bridge.forward.3stap.html">probe::netfilter.bridge.forward</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>netfilter.bridge.local_out </B>
+
+<DD>
+Called on a bridging packet coming from a local process
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netfilter.bridge.local_out.3stap.html">probe::netfilter.bridge.local_out</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./probe::netfilter.ip.pre_routing.3stap.html">probe::netfilter.ip.pre_routing</A></I>(3stap),
+
+
+<I><A HREF="./probe::netfilter.ip.local_in.3stap.html">probe::netfilter.ip.local_in</A></I>(3stap),
+
+
+<I><A HREF="./probe::netfilter.ip.forward.3stap.html">probe::netfilter.ip.forward</A></I>(3stap),
+
+
+<I><A HREF="./probe::netfilter.ip.local_out.3stap.html">probe::netfilter.ip.local_out</A></I>(3stap),
+
+
+<I><A HREF="./probe::netfilter.ip.post_routing.3stap.html">probe::netfilter.ip.post_routing</A></I>(3stap),
+
+
+<I><A HREF="./probe::netfilter.arp.in.3stap.html">probe::netfilter.arp.in</A></I>(3stap),
+
+
+<I><A HREF="./probe::netfilter.arp.out.3stap.html">probe::netfilter.arp.out</A></I>(3stap),
+
+
+<I><A HREF="./probe::netfilter.arp.forward.3stap.html">probe::netfilter.arp.forward</A></I>(3stap),
+
+
+<I><A HREF="./probe::netfilter.bridge.pre_routing.3stap.html">probe::netfilter.bridge.pre_routing</A></I>(3stap),
+
+
+<I><A HREF="./probe::netfilter.bridge.local_in.3stap.html">probe::netfilter.bridge.local_in</A></I>(3stap),
+
+
+<I><A HREF="./probe::netfilter.bridge.forward.3stap.html">probe::netfilter.bridge.forward</A></I>(3stap),
+
+
+<I><A HREF="./probe::netfilter.bridge.local_out.3stap.html">probe::netfilter.bridge.local_out</A></I>(3stap),
+
+
+<I><A HREF="./probe::netfilter.bridge.post_routing.3stap.html">probe::netfilter.bridge.post_routing</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::networking</TITLE>
+</HEAD><BODY>
+<H1>tapset::networking</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::networking - systemtap networking tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> This family of probe points is used to probe the activities of the network device.
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>netdev.receive </B>
+
+<DD>
+Data received from network device.
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netdev.receive.3stap.html">probe::netdev.receive</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>netdev.transmit </B>
+
+<DD>
+Network device transmitting buffer
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netdev.transmit.3stap.html">probe::netdev.transmit</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>netdev.change_mtu </B>
+
+<DD>
+Called when the netdev MTU is changed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netdev.change_mtu.3stap.html">probe::netdev.change_mtu</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>netdev.open </B>
+
+<DD>
+Called when the device is opened
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netdev.open.3stap.html">probe::netdev.open</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>netdev.close </B>
+
+<DD>
+Called when the device is closed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netdev.close.3stap.html">probe::netdev.close</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>netdev.hard_transmit </B>
+
+<DD>
+Called when the devices is going to TX (hard)
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netdev.hard_transmit.3stap.html">probe::netdev.hard_transmit</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>netdev.rx </B>
+
+<DD>
+Called when the device is going to receive a packet
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netdev.rx.3stap.html">probe::netdev.rx</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>netdev.change_rx_flag </B>
+
+<DD>
+Called when the device RX flag will be changed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netdev.change_rx_flag.3stap.html">probe::netdev.change_rx_flag</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>netdev.set_promiscuity </B>
+
+<DD>
+Called when the device enters/leaves promiscuity
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netdev.set_promiscuity.3stap.html">probe::netdev.set_promiscuity</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>netdev.ioctl </B>
+
+<DD>
+Called when the device suffers an IOCTL
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netdev.ioctl.3stap.html">probe::netdev.ioctl</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>netdev.register </B>
+
+<DD>
+Called when the device is registered
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netdev.register.3stap.html">probe::netdev.register</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>netdev.unregister </B>
+
+<DD>
+Called when the device is being unregistered
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netdev.unregister.3stap.html">probe::netdev.unregister</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>netdev.get_stats </B>
+
+<DD>
+Called when someone asks the device statistics
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netdev.get_stats.3stap.html">probe::netdev.get_stats</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>netdev.change_mac </B>
+
+<DD>
+Called when the netdev_name has the MAC changed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::netdev.change_mac.3stap.html">probe::netdev.change_mac</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./probe::netdev.receive.3stap.html">probe::netdev.receive</A></I>(3stap),
+
+
+<I><A HREF="./probe::netdev.transmit.3stap.html">probe::netdev.transmit</A></I>(3stap),
+
+
+<I><A HREF="./probe::netdev.change_mtu.3stap.html">probe::netdev.change_mtu</A></I>(3stap),
+
+
+<I><A HREF="./probe::netdev.open.3stap.html">probe::netdev.open</A></I>(3stap),
+
+
+<I><A HREF="./probe::netdev.close.3stap.html">probe::netdev.close</A></I>(3stap),
+
+
+<I><A HREF="./probe::netdev.hard_transmit.3stap.html">probe::netdev.hard_transmit</A></I>(3stap),
+
+
+<I><A HREF="./probe::netdev.rx.3stap.html">probe::netdev.rx</A></I>(3stap),
+
+
+<I><A HREF="./probe::netdev.change_rx_flag.3stap.html">probe::netdev.change_rx_flag</A></I>(3stap),
+
+
+<I><A HREF="./probe::netdev.set_promiscuity.3stap.html">probe::netdev.set_promiscuity</A></I>(3stap),
+
+
+<I><A HREF="./probe::netdev.ioctl.3stap.html">probe::netdev.ioctl</A></I>(3stap),
+
+
+<I><A HREF="./probe::netdev.register.3stap.html">probe::netdev.register</A></I>(3stap),
+
+
+<I><A HREF="./probe::netdev.unregister.3stap.html">probe::netdev.unregister</A></I>(3stap),
+
+
+<I><A HREF="./probe::netdev.get_stats.3stap.html">probe::netdev.get_stats</A></I>(3stap),
+
+
+<I><A HREF="./probe::netdev.change_mac.3stap.html">probe::netdev.change_mac</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::nfs</TITLE>
+</HEAD><BODY>
+<H1>tapset::nfs</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::nfs - systemtap nfs tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>nfs.fop.llseek </B>
+
+<DD>
+NFS client llseek operation
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.fop.llseek.3stap.html">probe::nfs.fop.llseek</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.fop.read </B>
+
+<DD>
+NFS client read operation
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.fop.read.3stap.html">probe::nfs.fop.read</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.fop.write </B>
+
+<DD>
+NFS client write operation
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.fop.write.3stap.html">probe::nfs.fop.write</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.fop.aio_read </B>
+
+<DD>
+NFS client aio_read file operation
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.fop.aio_read.3stap.html">probe::nfs.fop.aio_read</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.fop.read_iter </B>
+
+<DD>
+NFS client read_iter file operation
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.fop.read_iter.3stap.html">probe::nfs.fop.read_iter</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.fop.aio_write </B>
+
+<DD>
+NFS client aio_write file operation
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.fop.aio_write.3stap.html">probe::nfs.fop.aio_write</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.fop.write_iter </B>
+
+<DD>
+NFS client write_iter file operation
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.fop.write_iter.3stap.html">probe::nfs.fop.write_iter</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.fop.mmap </B>
+
+<DD>
+NFS client mmap operation
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.fop.mmap.3stap.html">probe::nfs.fop.mmap</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.fop.open </B>
+
+<DD>
+NFS client file open operation
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.fop.open.3stap.html">probe::nfs.fop.open</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.fop.flush </B>
+
+<DD>
+NFS client flush file operation
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.fop.flush.3stap.html">probe::nfs.fop.flush</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.fop.release </B>
+
+<DD>
+NFS client release page operation
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.fop.release.3stap.html">probe::nfs.fop.release</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.fop.fsync </B>
+
+<DD>
+NFS client fsync operation
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.fop.fsync.3stap.html">probe::nfs.fop.fsync</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.fop.lock </B>
+
+<DD>
+NFS client file lock operation
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.fop.lock.3stap.html">probe::nfs.fop.lock</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.fop.sendfile </B>
+
+<DD>
+NFS client send file operation
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.fop.sendfile.3stap.html">probe::nfs.fop.sendfile</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.fop.check_flags </B>
+
+<DD>
+NFS client checking flag operation
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.fop.check_flags.3stap.html">probe::nfs.fop.check_flags</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.aop.readpage </B>
+
+<DD>
+NFS client synchronously reading a page
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.aop.readpage.3stap.html">probe::nfs.aop.readpage</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.aop.readpages </B>
+
+<DD>
+NFS client reading multiple pages
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.aop.readpages.3stap.html">probe::nfs.aop.readpages</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.aop.set_page_dirty </B>
+
+<DD>
+NFS client marking page as dirty
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.aop.set_page_dirty.3stap.html">probe::nfs.aop.set_page_dirty</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.aop.writepage </B>
+
+<DD>
+NFS client writing a mapped page to the NFS server
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.aop.writepage.3stap.html">probe::nfs.aop.writepage</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.aop.writepages </B>
+
+<DD>
+NFS client writing several dirty pages to the NFS server
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.aop.writepages.3stap.html">probe::nfs.aop.writepages</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.aop.write_begin </B>
+
+<DD>
+NFS client begin to write data
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.aop.write_begin.3stap.html">probe::nfs.aop.write_begin</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.aop.write_end </B>
+
+<DD>
+NFS client complete writing data
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.aop.write_end.3stap.html">probe::nfs.aop.write_end</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.aop.release_page </B>
+
+<DD>
+NFS client releasing page
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.aop.release_page.3stap.html">probe::nfs.aop.release_page</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./probe::nfs.fop.llseek.3stap.html">probe::nfs.fop.llseek</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.fop.read.3stap.html">probe::nfs.fop.read</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.fop.write.3stap.html">probe::nfs.fop.write</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.fop.aio_read.3stap.html">probe::nfs.fop.aio_read</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.fop.read_iter.3stap.html">probe::nfs.fop.read_iter</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.fop.aio_write.3stap.html">probe::nfs.fop.aio_write</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.fop.write_iter.3stap.html">probe::nfs.fop.write_iter</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.fop.mmap.3stap.html">probe::nfs.fop.mmap</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.fop.open.3stap.html">probe::nfs.fop.open</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.fop.flush.3stap.html">probe::nfs.fop.flush</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.fop.release.3stap.html">probe::nfs.fop.release</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.fop.fsync.3stap.html">probe::nfs.fop.fsync</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.fop.lock.3stap.html">probe::nfs.fop.lock</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.fop.sendfile.3stap.html">probe::nfs.fop.sendfile</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.fop.check_flags.3stap.html">probe::nfs.fop.check_flags</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.aop.readpage.3stap.html">probe::nfs.aop.readpage</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.aop.readpages.3stap.html">probe::nfs.aop.readpages</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.aop.set_page_dirty.3stap.html">probe::nfs.aop.set_page_dirty</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.aop.writepage.3stap.html">probe::nfs.aop.writepage</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.aop.writepages.3stap.html">probe::nfs.aop.writepages</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.aop.write_begin.3stap.html">probe::nfs.aop.write_begin</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.aop.write_end.3stap.html">probe::nfs.aop.write_end</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.aop.release_page.3stap.html">probe::nfs.aop.release_page</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::nfs_proc</TITLE>
+</HEAD><BODY>
+<H1>tapset::nfs_proc</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::nfs_proc - systemtap nfs_proc tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>nfs.proc.lookup </B>
+
+<DD>
+NFS client opens/searches a file on server
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.proc.lookup.3stap.html">probe::nfs.proc.lookup</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.proc.read </B>
+
+<DD>
+NFS client synchronously reads file from server
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.proc.read.3stap.html">probe::nfs.proc.read</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.proc.write </B>
+
+<DD>
+NFS client synchronously writes file to server
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.proc.write.3stap.html">probe::nfs.proc.write</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.proc.commit </B>
+
+<DD>
+NFS client committing data on server
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.proc.commit.3stap.html">probe::nfs.proc.commit</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.proc.read_setup </B>
+
+<DD>
+NFS client setting up a read RPC task
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.proc.read_setup.3stap.html">probe::nfs.proc.read_setup</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.proc.read_done </B>
+
+<DD>
+NFS client response to a read RPC task
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.proc.read_done.3stap.html">probe::nfs.proc.read_done</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.proc.write_setup </B>
+
+<DD>
+NFS client setting up a write RPC task
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.proc.write_setup.3stap.html">probe::nfs.proc.write_setup</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.proc.write_done </B>
+
+<DD>
+NFS client response to a write RPC task
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.proc.write_done.3stap.html">probe::nfs.proc.write_done</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.proc.commit_setup </B>
+
+<DD>
+NFS client setting up a commit RPC task
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.proc.commit_setup.3stap.html">probe::nfs.proc.commit_setup</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.proc.commit_done </B>
+
+<DD>
+NFS client response to a commit RPC task
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.proc.commit_done.3stap.html">probe::nfs.proc.commit_done</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.proc.rename_setup </B>
+
+<DD>
+NFS client setting up a rename RPC task
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.proc.rename_setup.3stap.html">probe::nfs.proc.rename_setup</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.proc.rename_done </B>
+
+<DD>
+NFS client response to a rename RPC task
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.proc.rename_done.3stap.html">probe::nfs.proc.rename_done</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.proc.open </B>
+
+<DD>
+NFS client allocates file read/write context information
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.proc.open.3stap.html">probe::nfs.proc.open</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.proc.release </B>
+
+<DD>
+<BR> NFS client releases file read/write context information
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.proc.release.3stap.html">probe::nfs.proc.release</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.proc.handle_exception </B>
+
+<DD>
+NFS client handling an NFSv4 exception
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.proc.handle_exception.3stap.html">probe::nfs.proc.handle_exception</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.proc.create </B>
+
+<DD>
+NFS client creating file on server
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.proc.create.3stap.html">probe::nfs.proc.create</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.proc.remove </B>
+
+<DD>
+NFS client removes a file on server
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.proc.remove.3stap.html">probe::nfs.proc.remove</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfs.proc.rename </B>
+
+<DD>
+NFS client renames a file on server
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfs.proc.rename.3stap.html">probe::nfs.proc.rename</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./probe::nfs.proc.lookup.3stap.html">probe::nfs.proc.lookup</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.proc.read.3stap.html">probe::nfs.proc.read</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.proc.write.3stap.html">probe::nfs.proc.write</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.proc.commit.3stap.html">probe::nfs.proc.commit</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.proc.read_setup.3stap.html">probe::nfs.proc.read_setup</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.proc.read_done.3stap.html">probe::nfs.proc.read_done</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.proc.write_setup.3stap.html">probe::nfs.proc.write_setup</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.proc.write_done.3stap.html">probe::nfs.proc.write_done</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.proc.commit_setup.3stap.html">probe::nfs.proc.commit_setup</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.proc.commit_done.3stap.html">probe::nfs.proc.commit_done</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.proc.rename_setup.3stap.html">probe::nfs.proc.rename_setup</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.proc.rename_done.3stap.html">probe::nfs.proc.rename_done</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.proc.open.3stap.html">probe::nfs.proc.open</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.proc.release.3stap.html">probe::nfs.proc.release</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.proc.handle_exception.3stap.html">probe::nfs.proc.handle_exception</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.proc.create.3stap.html">probe::nfs.proc.create</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.proc.remove.3stap.html">probe::nfs.proc.remove</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfs.proc.rename.3stap.html">probe::nfs.proc.rename</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::nfsd</TITLE>
+</HEAD><BODY>
+<H1>tapset::nfsd</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::nfsd - systemtap nfsd tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>nfsd.dispatch </B>
+
+<DD>
+NFS server receives an operation from client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfsd.dispatch.3stap.html">probe::nfsd.dispatch</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfsd.proc.lookup </B>
+
+<DD>
+NFS server opening or searching for a file for client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfsd.proc.lookup.3stap.html">probe::nfsd.proc.lookup</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfsd.proc.read </B>
+
+<DD>
+NFS server reading file for client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfsd.proc.read.3stap.html">probe::nfsd.proc.read</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfsd.proc.write </B>
+
+<DD>
+NFS server writing data to file for client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfsd.proc.write.3stap.html">probe::nfsd.proc.write</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfsd.proc.commit </B>
+
+<DD>
+NFS server performing a commit operation for client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfsd.proc.commit.3stap.html">probe::nfsd.proc.commit</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfsd.proc.create </B>
+
+<DD>
+NFS server creating a file for client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfsd.proc.create.3stap.html">probe::nfsd.proc.create</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfsd.proc.remove </B>
+
+<DD>
+NFS server removing a file for client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfsd.proc.remove.3stap.html">probe::nfsd.proc.remove</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfsd.proc.rename </B>
+
+<DD>
+NFS Server renaming a file for client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfsd.proc.rename.3stap.html">probe::nfsd.proc.rename</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfsd.open </B>
+
+<DD>
+NFS server opening a file for client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfsd.open.3stap.html">probe::nfsd.open</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfsd.close </B>
+
+<DD>
+NFS server closing a file for client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfsd.close.3stap.html">probe::nfsd.close</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfsd.read </B>
+
+<DD>
+NFS server reading data from a file for client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfsd.read.3stap.html">probe::nfsd.read</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfsd.write </B>
+
+<DD>
+NFS server writing data to a file for client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfsd.write.3stap.html">probe::nfsd.write</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfsd.commit </B>
+
+<DD>
+NFS server committing all pending writes to stable storage
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfsd.commit.3stap.html">probe::nfsd.commit</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfsd.lookup </B>
+
+<DD>
+NFS server opening or searching file for a file for client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfsd.lookup.3stap.html">probe::nfsd.lookup</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfsd.create </B>
+
+<DD>
+NFS server creating a file(regular,dir,device,fifo) for client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfsd.create.3stap.html">probe::nfsd.create</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfsd.createv3 </B>
+
+<DD>
+NFS server creating a regular file or set file attributes for client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfsd.createv3.3stap.html">probe::nfsd.createv3</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nfsd.unlink </B>
+
+<DD>
+NFS server removing a file or a directory for client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::nfsd.unlink.3stap.html">probe::nfsd.unlink</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./probe::nfsd.dispatch.3stap.html">probe::nfsd.dispatch</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfsd.proc.lookup.3stap.html">probe::nfsd.proc.lookup</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfsd.proc.read.3stap.html">probe::nfsd.proc.read</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfsd.proc.write.3stap.html">probe::nfsd.proc.write</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfsd.proc.commit.3stap.html">probe::nfsd.proc.commit</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfsd.proc.create.3stap.html">probe::nfsd.proc.create</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfsd.proc.remove.3stap.html">probe::nfsd.proc.remove</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfsd.proc.rename.3stap.html">probe::nfsd.proc.rename</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfsd.open.3stap.html">probe::nfsd.open</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfsd.close.3stap.html">probe::nfsd.close</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfsd.read.3stap.html">probe::nfsd.read</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfsd.write.3stap.html">probe::nfsd.write</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfsd.commit.3stap.html">probe::nfsd.commit</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfsd.lookup.3stap.html">probe::nfsd.lookup</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfsd.create.3stap.html">probe::nfsd.create</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfsd.createv3.3stap.html">probe::nfsd.createv3</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfsd.unlink.3stap.html">probe::nfsd.unlink</A></I>(3stap),
+
+
+<I><A HREF="./probe::nfsd.rename.3stap.html">probe::nfsd.rename</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::nfsderrno</TITLE>
+</HEAD><BODY>
+<H1>tapset::nfsderrno</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::nfsderrno - systemtap nfsderrno tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>nfsderror </B>
+
+<DD>
+Convert nfsd error number into string
+<DT><DD>
+See
+<I><A HREF="./function::nfsderror.3stap.html">function::nfsderror</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::nfsderror.3stap.html">function::nfsderror</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::panic</TITLE>
+</HEAD><BODY>
+<H1>tapset::panic</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::panic - systemtap panic tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> Functions in the panic tapset allow a probe handler to invoke
+<BR> the system panic routine with a user-specified message.
+<P>
+<BR> This may be used with a crash dump collection facility such as
+<BR> kexec/kdump in order to capture data for post-mortem debugging.
+<P>
+<BR> Due to the fact that this will bring the system to an immediate
+<BR> halt the functions in this tapset require guru mode.
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>panic </B>
+
+<DD>
+trigger a panic
+<DT><DD>
+See
+<I><A HREF="./function::panic.3stap.html">function::panic</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::panic.3stap.html">function::panic</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::pn</TITLE>
+</HEAD><BODY>
+<H1>tapset::pn</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::pn - systemtap pn tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>pn </B>
+
+<DD>
+Returns the active probe name
+<DT><DD>
+See
+<I><A HREF="./function::pn.3stap.html">function::pn</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>pnlabel </B>
+
+<DD>
+Returns the label name parsed from the probe name
+<DT><DD>
+See
+<I><A HREF="./function::pnlabel.3stap.html">function::pnlabel</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::pn.3stap.html">function::pn</A></I>(3stap),
+
+
+<I><A HREF="./function::pnlabel.3stap.html">function::pnlabel</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::proc_mem</TITLE>
+</HEAD><BODY>
+<H1>tapset::proc_mem</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::proc_mem - systemtap proc_mem tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> Process memory query and utility functions provide information about
+<BR> the memory usage of the current application. These functions provide
+<BR> information about the full size, resident, shared, code and data used
+<BR> by the current process. And provide utility functions to query the
+<BR> page size of the current architecture and create human readable string
+<BR> representations of bytes and pages used.
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>proc_mem_size </B>
+
+<DD>
+Total program virtual memory size in pages
+<DT><DD>
+See
+<I><A HREF="./function::proc_mem_size.3stap.html">function::proc_mem_size</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>proc_mem_size_pid </B>
+
+<DD>
+Total program virtual memory size in pages
+<DT><DD>
+See
+<I><A HREF="./function::proc_mem_size_pid.3stap.html">function::proc_mem_size_pid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>proc_mem_rss </B>
+
+<DD>
+Program resident set size in pages
+<DT><DD>
+See
+<I><A HREF="./function::proc_mem_rss.3stap.html">function::proc_mem_rss</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>proc_mem_rss_pid </B>
+
+<DD>
+Program resident set size in pages
+<DT><DD>
+See
+<I><A HREF="./function::proc_mem_rss_pid.3stap.html">function::proc_mem_rss_pid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>proc_mem_shr </B>
+
+<DD>
+Program shared pages (from shared mappings)
+<DT><DD>
+See
+<I><A HREF="./function::proc_mem_shr.3stap.html">function::proc_mem_shr</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>proc_mem_shr_pid </B>
+
+<DD>
+Program shared pages (from shared mappings)
+<DT><DD>
+See
+<I><A HREF="./function::proc_mem_shr_pid.3stap.html">function::proc_mem_shr_pid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>proc_mem_txt </B>
+
+<DD>
+Program text (code) size in pages
+<DT><DD>
+See
+<I><A HREF="./function::proc_mem_txt.3stap.html">function::proc_mem_txt</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>proc_mem_txt_pid </B>
+
+<DD>
+Program text (code) size in pages
+<DT><DD>
+See
+<I><A HREF="./function::proc_mem_txt_pid.3stap.html">function::proc_mem_txt_pid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>proc_mem_data </B>
+
+<DD>
+Program data size (data + stack) in pages
+<DT><DD>
+See
+<I><A HREF="./function::proc_mem_data.3stap.html">function::proc_mem_data</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>proc_mem_data_pid </B>
+
+<DD>
+Program data size (data + stack) in pages
+<DT><DD>
+See
+<I><A HREF="./function::proc_mem_data_pid.3stap.html">function::proc_mem_data_pid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>mem_page_size </B>
+
+<DD>
+Number of bytes in a page for this architecture
+<DT><DD>
+See
+<I><A HREF="./function::mem_page_size.3stap.html">function::mem_page_size</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>bytes_to_string </B>
+
+<DD>
+Human readable string for given bytes
+<DT><DD>
+See
+<I><A HREF="./function::bytes_to_string.3stap.html">function::bytes_to_string</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>pages_to_string </B>
+
+<DD>
+Turns pages into a human readable string
+<DT><DD>
+See
+<I><A HREF="./function::pages_to_string.3stap.html">function::pages_to_string</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>proc_mem_string </B>
+
+<DD>
+Human readable string of current proc memory usage
+<DT><DD>
+See
+<I><A HREF="./function::proc_mem_string.3stap.html">function::proc_mem_string</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>proc_mem_string_pid </B>
+
+<DD>
+Human readable string of process memory usage
+<DT><DD>
+See
+<I><A HREF="./function::proc_mem_string_pid.3stap.html">function::proc_mem_string_pid</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::proc_mem_size.3stap.html">function::proc_mem_size</A></I>(3stap),
+
+
+<I><A HREF="./function::proc_mem_size_pid.3stap.html">function::proc_mem_size_pid</A></I>(3stap),
+
+
+<I><A HREF="./function::proc_mem_rss.3stap.html">function::proc_mem_rss</A></I>(3stap),
+
+
+<I><A HREF="./function::proc_mem_rss_pid.3stap.html">function::proc_mem_rss_pid</A></I>(3stap),
+
+
+<I><A HREF="./function::proc_mem_shr.3stap.html">function::proc_mem_shr</A></I>(3stap),
+
+
+<I><A HREF="./function::proc_mem_shr_pid.3stap.html">function::proc_mem_shr_pid</A></I>(3stap),
+
+
+<I><A HREF="./function::proc_mem_txt.3stap.html">function::proc_mem_txt</A></I>(3stap),
+
+
+<I><A HREF="./function::proc_mem_txt_pid.3stap.html">function::proc_mem_txt_pid</A></I>(3stap),
+
+
+<I><A HREF="./function::proc_mem_data.3stap.html">function::proc_mem_data</A></I>(3stap),
+
+
+<I><A HREF="./function::proc_mem_data_pid.3stap.html">function::proc_mem_data_pid</A></I>(3stap),
+
+
+<I><A HREF="./function::mem_page_size.3stap.html">function::mem_page_size</A></I>(3stap),
+
+
+<I><A HREF="./function::bytes_to_string.3stap.html">function::bytes_to_string</A></I>(3stap),
+
+
+<I><A HREF="./function::pages_to_string.3stap.html">function::pages_to_string</A></I>(3stap),
+
+
+<I><A HREF="./function::proc_mem_string.3stap.html">function::proc_mem_string</A></I>(3stap),
+
+
+<I><A HREF="./function::proc_mem_string_pid.3stap.html">function::proc_mem_string_pid</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::pstrace</TITLE>
+</HEAD><BODY>
+<H1>tapset::pstrace</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::pstrace - systemtap pstrace tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>pstrace </B>
+
+<DD>
+Chain of processes and pids back to <A HREF="init.1.html">init</A>(1)
+<DT><DD>
+See
+<I><A HREF="./function::pstrace.3stap.html">function::pstrace</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::pstrace.3stap.html">function::pstrace</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::queue_stats</TITLE>
+</HEAD><BODY>
+<H1>tapset::queue_stats</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::queue_stats - systemtap queue_stats tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>qs_wait </B>
+
+<DD>
+Function to record enqueue requests
+<DT><DD>
+See
+<I><A HREF="./function::qs_wait.3stap.html">function::qs_wait</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>qs_run </B>
+
+<DD>
+Function to record being moved from wait queue to being serviced
+<DT><DD>
+See
+<I><A HREF="./function::qs_run.3stap.html">function::qs_run</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>qs_done </B>
+
+<DD>
+Function to record finishing request
+<DT><DD>
+See
+<I><A HREF="./function::qs_done.3stap.html">function::qs_done</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>qsq_start </B>
+
+<DD>
+Function to reset the stats for a queue
+<DT><DD>
+See
+<I><A HREF="./function::qsq_start.3stap.html">function::qsq_start</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>qsq_utilization </B>
+
+<DD>
+Fraction of time that any request was being serviced
+<DT><DD>
+See
+<I><A HREF="./function::qsq_utilization.3stap.html">function::qsq_utilization</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>qsq_blocked </B>
+
+<DD>
+Returns the time reqest was on the wait queue
+<DT><DD>
+See
+<I><A HREF="./function::qsq_blocked.3stap.html">function::qsq_blocked</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>qsq_wait_queue_length </B>
+
+<DD>
+length of wait queue
+<DT><DD>
+See
+<I><A HREF="./function::qsq_wait_queue_length.3stap.html">function::qsq_wait_queue_length</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>qsq_service_time </B>
+
+<DD>
+Amount of time per request service
+<DT><DD>
+See
+<I><A HREF="./function::qsq_service_time.3stap.html">function::qsq_service_time</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>qsq_wait_time </B>
+
+<DD>
+Amount of time in queue + service per request
+<DT><DD>
+See
+<I><A HREF="./function::qsq_wait_time.3stap.html">function::qsq_wait_time</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>qsq_throughput </B>
+
+<DD>
+Number of requests served per unit time
+<DT><DD>
+See
+<I><A HREF="./function::qsq_throughput.3stap.html">function::qsq_throughput</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>qsq_print </B>
+
+<DD>
+Prints a line of statistics for the given queue
+<DT><DD>
+See
+<I><A HREF="./function::qsq_print.3stap.html">function::qsq_print</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::qs_wait.3stap.html">function::qs_wait</A></I>(3stap),
+
+
+<I><A HREF="./function::qs_run.3stap.html">function::qs_run</A></I>(3stap),
+
+
+<I><A HREF="./function::qs_done.3stap.html">function::qs_done</A></I>(3stap),
+
+
+<I><A HREF="./function::qsq_start.3stap.html">function::qsq_start</A></I>(3stap),
+
+
+<I><A HREF="./function::qsq_utilization.3stap.html">function::qsq_utilization</A></I>(3stap),
+
+
+<I><A HREF="./function::qsq_blocked.3stap.html">function::qsq_blocked</A></I>(3stap),
+
+
+<I><A HREF="./function::qsq_wait_queue_length.3stap.html">function::qsq_wait_queue_length</A></I>(3stap),
+
+
+<I><A HREF="./function::qsq_service_time.3stap.html">function::qsq_service_time</A></I>(3stap),
+
+
+<I><A HREF="./function::qsq_wait_time.3stap.html">function::qsq_wait_time</A></I>(3stap),
+
+
+<I><A HREF="./function::qsq_throughput.3stap.html">function::qsq_throughput</A></I>(3stap),
+
+
+<I><A HREF="./function::qsq_print.3stap.html">function::qsq_print</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::random</TITLE>
+</HEAD><BODY>
+<H1>tapset::random</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::random - systemtap random tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>randint </B>
+
+<DD>
+Return a random number between [0,n)
+<DT><DD>
+See
+<I><A HREF="./function::randint.3stap.html">function::randint</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::randint.3stap.html">function::randint</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::registers</TITLE>
+</HEAD><BODY>
+<H1>tapset::registers</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::registers - systemtap registers tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>register </B>
+
+<DD>
+Return the signed value of the named CPU register
+<DT><DD>
+See
+<I><A HREF="./function::register.3stap.html">function::register</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>u_register </B>
+
+<DD>
+Return the unsigned value of the named CPU register
+<DT><DD>
+See
+<I><A HREF="./function::u_register.3stap.html">function::u_register</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>int_arg </B>
+
+<DD>
+Return function argument as signed int
+<DT><DD>
+See
+<I><A HREF="./function::int_arg.3stap.html">function::int_arg</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>uint_arg </B>
+
+<DD>
+Return function argument as unsigned int
+<DT><DD>
+See
+<I><A HREF="./function::uint_arg.3stap.html">function::uint_arg</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>long_arg </B>
+
+<DD>
+Return function argument as signed long
+<DT><DD>
+See
+<I><A HREF="./function::long_arg.3stap.html">function::long_arg</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ulong_arg </B>
+
+<DD>
+Return function argument as unsigned long
+<DT><DD>
+See
+<I><A HREF="./function::ulong_arg.3stap.html">function::ulong_arg</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>longlong_arg </B>
+
+<DD>
+Return function argument as 64-bit value
+<DT><DD>
+See
+<I><A HREF="./function::longlong_arg.3stap.html">function::longlong_arg</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ulonglong_arg </B>
+
+<DD>
+Return function argument as 64-bit value
+<DT><DD>
+See
+<I><A HREF="./function::ulonglong_arg.3stap.html">function::ulonglong_arg</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>pointer_arg </B>
+
+<DD>
+Return function argument as pointer value
+<DT><DD>
+See
+<I><A HREF="./function::pointer_arg.3stap.html">function::pointer_arg</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>s32_arg </B>
+
+<DD>
+Return function argument as signed 32-bit value
+<DT><DD>
+See
+<I><A HREF="./function::s32_arg.3stap.html">function::s32_arg</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>u32_arg </B>
+
+<DD>
+Return function argument as unsigned 32-bit value
+<DT><DD>
+See
+<I><A HREF="./function::u32_arg.3stap.html">function::u32_arg</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>s64_arg </B>
+
+<DD>
+Return function argument as signed 64-bit value
+<DT><DD>
+See
+<I><A HREF="./function::s64_arg.3stap.html">function::s64_arg</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>u64_arg </B>
+
+<DD>
+Return function argument as unsigned 64-bit value
+<DT><DD>
+See
+<I><A HREF="./function::u64_arg.3stap.html">function::u64_arg</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>asmlinkage </B>
+
+<DD>
+Mark function as declared asmlinkage
+<DT><DD>
+See
+<I><A HREF="./function::asmlinkage.3stap.html">function::asmlinkage</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>fastcall </B>
+
+<DD>
+Mark function as declared fastcall
+<DT><DD>
+See
+<I><A HREF="./function::fastcall.3stap.html">function::fastcall</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>regparm </B>
+
+<DD>
+Specify regparm value used to compile function
+<DT><DD>
+See
+<I><A HREF="./function::regparm.3stap.html">function::regparm</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::register.3stap.html">function::register</A></I>(3stap),
+
+
+<I><A HREF="./function::u_register.3stap.html">function::u_register</A></I>(3stap),
+
+
+<I><A HREF="./function::int_arg.3stap.html">function::int_arg</A></I>(3stap),
+
+
+<I><A HREF="./function::uint_arg.3stap.html">function::uint_arg</A></I>(3stap),
+
+
+<I><A HREF="./function::long_arg.3stap.html">function::long_arg</A></I>(3stap),
+
+
+<I><A HREF="./function::ulong_arg.3stap.html">function::ulong_arg</A></I>(3stap),
+
+
+<I><A HREF="./function::longlong_arg.3stap.html">function::longlong_arg</A></I>(3stap),
+
+
+<I><A HREF="./function::ulonglong_arg.3stap.html">function::ulonglong_arg</A></I>(3stap),
+
+
+<I><A HREF="./function::pointer_arg.3stap.html">function::pointer_arg</A></I>(3stap),
+
+
+<I><A HREF="./function::s32_arg.3stap.html">function::s32_arg</A></I>(3stap),
+
+
+<I><A HREF="./function::u32_arg.3stap.html">function::u32_arg</A></I>(3stap),
+
+
+<I><A HREF="./function::s64_arg.3stap.html">function::s64_arg</A></I>(3stap),
+
+
+<I><A HREF="./function::u64_arg.3stap.html">function::u64_arg</A></I>(3stap),
+
+
+<I><A HREF="./function::asmlinkage.3stap.html">function::asmlinkage</A></I>(3stap),
+
+
+<I><A HREF="./function::fastcall.3stap.html">function::fastcall</A></I>(3stap),
+
+
+<I><A HREF="./function::regparm.3stap.html">function::regparm</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::rlimit</TITLE>
+</HEAD><BODY>
+<H1>tapset::rlimit</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::rlimit - systemtap rlimit tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>rlimit_from_str </B>
+
+<DD>
+Symbolic string associated with resource limit code
+<DT><DD>
+See
+<I><A HREF="./function::rlimit_from_str.3stap.html">function::rlimit_from_str</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::rlimit_from_str.3stap.html">function::rlimit_from_str</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::rpc</TITLE>
+</HEAD><BODY>
+<H1>tapset::rpc</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::rpc - systemtap rpc tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>sunrpc.clnt.create_client </B>
+
+<DD>
+Create an RPC client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::sunrpc.clnt.create_client.3stap.html">probe::sunrpc.clnt.create_client</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sunrpc.clnt.clone_client </B>
+
+<DD>
+Clone an RPC client structure
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::sunrpc.clnt.clone_client.3stap.html">probe::sunrpc.clnt.clone_client</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sunrpc.clnt.shutdown_client </B>
+
+<DD>
+Shutdown an RPC client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::sunrpc.clnt.shutdown_client.3stap.html">probe::sunrpc.clnt.shutdown_client</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sunrpc.clnt.bind_new_program </B>
+
+<DD>
+Bind a new RPC program to an existing client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::sunrpc.clnt.bind_new_program.3stap.html">probe::sunrpc.clnt.bind_new_program</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sunrpc.clnt.call_sync </B>
+
+<DD>
+Make a synchronous RPC call
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::sunrpc.clnt.call_sync.3stap.html">probe::sunrpc.clnt.call_sync</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sunrpc.clnt.call_async </B>
+
+<DD>
+Make an asynchronous RPC call
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::sunrpc.clnt.call_async.3stap.html">probe::sunrpc.clnt.call_async</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sunrpc.clnt.restart_call </B>
+
+<DD>
+Restart an asynchronous RPC call
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::sunrpc.clnt.restart_call.3stap.html">probe::sunrpc.clnt.restart_call</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sunrpc.svc.register </B>
+
+<DD>
+Register an RPC service with the local portmapper
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::sunrpc.svc.register.3stap.html">probe::sunrpc.svc.register</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sunrpc.svc.create </B>
+
+<DD>
+Create an RPC service
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::sunrpc.svc.create.3stap.html">probe::sunrpc.svc.create</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sunrpc.svc.destroy </B>
+
+<DD>
+Destroy an RPC service
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::sunrpc.svc.destroy.3stap.html">probe::sunrpc.svc.destroy</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sunrpc.svc.process </B>
+
+<DD>
+Process an RPC request
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::sunrpc.svc.process.3stap.html">probe::sunrpc.svc.process</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sunrpc.svc.authorise </B>
+
+<DD>
+An RPC request is to be authorised
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::sunrpc.svc.authorise.3stap.html">probe::sunrpc.svc.authorise</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sunrpc.svc.recv </B>
+
+<DD>
+Listen for the next RPC request on any socket
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::sunrpc.svc.recv.3stap.html">probe::sunrpc.svc.recv</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sunrpc.svc.send </B>
+
+<DD>
+Return reply to RPC client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::sunrpc.svc.send.3stap.html">probe::sunrpc.svc.send</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sunrpc.svc.drop </B>
+
+<DD>
+Drop RPC request
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::sunrpc.svc.drop.3stap.html">probe::sunrpc.svc.drop</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sunrpc.sched.new_task </B>
+
+<DD>
+Create new task for the specified client
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::sunrpc.sched.new_task.3stap.html">probe::sunrpc.sched.new_task</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sunrpc.sched.release_task </B>
+
+<DD>
+Release all resources associated with a task
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::sunrpc.sched.release_task.3stap.html">probe::sunrpc.sched.release_task</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sunrpc.sched.execute </B>
+
+<DD>
+Execute the RPC `scheduler'
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::sunrpc.sched.execute.3stap.html">probe::sunrpc.sched.execute</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sunrpc.sched.delay </B>
+
+<DD>
+Delay an RPC task
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::sunrpc.sched.delay.3stap.html">probe::sunrpc.sched.delay</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./probe::sunrpc.clnt.create_client.3stap.html">probe::sunrpc.clnt.create_client</A></I>(3stap),
+
+
+<I><A HREF="./probe::sunrpc.clnt.clone_client.3stap.html">probe::sunrpc.clnt.clone_client</A></I>(3stap),
+
+
+<I><A HREF="./probe::sunrpc.clnt.shutdown_client.3stap.html">probe::sunrpc.clnt.shutdown_client</A></I>(3stap),
+
+
+<I><A HREF="./probe::sunrpc.clnt.bind_new_program.3stap.html">probe::sunrpc.clnt.bind_new_program</A></I>(3stap),
+
+
+<I><A HREF="./probe::sunrpc.clnt.call_sync.3stap.html">probe::sunrpc.clnt.call_sync</A></I>(3stap),
+
+
+<I><A HREF="./probe::sunrpc.clnt.call_async.3stap.html">probe::sunrpc.clnt.call_async</A></I>(3stap),
+
+
+<I><A HREF="./probe::sunrpc.clnt.restart_call.3stap.html">probe::sunrpc.clnt.restart_call</A></I>(3stap),
+
+
+<I><A HREF="./probe::sunrpc.svc.register.3stap.html">probe::sunrpc.svc.register</A></I>(3stap),
+
+
+<I><A HREF="./probe::sunrpc.svc.create.3stap.html">probe::sunrpc.svc.create</A></I>(3stap),
+
+
+<I><A HREF="./probe::sunrpc.svc.destroy.3stap.html">probe::sunrpc.svc.destroy</A></I>(3stap),
+
+
+<I><A HREF="./probe::sunrpc.svc.process.3stap.html">probe::sunrpc.svc.process</A></I>(3stap),
+
+
+<I><A HREF="./probe::sunrpc.svc.authorise.3stap.html">probe::sunrpc.svc.authorise</A></I>(3stap),
+
+
+<I><A HREF="./probe::sunrpc.svc.recv.3stap.html">probe::sunrpc.svc.recv</A></I>(3stap),
+
+
+<I><A HREF="./probe::sunrpc.svc.send.3stap.html">probe::sunrpc.svc.send</A></I>(3stap),
+
+
+<I><A HREF="./probe::sunrpc.svc.drop.3stap.html">probe::sunrpc.svc.drop</A></I>(3stap),
+
+
+<I><A HREF="./probe::sunrpc.sched.new_task.3stap.html">probe::sunrpc.sched.new_task</A></I>(3stap),
+
+
+<I><A HREF="./probe::sunrpc.sched.release_task.3stap.html">probe::sunrpc.sched.release_task</A></I>(3stap),
+
+
+<I><A HREF="./probe::sunrpc.sched.execute.3stap.html">probe::sunrpc.sched.execute</A></I>(3stap),
+
+
+<I><A HREF="./probe::sunrpc.sched.delay.3stap.html">probe::sunrpc.sched.delay</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::scheduler</TITLE>
+</HEAD><BODY>
+<H1>tapset::scheduler</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::scheduler - systemtap scheduler tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>scheduler.cpu_off </B>
+
+<DD>
+Process is about to stop running on a cpu
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scheduler.cpu_off.3stap.html">probe::scheduler.cpu_off</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>scheduler.cpu_on </B>
+
+<DD>
+Process is beginning execution on a cpu
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scheduler.cpu_on.3stap.html">probe::scheduler.cpu_on</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>scheduler.tick </B>
+
+<DD>
+Schedulers internal tick, a processes timeslice accounting is updated
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scheduler.tick.3stap.html">probe::scheduler.tick</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>scheduler.balance </B>
+
+<DD>
+A cpu attempting to find more work.
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scheduler.balance.3stap.html">probe::scheduler.balance</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>scheduler.ctxswitch </B>
+
+<DD>
+A context switch is occuring.
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scheduler.ctxswitch.3stap.html">probe::scheduler.ctxswitch</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>scheduler.kthread_stop </B>
+
+<DD>
+A thread created by kthread_create is being stopped
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scheduler.kthread_stop.3stap.html">probe::scheduler.kthread_stop</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>scheduler.kthread_stop.return </B>
+
+<DD>
+A kthread is stopped and gets the return value
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scheduler.kthread_stop.return.3stap.html">probe::scheduler.kthread_stop.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>scheduler.wait_task </B>
+
+<DD>
+Waiting on a task to unschedule (become inactive)
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scheduler.wait_task.3stap.html">probe::scheduler.wait_task</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>scheduler.wakeup </B>
+
+<DD>
+Task is woken up
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scheduler.wakeup.3stap.html">probe::scheduler.wakeup</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>scheduler.wakeup_new </B>
+
+<DD>
+Newly created task is woken up for the first time
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scheduler.wakeup_new.3stap.html">probe::scheduler.wakeup_new</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>scheduler.migrate </B>
+
+<DD>
+Task migrating across cpus
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scheduler.migrate.3stap.html">probe::scheduler.migrate</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>scheduler.process_free </B>
+
+<DD>
+Scheduler freeing a data structure for a process
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scheduler.process_free.3stap.html">probe::scheduler.process_free</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>scheduler.process_exit </B>
+
+<DD>
+Process exiting
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scheduler.process_exit.3stap.html">probe::scheduler.process_exit</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>scheduler.process_wait </B>
+
+<DD>
+Scheduler starting to wait on a process
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scheduler.process_wait.3stap.html">probe::scheduler.process_wait</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>scheduler.process_fork </B>
+
+<DD>
+Process forked
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scheduler.process_fork.3stap.html">probe::scheduler.process_fork</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>scheduler.signal_send </B>
+
+<DD>
+Sending a signal
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scheduler.signal_send.3stap.html">probe::scheduler.signal_send</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./probe::scheduler.cpu_off.3stap.html">probe::scheduler.cpu_off</A></I>(3stap),
+
+
+<I><A HREF="./probe::scheduler.cpu_on.3stap.html">probe::scheduler.cpu_on</A></I>(3stap),
+
+
+<I><A HREF="./probe::scheduler.tick.3stap.html">probe::scheduler.tick</A></I>(3stap),
+
+
+<I><A HREF="./probe::scheduler.balance.3stap.html">probe::scheduler.balance</A></I>(3stap),
+
+
+<I><A HREF="./probe::scheduler.ctxswitch.3stap.html">probe::scheduler.ctxswitch</A></I>(3stap),
+
+
+<I><A HREF="./probe::scheduler.kthread_stop.3stap.html">probe::scheduler.kthread_stop</A></I>(3stap),
+
+
+<I><A HREF="./probe::scheduler.kthread_stop.return.3stap.html">probe::scheduler.kthread_stop.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::scheduler.wait_task.3stap.html">probe::scheduler.wait_task</A></I>(3stap),
+
+
+<I><A HREF="./probe::scheduler.wakeup.3stap.html">probe::scheduler.wakeup</A></I>(3stap),
+
+
+<I><A HREF="./probe::scheduler.wakeup_new.3stap.html">probe::scheduler.wakeup_new</A></I>(3stap),
+
+
+<I><A HREF="./probe::scheduler.migrate.3stap.html">probe::scheduler.migrate</A></I>(3stap),
+
+
+<I><A HREF="./probe::scheduler.process_free.3stap.html">probe::scheduler.process_free</A></I>(3stap),
+
+
+<I><A HREF="./probe::scheduler.process_exit.3stap.html">probe::scheduler.process_exit</A></I>(3stap),
+
+
+<I><A HREF="./probe::scheduler.process_wait.3stap.html">probe::scheduler.process_wait</A></I>(3stap),
+
+
+<I><A HREF="./probe::scheduler.process_fork.3stap.html">probe::scheduler.process_fork</A></I>(3stap),
+
+
+<I><A HREF="./probe::scheduler.signal_send.3stap.html">probe::scheduler.signal_send</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::scsi</TITLE>
+</HEAD><BODY>
+<H1>tapset::scsi</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::scsi - systemtap scsi tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> This family of probe points is used to probe SCSI activities.
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>scsi.ioentry </B>
+
+<DD>
+Prepares a SCSI mid-layer request
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scsi.ioentry.3stap.html">probe::scsi.ioentry</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>scsi.iodispatching </B>
+
+<DD>
+SCSI mid-layer dispatched low-level SCSI command
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scsi.iodispatching.3stap.html">probe::scsi.iodispatching</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>scsi.iodone </B>
+
+<DD>
+SCSI command completed by low level driver and enqueued into the done queue.
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scsi.iodone.3stap.html">probe::scsi.iodone</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>scsi.iocompleted </B>
+
+<DD>
+SCSI mid-layer running the completion processing for block device I/O requests
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scsi.iocompleted.3stap.html">probe::scsi.iocompleted</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>scsi.ioexecute </B>
+
+<DD>
+Create mid-layer SCSI request and wait for the result
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scsi.ioexecute.3stap.html">probe::scsi.ioexecute</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>scsi.set_state </B>
+
+<DD>
+Order SCSI device state change
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::scsi.set_state.3stap.html">probe::scsi.set_state</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./probe::scsi.ioentry.3stap.html">probe::scsi.ioentry</A></I>(3stap),
+
+
+<I><A HREF="./probe::scsi.iodispatching.3stap.html">probe::scsi.iodispatching</A></I>(3stap),
+
+
+<I><A HREF="./probe::scsi.iodone.3stap.html">probe::scsi.iodone</A></I>(3stap),
+
+
+<I><A HREF="./probe::scsi.iocompleted.3stap.html">probe::scsi.iocompleted</A></I>(3stap),
+
+
+<I><A HREF="./probe::scsi.ioexecute.3stap.html">probe::scsi.ioexecute</A></I>(3stap),
+
+
+<I><A HREF="./probe::scsi.set_state.3stap.html">probe::scsi.set_state</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::signal</TITLE>
+</HEAD><BODY>
+<H1>tapset::signal</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::signal - systemtap signal tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> This family of probe points is used to probe signal activities.
+<BR> Since there are so many signals sent to processes at any given
+<BR> point, it is advisable to filter the information according to the
+<BR> requirements. For example, filter only for a particular signal
+<BR> (if sig==2) or for a particular process (if pid_name==stap).
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>signal.send </B>
+
+<DD>
+Signal being sent to a process
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.send.3stap.html">probe::signal.send</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.send.return </B>
+
+<DD>
+Signal being sent to a process completed (deprecated in SystemTap 2.1)
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.send.return.3stap.html">probe::signal.send.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.checkperm </B>
+
+<DD>
+Check being performed on a sent signal
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.checkperm.3stap.html">probe::signal.checkperm</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.checkperm.return </B>
+
+<DD>
+Check performed on a sent signal completed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.checkperm.return.3stap.html">probe::signal.checkperm.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.wakeup </B>
+
+<DD>
+Sleeping process being wakened for signal
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.wakeup.3stap.html">probe::signal.wakeup</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.check_ignored </B>
+
+<DD>
+Checking to see signal is ignored
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.check_ignored.3stap.html">probe::signal.check_ignored</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.check_ignored.return </B>
+
+<DD>
+Check to see signal is ignored completed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.check_ignored.return.3stap.html">probe::signal.check_ignored.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.force_segv </B>
+
+<DD>
+Forcing send of SIGSEGV
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.force_segv.3stap.html">probe::signal.force_segv</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.force_segv.return </B>
+
+<DD>
+Forcing send of SIGSEGV complete
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.force_segv.return.3stap.html">probe::signal.force_segv.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.syskill </B>
+
+<DD>
+Sending kill signal to a process
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.syskill.3stap.html">probe::signal.syskill</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.syskill.return </B>
+
+<DD>
+Sending kill signal completed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.syskill.return.3stap.html">probe::signal.syskill.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.sys_tkill </B>
+
+<DD>
+Sending a kill signal to a thread
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.sys_tkill.3stap.html">probe::signal.sys_tkill</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.systkill.return </B>
+
+<DD>
+Sending kill signal to a thread completed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.systkill.return.3stap.html">probe::signal.systkill.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.sys_tgkill </B>
+
+<DD>
+Sending kill signal to a thread group
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.sys_tgkill.3stap.html">probe::signal.sys_tgkill</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.sys_tgkill.return </B>
+
+<DD>
+Sending kill signal to a thread group completed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.sys_tgkill.return.3stap.html">probe::signal.sys_tgkill.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.send_sig_queue </B>
+
+<DD>
+Queuing a signal to a process
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.send_sig_queue.3stap.html">probe::signal.send_sig_queue</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.send_sig_queue.return </B>
+
+<DD>
+Queuing a signal to a process completed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.send_sig_queue.return.3stap.html">probe::signal.send_sig_queue.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.pending </B>
+
+<DD>
+Examining pending signal
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.pending.3stap.html">probe::signal.pending</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.pending.return </B>
+
+<DD>
+Examination of pending signal completed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.pending.return.3stap.html">probe::signal.pending.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.handle </B>
+
+<DD>
+Signal handler being invoked
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.handle.3stap.html">probe::signal.handle</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.handle.return </B>
+
+<DD>
+Signal handler invocation completed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.handle.return.3stap.html">probe::signal.handle.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.do_action </B>
+
+<DD>
+Examining or changing a signal action
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.do_action.3stap.html">probe::signal.do_action</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.do_action.return </B>
+
+<DD>
+Examining or changing a signal action completed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.do_action.return.3stap.html">probe::signal.do_action.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.procmask </B>
+
+<DD>
+Examining or changing blocked signals
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.procmask.3stap.html">probe::signal.procmask</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.procmask.return </B>
+
+<DD>
+Examining or changing blocked signals completed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.procmask.return.3stap.html">probe::signal.procmask.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal.flush </B>
+
+<DD>
+Flushing all pending signals for a task
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::signal.flush.3stap.html">probe::signal.flush</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>get_sa_flags </B>
+
+<DD>
+Returns the numeric value of sa_flags
+<DT><DD>
+See
+<I><A HREF="./function::get_sa_flags.3stap.html">function::get_sa_flags</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>get_sa_flags </B>
+
+<DD>
+Returns the numeric value of sa_handler
+<DT><DD>
+See
+<I><A HREF="./function::get_sa_flags.3stap.html">function::get_sa_flags</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>get_sa_flags </B>
+
+<DD>
+Returns the string representation of a sigset
+<DT><DD>
+See
+<I><A HREF="./function::get_sa_flags.3stap.html">function::get_sa_flags</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>is_sig_blocked </B>
+
+<DD>
+Returns 1 if the signal is currently blocked, or 0 if it is not
+<DT><DD>
+See
+<I><A HREF="./function::is_sig_blocked.3stap.html">function::is_sig_blocked</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sa_flags_str </B>
+
+<DD>
+Returns the string representation of sa_flags
+<DT><DD>
+See
+<I><A HREF="./function::sa_flags_str.3stap.html">function::sa_flags_str</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sa_handler </B>
+
+<DD>
+Returns the string representation of an sa_handler
+<DT><DD>
+See
+<I><A HREF="./function::sa_handler.3stap.html">function::sa_handler</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>signal_str </B>
+
+<DD>
+Returns the string representation of a signal number
+<DT><DD>
+See
+<I><A HREF="./function::signal_str.3stap.html">function::signal_str</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::get_sa_flags.3stap.html">function::get_sa_flags</A></I>(3stap),
+
+
+<I><A HREF="./function::get_sa_flags.3stap.html">function::get_sa_flags</A></I>(3stap),
+
+
+<I><A HREF="./function::get_sa_flags.3stap.html">function::get_sa_flags</A></I>(3stap),
+
+
+<I><A HREF="./function::is_sig_blocked.3stap.html">function::is_sig_blocked</A></I>(3stap),
+
+
+<I><A HREF="./function::sa_flags_str.3stap.html">function::sa_flags_str</A></I>(3stap),
+
+
+<I><A HREF="./function::sa_handler.3stap.html">function::sa_handler</A></I>(3stap),
+
+
+<I><A HREF="./function::signal_str.3stap.html">function::signal_str</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.send.3stap.html">probe::signal.send</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.send.return.3stap.html">probe::signal.send.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.checkperm.3stap.html">probe::signal.checkperm</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.checkperm.return.3stap.html">probe::signal.checkperm.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.wakeup.3stap.html">probe::signal.wakeup</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.check_ignored.3stap.html">probe::signal.check_ignored</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.check_ignored.return.3stap.html">probe::signal.check_ignored.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.force_segv.3stap.html">probe::signal.force_segv</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.force_segv.return.3stap.html">probe::signal.force_segv.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.syskill.3stap.html">probe::signal.syskill</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.syskill.return.3stap.html">probe::signal.syskill.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.sys_tkill.3stap.html">probe::signal.sys_tkill</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.systkill.return.3stap.html">probe::signal.systkill.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.sys_tgkill.3stap.html">probe::signal.sys_tgkill</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.sys_tgkill.return.3stap.html">probe::signal.sys_tgkill.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.send_sig_queue.3stap.html">probe::signal.send_sig_queue</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.send_sig_queue.return.3stap.html">probe::signal.send_sig_queue.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.pending.3stap.html">probe::signal.pending</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.pending.return.3stap.html">probe::signal.pending.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.handle.3stap.html">probe::signal.handle</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.handle.return.3stap.html">probe::signal.handle.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.do_action.3stap.html">probe::signal.do_action</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.do_action.return.3stap.html">probe::signal.do_action.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.procmask.3stap.html">probe::signal.procmask</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.procmask.return.3stap.html">probe::signal.procmask.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::signal.flush.3stap.html">probe::signal.flush</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::socket</TITLE>
+</HEAD><BODY>
+<H1>tapset::socket</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::socket - systemtap socket tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> This family of probe points is used to probe socket activities.
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>socket.send </B>
+
+<DD>
+Message sent on a socket.
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::socket.send.3stap.html">probe::socket.send</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>socket.receive </B>
+
+<DD>
+Message received on a socket.
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::socket.receive.3stap.html">probe::socket.receive</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>socket.sendmsg </B>
+
+<DD>
+Message is currently being sent on a socket.
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::socket.sendmsg.3stap.html">probe::socket.sendmsg</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>socket.sendmsg.return </B>
+
+<DD>
+Return from socket.sendmsg.
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::socket.sendmsg.return.3stap.html">probe::socket.sendmsg.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>socket.recvmsg </B>
+
+<DD>
+Message being received on socket
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::socket.recvmsg.3stap.html">probe::socket.recvmsg</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>socket.recvmsg.return </B>
+
+<DD>
+Return from Message being received on socket
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::socket.recvmsg.return.3stap.html">probe::socket.recvmsg.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>socket.aio_write </B>
+
+<DD>
+Message send via sock_aio_write()
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::socket.aio_write.3stap.html">probe::socket.aio_write</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>socket.aio_write.return </B>
+
+<DD>
+Conclusion of message send via sock_aio_write()
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::socket.aio_write.return.3stap.html">probe::socket.aio_write.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>socket.aio_read </B>
+
+<DD>
+Receiving message via sock_aio_read()
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::socket.aio_read.3stap.html">probe::socket.aio_read</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>socket.aio_read.return </B>
+
+<DD>
+Conclusion of message received via sock_aio_read()
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::socket.aio_read.return.3stap.html">probe::socket.aio_read.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>socket.writev </B>
+
+<DD>
+Message sent via socket_writev()
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::socket.writev.3stap.html">probe::socket.writev</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>socket.writev.return </B>
+
+<DD>
+Conclusion of message sent via socket_writev()
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::socket.writev.return.3stap.html">probe::socket.writev.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>socket.readv </B>
+
+<DD>
+Receiving a message via sock_readv()
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::socket.readv.3stap.html">probe::socket.readv</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>socket.readv.return </B>
+
+<DD>
+Conclusion of receiving a message via sock_readv()
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::socket.readv.return.3stap.html">probe::socket.readv.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>socket.create </B>
+
+<DD>
+Creation of a socket
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::socket.create.3stap.html">probe::socket.create</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>socket.create.return </B>
+
+<DD>
+Return from Creation of a socket
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::socket.create.return.3stap.html">probe::socket.create.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>socket.close </B>
+
+<DD>
+Close a socket
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::socket.close.3stap.html">probe::socket.close</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>socket.close.return </B>
+
+<DD>
+Return from closing a socket
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::socket.close.return.3stap.html">probe::socket.close.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sock_prot_num2str </B>
+
+<DD>
+Given a protocol number, return a string representation
+<DT><DD>
+See
+<I><A HREF="./function::sock_prot_num2str.3stap.html">function::sock_prot_num2str</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sock_prot_str2num </B>
+
+<DD>
+Given a protocol name (string), return the corresponding protocol number
+<DT><DD>
+See
+<I><A HREF="./function::sock_prot_str2num.3stap.html">function::sock_prot_str2num</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sock_fam_num2str </B>
+
+<DD>
+Given a protocol family number, return a string representation
+<DT><DD>
+See
+<I><A HREF="./function::sock_fam_num2str.3stap.html">function::sock_fam_num2str</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sock_fam_str2num </B>
+
+<DD>
+Given a protocol family name (string), return the corresponding protocol family number
+<DT><DD>
+See
+<I><A HREF="./function::sock_fam_str2num.3stap.html">function::sock_fam_str2num</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sock_state_num2str </B>
+
+<DD>
+Given a socket state number, return a string representation
+<DT><DD>
+See
+<I><A HREF="./function::sock_state_num2str.3stap.html">function::sock_state_num2str</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sock_state_str2num </B>
+
+<DD>
+Given a socket state string, return the corresponding state number
+<DT><DD>
+See
+<I><A HREF="./function::sock_state_str2num.3stap.html">function::sock_state_str2num</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::sock_prot_num2str.3stap.html">function::sock_prot_num2str</A></I>(3stap),
+
+
+<I><A HREF="./function::sock_prot_str2num.3stap.html">function::sock_prot_str2num</A></I>(3stap),
+
+
+<I><A HREF="./function::sock_fam_num2str.3stap.html">function::sock_fam_num2str</A></I>(3stap),
+
+
+<I><A HREF="./function::sock_fam_str2num.3stap.html">function::sock_fam_str2num</A></I>(3stap),
+
+
+<I><A HREF="./function::sock_state_num2str.3stap.html">function::sock_state_num2str</A></I>(3stap),
+
+
+<I><A HREF="./function::sock_state_str2num.3stap.html">function::sock_state_str2num</A></I>(3stap),
+
+
+<I><A HREF="./probe::socket.send.3stap.html">probe::socket.send</A></I>(3stap),
+
+
+<I><A HREF="./probe::socket.receive.3stap.html">probe::socket.receive</A></I>(3stap),
+
+
+<I><A HREF="./probe::socket.sendmsg.3stap.html">probe::socket.sendmsg</A></I>(3stap),
+
+
+<I><A HREF="./probe::socket.sendmsg.return.3stap.html">probe::socket.sendmsg.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::socket.recvmsg.3stap.html">probe::socket.recvmsg</A></I>(3stap),
+
+
+<I><A HREF="./probe::socket.recvmsg.return.3stap.html">probe::socket.recvmsg.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::socket.aio_write.3stap.html">probe::socket.aio_write</A></I>(3stap),
+
+
+<I><A HREF="./probe::socket.aio_write.return.3stap.html">probe::socket.aio_write.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::socket.aio_read.3stap.html">probe::socket.aio_read</A></I>(3stap),
+
+
+<I><A HREF="./probe::socket.aio_read.return.3stap.html">probe::socket.aio_read.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::socket.writev.3stap.html">probe::socket.writev</A></I>(3stap),
+
+
+<I><A HREF="./probe::socket.writev.return.3stap.html">probe::socket.writev.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::socket.readv.3stap.html">probe::socket.readv</A></I>(3stap),
+
+
+<I><A HREF="./probe::socket.readv.return.3stap.html">probe::socket.readv.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::socket.create.3stap.html">probe::socket.create</A></I>(3stap),
+
+
+<I><A HREF="./probe::socket.create.return.3stap.html">probe::socket.create.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::socket.close.3stap.html">probe::socket.close</A></I>(3stap),
+
+
+<I><A HREF="./probe::socket.close.return.3stap.html">probe::socket.close.return</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::speculative</TITLE>
+</HEAD><BODY>
+<H1>tapset::speculative</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::speculative - systemtap speculative tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>speculation </B>
+
+<DD>
+Allocate a new id for speculative output
+<DT><DD>
+See
+<I><A HREF="./function::speculation.3stap.html">function::speculation</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>speculate </B>
+
+<DD>
+Store a string for possible output later
+<DT><DD>
+See
+<I><A HREF="./function::speculate.3stap.html">function::speculate</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>discard </B>
+
+<DD>
+Discard all output related to a speculation buffer
+<DT><DD>
+See
+<I><A HREF="./function::discard.3stap.html">function::discard</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>commit </B>
+
+<DD>
+Write out all output related to a speculation buffer
+<DT><DD>
+See
+<I><A HREF="./function::commit.3stap.html">function::commit</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::speculation.3stap.html">function::speculation</A></I>(3stap),
+
+
+<I><A HREF="./function::speculate.3stap.html">function::speculate</A></I>(3stap),
+
+
+<I><A HREF="./function::discard.3stap.html">function::discard</A></I>(3stap),
+
+
+<I><A HREF="./function::commit.3stap.html">function::commit</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::stap_staticmarkers</TITLE>
+</HEAD><BODY>
+<H1>tapset::stap_staticmarkers</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::stap_staticmarkers - systemtap stap_staticmarkers tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>stap.pass0 </B>
+
+<DD>
+Starting stap pass0 (parsing command line arguments)
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.pass0.3stap.html">probe::stap.pass0</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.pass0.end </B>
+
+<DD>
+Finished stap pass0 (parsing command line arguments)
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.pass0.end.3stap.html">probe::stap.pass0.end</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.pass1a </B>
+
+<DD>
+Starting stap pass1 (parsing user script)
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.pass1a.3stap.html">probe::stap.pass1a</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.pass1b </B>
+
+<DD>
+Starting stap pass1 (parsing library scripts)
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.pass1b.3stap.html">probe::stap.pass1b</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.pass1.end </B>
+
+<DD>
+Finished stap pass1 (parsing scripts)
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.pass1.end.3stap.html">probe::stap.pass1.end</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.pass2 </B>
+
+<DD>
+Starting stap pass2 (elaboration)
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.pass2.3stap.html">probe::stap.pass2</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.pass2.end </B>
+
+<DD>
+Finished stap pass2 (elaboration)
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.pass2.end.3stap.html">probe::stap.pass2.end</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.pass3 </B>
+
+<DD>
+Starting stap pass3 (translation to C)
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.pass3.3stap.html">probe::stap.pass3</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.pass3.end </B>
+
+<DD>
+Finished stap pass3 (translation to C)
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.pass3.end.3stap.html">probe::stap.pass3.end</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.pass4 </B>
+
+<DD>
+Starting stap pass4 (compile C code into kernel module)
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.pass4.3stap.html">probe::stap.pass4</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.pass4.end </B>
+
+<DD>
+Finished stap pass4 (compile C code into kernel module)
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.pass4.end.3stap.html">probe::stap.pass4.end</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.pass5 </B>
+
+<DD>
+Starting stap pass5 (running the instrumentation)
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.pass5.3stap.html">probe::stap.pass5</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.pass5.end </B>
+
+<DD>
+Finished stap pass5 (running the instrumentation)
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.pass5.end.3stap.html">probe::stap.pass5.end</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.pass6 </B>
+
+<DD>
+Starting stap pass6 (cleanup)
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.pass6.3stap.html">probe::stap.pass6</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.pass6.end </B>
+
+<DD>
+Finished stap pass6 (cleanup)
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.pass6.end.3stap.html">probe::stap.pass6.end</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.cache_clean </B>
+
+<DD>
+Removing file from stap cache
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.cache_clean.3stap.html">probe::stap.cache_clean</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.cache_add_mod </B>
+
+<DD>
+Adding kernel instrumentation module to cache
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.cache_add_mod.3stap.html">probe::stap.cache_add_mod</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.cache_add_src </B>
+
+<DD>
+Adding C code translation to cache
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.cache_add_src.3stap.html">probe::stap.cache_add_src</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.cache_add_nss </B>
+
+<DD>
+Add NSS (Network Security Services) information to cache
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.cache_add_nss.3stap.html">probe::stap.cache_add_nss</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.cache_get </B>
+
+<DD>
+Found item in stap cache
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.cache_get.3stap.html">probe::stap.cache_get</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.system </B>
+
+<DD>
+Starting a command from stap
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.system.3stap.html">probe::stap.system</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.system.spawn </B>
+
+<DD>
+stap spawned new process
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.system.spawn.3stap.html">probe::stap.system.spawn</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stap.system.return </B>
+
+<DD>
+Finished a command from stap
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stap.system.return.3stap.html">probe::stap.system.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>staprun.insert_module </B>
+
+<DD>
+Inserting SystemTap instrumentation module
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::staprun.insert_module.3stap.html">probe::staprun.insert_module</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>staprun.remove_module </B>
+
+<DD>
+Removing SystemTap instrumentation module
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::staprun.remove_module.3stap.html">probe::staprun.remove_module</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>staprun.send_control_message </B>
+
+<DD>
+Sending a control message
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::staprun.send_control_message.3stap.html">probe::staprun.send_control_message</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stapio.receive_control_message </B>
+
+<DD>
+Received a control message
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::stapio.receive_control_message.3stap.html">probe::stapio.receive_control_message</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./probe::stap.pass0.3stap.html">probe::stap.pass0</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.pass0.end.3stap.html">probe::stap.pass0.end</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.pass1a.3stap.html">probe::stap.pass1a</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.pass1b.3stap.html">probe::stap.pass1b</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.pass1.end.3stap.html">probe::stap.pass1.end</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.pass2.3stap.html">probe::stap.pass2</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.pass2.end.3stap.html">probe::stap.pass2.end</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.pass3.3stap.html">probe::stap.pass3</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.pass3.end.3stap.html">probe::stap.pass3.end</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.pass4.3stap.html">probe::stap.pass4</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.pass4.end.3stap.html">probe::stap.pass4.end</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.pass5.3stap.html">probe::stap.pass5</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.pass5.end.3stap.html">probe::stap.pass5.end</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.pass6.3stap.html">probe::stap.pass6</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.pass6.end.3stap.html">probe::stap.pass6.end</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.cache_clean.3stap.html">probe::stap.cache_clean</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.cache_add_mod.3stap.html">probe::stap.cache_add_mod</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.cache_add_src.3stap.html">probe::stap.cache_add_src</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.cache_add_nss.3stap.html">probe::stap.cache_add_nss</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.cache_get.3stap.html">probe::stap.cache_get</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.system.3stap.html">probe::stap.system</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.system.spawn.3stap.html">probe::stap.system.spawn</A></I>(3stap),
+
+
+<I><A HREF="./probe::stap.system.return.3stap.html">probe::stap.system.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::staprun.insert_module.3stap.html">probe::staprun.insert_module</A></I>(3stap),
+
+
+<I><A HREF="./probe::staprun.remove_module.3stap.html">probe::staprun.remove_module</A></I>(3stap),
+
+
+<I><A HREF="./probe::staprun.send_control_message.3stap.html">probe::staprun.send_control_message</A></I>(3stap),
+
+
+<I><A HREF="./probe::stapio.receive_control_message.3stap.html">probe::stapio.receive_control_message</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::stopwatch</TITLE>
+</HEAD><BODY>
+<H1>tapset::stopwatch</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::stopwatch - systemtap stopwatch tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>delete_stopwatch </B>
+
+<DD>
+Remove an existing stopwatch
+<DT><DD>
+See
+<I><A HREF="./function::delete_stopwatch.3stap.html">function::delete_stopwatch</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>start_stopwatch </B>
+
+<DD>
+Start a stopwatch
+<DT><DD>
+See
+<I><A HREF="./function::start_stopwatch.3stap.html">function::start_stopwatch</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stop_stopwatch </B>
+
+<DD>
+Stop a stopwatch
+<DT><DD>
+See
+<I><A HREF="./function::stop_stopwatch.3stap.html">function::stop_stopwatch</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>read_stopwatch_ns </B>
+
+<DD>
+Reads the time in nanoseconds for a stopwatch
+<DT><DD>
+See
+<I><A HREF="./function::read_stopwatch_ns.3stap.html">function::read_stopwatch_ns</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>read_stopwatch_us </B>
+
+<DD>
+Reads the time in microseconds for a stopwatch
+<DT><DD>
+See
+<I><A HREF="./function::read_stopwatch_us.3stap.html">function::read_stopwatch_us</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>read_stopwatch_ms </B>
+
+<DD>
+Reads the time in milliseconds for a stopwatch
+<DT><DD>
+See
+<I><A HREF="./function::read_stopwatch_ms.3stap.html">function::read_stopwatch_ms</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>read_stopwatch_ms </B>
+
+<DD>
+Reads the time in seconds for a stopwatch
+<DT><DD>
+See
+<I><A HREF="./function::read_stopwatch_ms.3stap.html">function::read_stopwatch_ms</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::delete_stopwatch.3stap.html">function::delete_stopwatch</A></I>(3stap),
+
+
+<I><A HREF="./function::start_stopwatch.3stap.html">function::start_stopwatch</A></I>(3stap),
+
+
+<I><A HREF="./function::stop_stopwatch.3stap.html">function::stop_stopwatch</A></I>(3stap),
+
+
+<I><A HREF="./function::read_stopwatch_ns.3stap.html">function::read_stopwatch_ns</A></I>(3stap),
+
+
+<I><A HREF="./function::read_stopwatch_us.3stap.html">function::read_stopwatch_us</A></I>(3stap),
+
+
+<I><A HREF="./function::read_stopwatch_ms.3stap.html">function::read_stopwatch_ms</A></I>(3stap),
+
+
+<I><A HREF="./function::read_stopwatch_ms.3stap.html">function::read_stopwatch_ms</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::string</TITLE>
+</HEAD><BODY>
+<H1>tapset::string</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::string - systemtap string tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>strlen </B>
+
+<DD>
+Returns the length of a string
+<DT><DD>
+See
+<I><A HREF="./function::strlen.3stap.html">function::strlen</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>substr </B>
+
+<DD>
+Returns a substring
+<DT><DD>
+See
+<I><A HREF="./function::substr.3stap.html">function::substr</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>stringat </B>
+
+<DD>
+Returns the char at a given position in the string
+<DT><DD>
+See
+<I><A HREF="./function::stringat.3stap.html">function::stringat</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>isinstr </B>
+
+<DD>
+Returns whether a string is a substring of another string
+<DT><DD>
+See
+<I><A HREF="./function::isinstr.3stap.html">function::isinstr</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>text_str </B>
+
+<DD>
+Escape any non-printable chars in a string
+<DT><DD>
+See
+<I><A HREF="./function::text_str.3stap.html">function::text_str</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>text_strn </B>
+
+<DD>
+Escape any non-printable chars in a string
+<DT><DD>
+See
+<I><A HREF="./function::text_strn.3stap.html">function::text_strn</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>- strtol </B>
+
+<DD>
+Convert a string to a long
+<DT><DD>
+See
+<I>function::-</I><A HREF="strtol.3stap.html">strtol</A><I>(3stap)</I>
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>isdigit </B>
+
+<DD>
+Checks for a digit
+<DT><DD>
+See
+<I><A HREF="./function::isdigit.3stap.html">function::isdigit</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::strlen.3stap.html">function::strlen</A></I>(3stap),
+
+
+<I><A HREF="./function::substr.3stap.html">function::substr</A></I>(3stap),
+
+
+<I><A HREF="./function::stringat.3stap.html">function::stringat</A></I>(3stap),
+
+
+<I><A HREF="./function::isinstr.3stap.html">function::isinstr</A></I>(3stap),
+
+
+<I><A HREF="./function::text_str.3stap.html">function::text_str</A></I>(3stap),
+
+
+<I><A HREF="./function::text_strn.3stap.html">function::text_strn</A></I>(3stap),
+
+
+<I>function::-</I>(3stap),
+
+
+<I><A HREF="./function::strtol.3stap.html">function::strtol</A></I>(3stap),
+
+
+<I><A HREF="./function::isdigit.3stap.html">function::isdigit</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::system</TITLE>
+</HEAD><BODY>
+<H1>tapset::system</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::system - systemtap system tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>system </B>
+
+<DD>
+Issue a command to the system
+<DT><DD>
+See
+<I><A HREF="./function::system.3stap.html">function::system</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::system.3stap.html">function::system</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::target_set</TITLE>
+</HEAD><BODY>
+<H1>tapset::target_set</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::target_set - systemtap target_set tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>target_set_pid </B>
+
+<DD>
+Does pid descend from target process?
+<DT><DD>
+See
+<I><A HREF="./function::target_set_pid.3stap.html">function::target_set_pid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>target_set_report </B>
+
+<DD>
+Print a report about the target set
+<DT><DD>
+See
+<I><A HREF="./function::target_set_report.3stap.html">function::target_set_report</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::target_set_pid.3stap.html">function::target_set_pid</A></I>(3stap),
+
+
+<I><A HREF="./function::target_set_report.3stap.html">function::target_set_report</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::task</TITLE>
+</HEAD><BODY>
+<H1>tapset::task</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::task - systemtap task tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>task_current </B>
+
+<DD>
+The current task_struct of the current task
+<DT><DD>
+See
+<I><A HREF="./function::task_current.3stap.html">function::task_current</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_parent </B>
+
+<DD>
+The task_struct of the parent task
+<DT><DD>
+See
+<I><A HREF="./function::task_parent.3stap.html">function::task_parent</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_state </B>
+
+<DD>
+The state of the task
+<DT><DD>
+See
+<I><A HREF="./function::task_state.3stap.html">function::task_state</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_execname </B>
+
+<DD>
+The name of the task
+<DT><DD>
+See
+<I><A HREF="./function::task_execname.3stap.html">function::task_execname</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_pid </B>
+
+<DD>
+The process identifier of the task
+<DT><DD>
+See
+<I><A HREF="./function::task_pid.3stap.html">function::task_pid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>pid2task </B>
+
+<DD>
+The task_struct of the given process identifier
+<DT><DD>
+See
+<I><A HREF="./function::pid2task.3stap.html">function::pid2task</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>pid2execname </B>
+
+<DD>
+The name of the given process identifier
+<DT><DD>
+See
+<I><A HREF="./function::pid2execname.3stap.html">function::pid2execname</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_tid </B>
+
+<DD>
+The thread identifier of the task
+<DT><DD>
+See
+<I><A HREF="./function::task_tid.3stap.html">function::task_tid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_gid </B>
+
+<DD>
+The group identifier of the task
+<DT><DD>
+See
+<I><A HREF="./function::task_gid.3stap.html">function::task_gid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_egid </B>
+
+<DD>
+The effective group identifier of the task
+<DT><DD>
+See
+<I><A HREF="./function::task_egid.3stap.html">function::task_egid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_uid </B>
+
+<DD>
+The user identifier of the task
+<DT><DD>
+See
+<I><A HREF="./function::task_uid.3stap.html">function::task_uid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_euid </B>
+
+<DD>
+The effective user identifier of the task
+<DT><DD>
+See
+<I><A HREF="./function::task_euid.3stap.html">function::task_euid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_prio </B>
+
+<DD>
+The priority value of the task
+<DT><DD>
+See
+<I><A HREF="./function::task_prio.3stap.html">function::task_prio</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_nice </B>
+
+<DD>
+The nice value of the task
+<DT><DD>
+See
+<I><A HREF="./function::task_nice.3stap.html">function::task_nice</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_cpu </B>
+
+<DD>
+The scheduled cpu of the task
+<DT><DD>
+See
+<I><A HREF="./function::task_cpu.3stap.html">function::task_cpu</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_open_file_handles </B>
+
+<DD>
+The number of open files of the task
+<DT><DD>
+See
+<I><A HREF="./function::task_open_file_handles.3stap.html">function::task_open_file_handles</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_max_file_handles </B>
+
+<DD>
+The max number of open files for the task
+<DT><DD>
+See
+<I><A HREF="./function::task_max_file_handles.3stap.html">function::task_max_file_handles</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::task_current.3stap.html">function::task_current</A></I>(3stap),
+
+
+<I><A HREF="./function::task_parent.3stap.html">function::task_parent</A></I>(3stap),
+
+
+<I><A HREF="./function::task_state.3stap.html">function::task_state</A></I>(3stap),
+
+
+<I><A HREF="./function::task_execname.3stap.html">function::task_execname</A></I>(3stap),
+
+
+<I><A HREF="./function::task_pid.3stap.html">function::task_pid</A></I>(3stap),
+
+
+<I><A HREF="./function::pid2task.3stap.html">function::pid2task</A></I>(3stap),
+
+
+<I><A HREF="./function::pid2execname.3stap.html">function::pid2execname</A></I>(3stap),
+
+
+<I><A HREF="./function::task_tid.3stap.html">function::task_tid</A></I>(3stap),
+
+
+<I><A HREF="./function::task_gid.3stap.html">function::task_gid</A></I>(3stap),
+
+
+<I><A HREF="./function::task_egid.3stap.html">function::task_egid</A></I>(3stap),
+
+
+<I><A HREF="./function::task_uid.3stap.html">function::task_uid</A></I>(3stap),
+
+
+<I><A HREF="./function::task_euid.3stap.html">function::task_euid</A></I>(3stap),
+
+
+<I><A HREF="./function::task_prio.3stap.html">function::task_prio</A></I>(3stap),
+
+
+<I><A HREF="./function::task_nice.3stap.html">function::task_nice</A></I>(3stap),
+
+
+<I><A HREF="./function::task_cpu.3stap.html">function::task_cpu</A></I>(3stap),
+
+
+<I><A HREF="./function::task_open_file_handles.3stap.html">function::task_open_file_handles</A></I>(3stap),
+
+
+<I><A HREF="./function::task_max_file_handles.3stap.html">function::task_max_file_handles</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::task_ancestry</TITLE>
+</HEAD><BODY>
+<H1>tapset::task_ancestry</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::task_ancestry - systemtap task_ancestry tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>task_ancestry </B>
+
+<DD>
+The ancestry of the given task
+<DT><DD>
+See
+<I><A HREF="./function::task_ancestry.3stap.html">function::task_ancestry</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::task_ancestry.3stap.html">function::task_ancestry</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::task_time</TITLE>
+</HEAD><BODY>
+<H1>tapset::task_time</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::task_time - systemtap task_time tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> Task time query and utility functions provide information about
+<BR> the time resource usage of the current task. These functions provide
+<BR> information about the user time and system time of the current
+<BR> task. And provide utility functions to turn the reported times
+<BR> into miliseconds and create human readable string representations
+<BR> of task time used. The reported times are approximates and should
+<BR> be used for "coarse grained" measurements only. The reported user
+<BR> and system time are only for the current task, not for the process
+<BR> as a whole nor of any time spend by children of the current task.
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>task_utime </B>
+
+<DD>
+User time of the current task
+<DT><DD>
+See
+<I><A HREF="./function::task_utime.3stap.html">function::task_utime</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_utime_tid </B>
+
+<DD>
+User time of the given task
+<DT><DD>
+See
+<I><A HREF="./function::task_utime_tid.3stap.html">function::task_utime_tid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_stime </B>
+
+<DD>
+System time of the current task
+<DT><DD>
+See
+<I><A HREF="./function::task_stime.3stap.html">function::task_stime</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_stime_tid </B>
+
+<DD>
+System time of the given task
+<DT><DD>
+See
+<I><A HREF="./function::task_stime_tid.3stap.html">function::task_stime_tid</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_start_time </B>
+
+<DD>
+Start time of the given task
+<DT><DD>
+See
+<I><A HREF="./function::task_start_time.3stap.html">function::task_start_time</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>cputime_to_msecs </B>
+
+<DD>
+Translates the given cputime into milliseconds
+<DT><DD>
+See
+<I><A HREF="./function::cputime_to_msecs.3stap.html">function::cputime_to_msecs</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>cputime_to_usecs </B>
+
+<DD>
+Translates the given cputime into microseconds
+<DT><DD>
+See
+<I><A HREF="./function::cputime_to_usecs.3stap.html">function::cputime_to_usecs</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>msecs_to_string </B>
+
+<DD>
+Human readable string for given milliseconds
+<DT><DD>
+See
+<I><A HREF="./function::msecs_to_string.3stap.html">function::msecs_to_string</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>usecs_to_string </B>
+
+<DD>
+Human readable string for given microseconds
+<DT><DD>
+See
+<I><A HREF="./function::usecs_to_string.3stap.html">function::usecs_to_string</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>nsecs_to_string </B>
+
+<DD>
+Human readable string for given nanoseconds
+<DT><DD>
+See
+<I><A HREF="./function::nsecs_to_string.3stap.html">function::nsecs_to_string</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>cputime_to_string </B>
+
+<DD>
+Human readable string for given cputime
+<DT><DD>
+See
+<I><A HREF="./function::cputime_to_string.3stap.html">function::cputime_to_string</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_time_string </B>
+
+<DD>
+Human readable string of task time usage
+<DT><DD>
+See
+<I><A HREF="./function::task_time_string.3stap.html">function::task_time_string</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>task_time_string_tid </B>
+
+<DD>
+Human readable string of task time usage
+<DT><DD>
+See
+<I><A HREF="./function::task_time_string_tid.3stap.html">function::task_time_string_tid</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::task_utime.3stap.html">function::task_utime</A></I>(3stap),
+
+
+<I><A HREF="./function::task_utime_tid.3stap.html">function::task_utime_tid</A></I>(3stap),
+
+
+<I><A HREF="./function::task_stime.3stap.html">function::task_stime</A></I>(3stap),
+
+
+<I><A HREF="./function::task_stime_tid.3stap.html">function::task_stime_tid</A></I>(3stap),
+
+
+<I><A HREF="./function::task_start_time.3stap.html">function::task_start_time</A></I>(3stap),
+
+
+<I><A HREF="./function::cputime_to_msecs.3stap.html">function::cputime_to_msecs</A></I>(3stap),
+
+
+<I><A HREF="./function::cputime_to_usecs.3stap.html">function::cputime_to_usecs</A></I>(3stap),
+
+
+<I><A HREF="./function::msecs_to_string.3stap.html">function::msecs_to_string</A></I>(3stap),
+
+
+<I><A HREF="./function::usecs_to_string.3stap.html">function::usecs_to_string</A></I>(3stap),
+
+
+<I><A HREF="./function::nsecs_to_string.3stap.html">function::nsecs_to_string</A></I>(3stap),
+
+
+<I><A HREF="./function::cputime_to_string.3stap.html">function::cputime_to_string</A></I>(3stap),
+
+
+<I><A HREF="./function::task_time_string.3stap.html">function::task_time_string</A></I>(3stap),
+
+
+<I><A HREF="./function::task_time_string_tid.3stap.html">function::task_time_string_tid</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::tcp</TITLE>
+</HEAD><BODY>
+<H1>tapset::tcp</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::tcp - systemtap tcp tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> This family of probe points is used to probe events that occur in the TCP layer,
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>tcp.sendmsg </B>
+
+<DD>
+Sending a tcp message
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tcp.sendmsg.3stap.html">probe::tcp.sendmsg</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcp.sendmsg.return </B>
+
+<DD>
+<BR> Sending TCP message is done
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tcp.sendmsg.return.3stap.html">probe::tcp.sendmsg.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcp.recvmsg </B>
+
+<DD>
+Receiving TCP message
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tcp.recvmsg.3stap.html">probe::tcp.recvmsg</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcp.recvmsg.return </B>
+
+<DD>
+Receiving TCP message complete
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tcp.recvmsg.return.3stap.html">probe::tcp.recvmsg.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcp.disconnect </B>
+
+<DD>
+TCP socket disconnection
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tcp.disconnect.3stap.html">probe::tcp.disconnect</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcp.disconnect.return </B>
+
+<DD>
+TCP socket disconnection complete
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tcp.disconnect.return.3stap.html">probe::tcp.disconnect.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcp.setsockopt </B>
+
+<DD>
+Call to setsockopt()
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tcp.setsockopt.3stap.html">probe::tcp.setsockopt</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcp.setsockopt.return </B>
+
+<DD>
+<BR> Return from setsockopt()
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tcp.setsockopt.return.3stap.html">probe::tcp.setsockopt.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcp.receive </B>
+
+<DD>
+Called when a TCP packet is received
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tcp.receive.3stap.html">probe::tcp.receive</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./probe::tcp.sendmsg.3stap.html">probe::tcp.sendmsg</A></I>(3stap),
+
+
+<I><A HREF="./probe::tcp.sendmsg.return.3stap.html">probe::tcp.sendmsg.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::tcp.recvmsg.3stap.html">probe::tcp.recvmsg</A></I>(3stap),
+
+
+<I><A HREF="./probe::tcp.recvmsg.return.3stap.html">probe::tcp.recvmsg.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::tcp.disconnect.3stap.html">probe::tcp.disconnect</A></I>(3stap),
+
+
+<I><A HREF="./probe::tcp.disconnect.return.3stap.html">probe::tcp.disconnect.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::tcp.setsockopt.3stap.html">probe::tcp.setsockopt</A></I>(3stap),
+
+
+<I><A HREF="./probe::tcp.setsockopt.return.3stap.html">probe::tcp.setsockopt.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::tcp.receive.3stap.html">probe::tcp.receive</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::tcpmib-filter-default</TITLE>
+</HEAD><BODY>
+<H1>tapset::tcpmib-filter-default</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::tcpmib-filter-default - systemtap tcpmib-filter-default tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>tcpmib_filter_key </B>
+
+<DD>
+Default filter function for tcpmib.* probes
+<DT><DD>
+See
+<I><A HREF="./function::tcpmib_filter_key.3stap.html">function::tcpmib_filter_key</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::tcpmib_filter_key.3stap.html">function::tcpmib_filter_key</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::tcpmib</TITLE>
+</HEAD><BODY>
+<H1>tapset::tcpmib</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::tcpmib - systemtap tcpmib tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>tcpmib_get_state </B>
+
+<DD>
+Get a socket's state
+<DT><DD>
+See
+<I><A HREF="./function::tcpmib_get_state.3stap.html">function::tcpmib_get_state</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcpmib_local_addr </B>
+
+<DD>
+Get the source address
+<DT><DD>
+See
+<I><A HREF="./function::tcpmib_local_addr.3stap.html">function::tcpmib_local_addr</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcpmib_remote_addr </B>
+
+<DD>
+Get the remote address
+<DT><DD>
+See
+<I><A HREF="./function::tcpmib_remote_addr.3stap.html">function::tcpmib_remote_addr</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcpmib_local_port </B>
+
+<DD>
+Get the local port
+<DT><DD>
+See
+<I><A HREF="./function::tcpmib_local_port.3stap.html">function::tcpmib_local_port</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcpmib_remote_port </B>
+
+<DD>
+Get the remote port
+<DT><DD>
+See
+<I><A HREF="./function::tcpmib_remote_port.3stap.html">function::tcpmib_remote_port</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcpmib.ActiveOpens </B>
+
+<DD>
+Count an active opening of a socket
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tcpmib.ActiveOpens.3stap.html">probe::tcpmib.ActiveOpens</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcpmib.AttemptFails </B>
+
+<DD>
+Count a failed attempt to open a socket
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tcpmib.AttemptFails.3stap.html">probe::tcpmib.AttemptFails</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcpmib.CurrEstab </B>
+
+<DD>
+Update the count of open sockets
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tcpmib.CurrEstab.3stap.html">probe::tcpmib.CurrEstab</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcpmib.EstabResets </B>
+
+<DD>
+Count the reset of a socket
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tcpmib.EstabResets.3stap.html">probe::tcpmib.EstabResets</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcpmib.InSegs </B>
+
+<DD>
+Count an incoming tcp segment
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tcpmib.InSegs.3stap.html">probe::tcpmib.InSegs</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcpmib.OutRsts </B>
+
+<DD>
+Count the sending of a reset packet
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tcpmib.OutRsts.3stap.html">probe::tcpmib.OutRsts</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcpmib.OutSegs </B>
+
+<DD>
+Count the sending of a TCP segment
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tcpmib.OutSegs.3stap.html">probe::tcpmib.OutSegs</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcpmib.PassiveOpens </B>
+
+<DD>
+Count the passive creation of a socket
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tcpmib.PassiveOpens.3stap.html">probe::tcpmib.PassiveOpens</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tcpmib.RetransSegs </B>
+
+<DD>
+Count the retransmission of a TCP segment
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tcpmib.RetransSegs.3stap.html">probe::tcpmib.RetransSegs</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::tcpmib_get_state.3stap.html">function::tcpmib_get_state</A></I>(3stap),
+
+
+<I><A HREF="./function::tcpmib_local_addr.3stap.html">function::tcpmib_local_addr</A></I>(3stap),
+
+
+<I><A HREF="./function::tcpmib_remote_addr.3stap.html">function::tcpmib_remote_addr</A></I>(3stap),
+
+
+<I><A HREF="./function::tcpmib_local_port.3stap.html">function::tcpmib_local_port</A></I>(3stap),
+
+
+<I><A HREF="./function::tcpmib_remote_port.3stap.html">function::tcpmib_remote_port</A></I>(3stap),
+
+
+<I><A HREF="./probe::tcpmib.ActiveOpens.3stap.html">probe::tcpmib.ActiveOpens</A></I>(3stap),
+
+
+<I><A HREF="./probe::tcpmib.AttemptFails.3stap.html">probe::tcpmib.AttemptFails</A></I>(3stap),
+
+
+<I><A HREF="./probe::tcpmib.CurrEstab.3stap.html">probe::tcpmib.CurrEstab</A></I>(3stap),
+
+
+<I><A HREF="./probe::tcpmib.EstabResets.3stap.html">probe::tcpmib.EstabResets</A></I>(3stap),
+
+
+<I><A HREF="./probe::tcpmib.InSegs.3stap.html">probe::tcpmib.InSegs</A></I>(3stap),
+
+
+<I><A HREF="./probe::tcpmib.OutRsts.3stap.html">probe::tcpmib.OutRsts</A></I>(3stap),
+
+
+<I><A HREF="./probe::tcpmib.OutSegs.3stap.html">probe::tcpmib.OutSegs</A></I>(3stap),
+
+
+<I><A HREF="./probe::tcpmib.PassiveOpens.3stap.html">probe::tcpmib.PassiveOpens</A></I>(3stap),
+
+
+<I><A HREF="./probe::tcpmib.RetransSegs.3stap.html">probe::tcpmib.RetransSegs</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::timestamp</TITLE>
+</HEAD><BODY>
+<H1>tapset::timestamp</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::timestamp - systemtap timestamp tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> Each timestamp function returns a value to indicate when a function is executed. These
+returned values can then be used to indicate when an event occurred, provide an ordering for events,
+or compute the amount of time elapsed between two time stamps.
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>get_cycles </B>
+
+<DD>
+Processor cycle count
+<DT><DD>
+See
+<I><A HREF="./function::get_cycles.3stap.html">function::get_cycles</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>jiffies </B>
+
+<DD>
+Kernel jiffies count
+<DT><DD>
+See
+<I><A HREF="./function::jiffies.3stap.html">function::jiffies</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>HZ </B>
+
+<DD>
+Kernel HZ
+<DT><DD>
+See
+<I><A HREF="./function::HZ.3stap.html">function::HZ</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::get_cycles.3stap.html">function::get_cycles</A></I>(3stap),
+
+
+<I><A HREF="./function::jiffies.3stap.html">function::jiffies</A></I>(3stap),
+
+
+<I><A HREF="./function::HZ.3stap.html">function::HZ</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::timestamp_gtod</TITLE>
+</HEAD><BODY>
+<H1>tapset::timestamp_gtod</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::timestamp_gtod - systemtap timestamp_gtod tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>gettimeofday_ns </B>
+
+<DD>
+Number of nanoseconds since UNIX epoch
+<DT><DD>
+See
+<I><A HREF="./function::gettimeofday_ns.3stap.html">function::gettimeofday_ns</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>gettimeofday_us </B>
+
+<DD>
+Number of microseconds since UNIX epoch
+<DT><DD>
+See
+<I><A HREF="./function::gettimeofday_us.3stap.html">function::gettimeofday_us</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>gettimeofday_ms </B>
+
+<DD>
+Number of milliseconds since UNIX epoch
+<DT><DD>
+See
+<I><A HREF="./function::gettimeofday_ms.3stap.html">function::gettimeofday_ms</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>gettimeofday_s </B>
+
+<DD>
+Number of seconds since UNIX epoch
+<DT><DD>
+See
+<I><A HREF="./function::gettimeofday_s.3stap.html">function::gettimeofday_s</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::gettimeofday_ns.3stap.html">function::gettimeofday_ns</A></I>(3stap),
+
+
+<I><A HREF="./function::gettimeofday_us.3stap.html">function::gettimeofday_us</A></I>(3stap),
+
+
+<I><A HREF="./function::gettimeofday_ms.3stap.html">function::gettimeofday_ms</A></I>(3stap),
+
+
+<I><A HREF="./function::gettimeofday_s.3stap.html">function::gettimeofday_s</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::timestamp_monotonic</TITLE>
+</HEAD><BODY>
+<H1>tapset::timestamp_monotonic</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::timestamp_monotonic - systemtap timestamp_monotonic tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>cpu_clock_ns </B>
+
+<DD>
+Number of nanoseconds on the given cpu's clock
+<DT><DD>
+See
+<I><A HREF="./function::cpu_clock_ns.3stap.html">function::cpu_clock_ns</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>cpu_clock_us </B>
+
+<DD>
+Number of microseconds on the given cpu's clock
+<DT><DD>
+See
+<I><A HREF="./function::cpu_clock_us.3stap.html">function::cpu_clock_us</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>cpu_clock_ms </B>
+
+<DD>
+Number of milliseconds on the given cpu's clock
+<DT><DD>
+See
+<I><A HREF="./function::cpu_clock_ms.3stap.html">function::cpu_clock_ms</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>cpu_clock_s </B>
+
+<DD>
+Number of seconds on the given cpu's clock
+<DT><DD>
+See
+<I><A HREF="./function::cpu_clock_s.3stap.html">function::cpu_clock_s</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>local_clock_ns </B>
+
+<DD>
+Number of nanoseconds on the local cpu's clock
+<DT><DD>
+See
+<I><A HREF="./function::local_clock_ns.3stap.html">function::local_clock_ns</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>local_clock_us </B>
+
+<DD>
+Number of microseconds on the local cpu's clock
+<DT><DD>
+See
+<I><A HREF="./function::local_clock_us.3stap.html">function::local_clock_us</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>local_clock_ms </B>
+
+<DD>
+Number of milliseconds on the local cpu's clock
+<DT><DD>
+See
+<I><A HREF="./function::local_clock_ms.3stap.html">function::local_clock_ms</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>local_clock_s </B>
+
+<DD>
+Number of seconds on the local cpu's clock
+<DT><DD>
+See
+<I><A HREF="./function::local_clock_s.3stap.html">function::local_clock_s</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::cpu_clock_ns.3stap.html">function::cpu_clock_ns</A></I>(3stap),
+
+
+<I><A HREF="./function::cpu_clock_us.3stap.html">function::cpu_clock_us</A></I>(3stap),
+
+
+<I><A HREF="./function::cpu_clock_ms.3stap.html">function::cpu_clock_ms</A></I>(3stap),
+
+
+<I><A HREF="./function::cpu_clock_s.3stap.html">function::cpu_clock_s</A></I>(3stap),
+
+
+<I><A HREF="./function::local_clock_ns.3stap.html">function::local_clock_ns</A></I>(3stap),
+
+
+<I><A HREF="./function::local_clock_us.3stap.html">function::local_clock_us</A></I>(3stap),
+
+
+<I><A HREF="./function::local_clock_ms.3stap.html">function::local_clock_ms</A></I>(3stap),
+
+
+<I><A HREF="./function::local_clock_s.3stap.html">function::local_clock_s</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::tokenize</TITLE>
+</HEAD><BODY>
+<H1>tapset::tokenize</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::tokenize - systemtap tokenize tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>tokenize </B>
+
+<DD>
+Return the next non-empty token in a string
+<DT><DD>
+See
+<I><A HREF="./function::tokenize.3stap.html">function::tokenize</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::tokenize.3stap.html">function::tokenize</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::tty</TITLE>
+</HEAD><BODY>
+<H1>tapset::tty</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::tty - systemtap tty tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>tty.open </B>
+
+<DD>
+Called when a tty is opened
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tty.open.3stap.html">probe::tty.open</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tty.release </B>
+
+<DD>
+Called when the tty is closed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tty.release.3stap.html">probe::tty.release</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tty.resize </B>
+
+<DD>
+Called when a terminal resize happens
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tty.resize.3stap.html">probe::tty.resize</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tty.ioctl </B>
+
+<DD>
+called when a ioctl is request to the tty
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tty.ioctl.3stap.html">probe::tty.ioctl</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tty.init </B>
+
+<DD>
+Called when a tty is being initalized
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tty.init.3stap.html">probe::tty.init</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tty.register </B>
+
+<DD>
+Called when a tty device is registred
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tty.register.3stap.html">probe::tty.register</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tty.unregister </B>
+
+<DD>
+Called when a tty device is being unregistered
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tty.unregister.3stap.html">probe::tty.unregister</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tty.poll </B>
+
+<DD>
+Called when a tty device is being polled
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tty.poll.3stap.html">probe::tty.poll</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tty.receive </B>
+
+<DD>
+called when a tty receives a message
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tty.receive.3stap.html">probe::tty.receive</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tty.write </B>
+
+<DD>
+write to the tty line
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tty.write.3stap.html">probe::tty.write</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tty.read </B>
+
+<DD>
+called when a tty line will be read
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::tty.read.3stap.html">probe::tty.read</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./probe::tty.open.3stap.html">probe::tty.open</A></I>(3stap),
+
+
+<I><A HREF="./probe::tty.release.3stap.html">probe::tty.release</A></I>(3stap),
+
+
+<I><A HREF="./probe::tty.resize.3stap.html">probe::tty.resize</A></I>(3stap),
+
+
+<I><A HREF="./probe::tty.ioctl.3stap.html">probe::tty.ioctl</A></I>(3stap),
+
+
+<I><A HREF="./probe::tty.init.3stap.html">probe::tty.init</A></I>(3stap),
+
+
+<I><A HREF="./probe::tty.register.3stap.html">probe::tty.register</A></I>(3stap),
+
+
+<I><A HREF="./probe::tty.unregister.3stap.html">probe::tty.unregister</A></I>(3stap),
+
+
+<I><A HREF="./probe::tty.poll.3stap.html">probe::tty.poll</A></I>(3stap),
+
+
+<I><A HREF="./probe::tty.receive.3stap.html">probe::tty.receive</A></I>(3stap),
+
+
+<I><A HREF="./probe::tty.write.3stap.html">probe::tty.write</A></I>(3stap),
+
+
+<I><A HREF="./probe::tty.read.3stap.html">probe::tty.read</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::tzinfo</TITLE>
+</HEAD><BODY>
+<H1>tapset::tzinfo</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::tzinfo - systemtap tzinfo tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>tz_gmtoff </B>
+
+<DD>
+Return local time zone offset
+<DT><DD>
+See
+<I><A HREF="./function::tz_gmtoff.3stap.html">function::tz_gmtoff</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tz_name </B>
+
+<DD>
+Return local time zone name
+<DT><DD>
+See
+<I><A HREF="./function::tz_name.3stap.html">function::tz_name</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>tz_ctime </B>
+
+<DD>
+Convert seconds since epoch into human readable date/time string, with local time zone
+<DT><DD>
+See
+<I><A HREF="./function::tz_ctime.3stap.html">function::tz_ctime</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::tz_gmtoff.3stap.html">function::tz_gmtoff</A></I>(3stap),
+
+
+<I><A HREF="./function::tz_name.3stap.html">function::tz_name</A></I>(3stap),
+
+
+<I><A HREF="./function::tz_ctime.3stap.html">function::tz_ctime</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::ucontext-symbols</TITLE>
+</HEAD><BODY>
+<H1>tapset::ucontext-symbols</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::ucontext-symbols - systemtap ucontext-symbols tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> User context symbol functions provide additional information about
+<BR> addresses from an application. These functions can provide
+<BR> information about the user space map (library) that the event occurred or
+<BR> the function symbol of an address.
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>ustack </B>
+
+<DD>
+Return address at given depth of user stack backtrace
+<DT><DD>
+See
+<I><A HREF="./function::ustack.3stap.html">function::ustack</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>usymname </B>
+
+<DD>
+Return the symbol of an address in the current task.
+<DT><DD>
+See
+<I><A HREF="./function::usymname.3stap.html">function::usymname</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>usymdata </B>
+
+<DD>
+Return the symbol and module offset of an address.
+<DT><DD>
+See
+<I><A HREF="./function::usymdata.3stap.html">function::usymdata</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>print_ustack </B>
+
+<DD>
+Print out stack for the current task from string.
+<DT><DD>
+See
+<I><A HREF="./function::print_ustack.3stap.html">function::print_ustack</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>print_usyms </B>
+
+<DD>
+Print out user stack from string
+<DT><DD>
+See
+<I><A HREF="./function::print_usyms.3stap.html">function::print_usyms</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sprint_ustack </B>
+
+<DD>
+Return stack for the current task from string.
+<DT><DD>
+See
+<I><A HREF="./function::sprint_ustack.3stap.html">function::sprint_ustack</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sprint_usyms </B>
+
+<DD>
+Return stack for user addresses from string
+<DT><DD>
+See
+<I><A HREF="./function::sprint_usyms.3stap.html">function::sprint_usyms</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::ustack.3stap.html">function::ustack</A></I>(3stap),
+
+
+<I><A HREF="./function::usymname.3stap.html">function::usymname</A></I>(3stap),
+
+
+<I><A HREF="./function::usymdata.3stap.html">function::usymdata</A></I>(3stap),
+
+
+<I><A HREF="./function::print_ustack.3stap.html">function::print_ustack</A></I>(3stap),
+
+
+<I><A HREF="./function::print_usyms.3stap.html">function::print_usyms</A></I>(3stap),
+
+
+<I><A HREF="./function::sprint_ustack.3stap.html">function::sprint_ustack</A></I>(3stap),
+
+
+<I><A HREF="./function::sprint_usyms.3stap.html">function::sprint_usyms</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::ucontext-unwind</TITLE>
+</HEAD><BODY>
+<H1>tapset::ucontext-unwind</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::ucontext-unwind - systemtap ucontext-unwind tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>print_ubacktrace </B>
+
+<DD>
+Print stack back trace for current user-space task.
+<DT><DD>
+See
+<I><A HREF="./function::print_ubacktrace.3stap.html">function::print_ubacktrace</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>sprint_ubacktrace </B>
+
+<DD>
+Return stack back trace for current user-space task as string.
+<DT><DD>
+See
+<I><A HREF="./function::sprint_ubacktrace.3stap.html">function::sprint_ubacktrace</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ubacktrace </B>
+
+<DD>
+Hex backtrace of current user-space task stack.
+<DT><DD>
+See
+<I><A HREF="./function::ubacktrace.3stap.html">function::ubacktrace</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::print_ubacktrace.3stap.html">function::print_ubacktrace</A></I>(3stap),
+
+
+<I><A HREF="./function::sprint_ubacktrace.3stap.html">function::sprint_ubacktrace</A></I>(3stap),
+
+
+<I><A HREF="./function::ubacktrace.3stap.html">function::ubacktrace</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::ucontext</TITLE>
+</HEAD><BODY>
+<H1>tapset::ucontext</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::ucontext - systemtap ucontext tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>umodname </B>
+
+<DD>
+Returns the (short) name of the user module.
+<DT><DD>
+See
+<I><A HREF="./function::umodname.3stap.html">function::umodname</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>ucallers </B>
+
+<DD>
+Return first n elements of user stack backtrace
+<DT><DD>
+See
+<I><A HREF="./function::ucallers.3stap.html">function::ucallers</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::umodname.3stap.html">function::umodname</A></I>(3stap),
+
+
+<I><A HREF="./function::ucallers.3stap.html">function::ucallers</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::uconversions</TITLE>
+</HEAD><BODY>
+<H1>tapset::uconversions</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::uconversions - systemtap uconversions tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>user_string </B>
+
+<DD>
+Retrieves string from user space
+<DT><DD>
+See
+<I><A HREF="./function::user_string.3stap.html">function::user_string</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_string2 </B>
+
+<DD>
+Retrieves string from user space with alternative error string
+<DT><DD>
+See
+<I><A HREF="./function::user_string2.3stap.html">function::user_string2</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_string_warn </B>
+
+<DD>
+Retrieves string from user space
+<DT><DD>
+See
+<I><A HREF="./function::user_string_warn.3stap.html">function::user_string_warn</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_string2_warn </B>
+
+<DD>
+Retrieves string from user space with alternative warning string
+<DT><DD>
+See
+<I><A HREF="./function::user_string2_warn.3stap.html">function::user_string2_warn</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_string_quoted </B>
+
+<DD>
+Retrieves and quotes string from user space
+<DT><DD>
+See
+<I><A HREF="./function::user_string_quoted.3stap.html">function::user_string_quoted</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_string_n </B>
+
+<DD>
+Retrieves string of given length from user space
+<DT><DD>
+See
+<I><A HREF="./function::user_string_n.3stap.html">function::user_string_n</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_string_n2 </B>
+
+<DD>
+Retrieves string of given length from user space
+<DT><DD>
+See
+<I><A HREF="./function::user_string_n2.3stap.html">function::user_string_n2</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_string_n_warn </B>
+
+<DD>
+Retrieves string from user space
+<DT><DD>
+See
+<I><A HREF="./function::user_string_n_warn.3stap.html">function::user_string_n_warn</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_string2_n_warn </B>
+
+<DD>
+Retrieves string from user space with alternative warning string
+<DT><DD>
+See
+<I><A HREF="./function::user_string2_n_warn.3stap.html">function::user_string2_n_warn</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_string_n_quoted </B>
+
+<DD>
+Retrieves and quotes string from user space
+<DT><DD>
+See
+<I><A HREF="./function::user_string_n_quoted.3stap.html">function::user_string_n_quoted</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_string_n2_quoted </B>
+
+<DD>
+Retrieves and quotes string from user space
+<DT><DD>
+See
+<I><A HREF="./function::user_string_n2_quoted.3stap.html">function::user_string_n2_quoted</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_string_utf32 </B>
+
+<DD>
+Retrieves UTF-32 string from user memory
+<DT><DD>
+See
+<I><A HREF="./function::user_string_utf32.3stap.html">function::user_string_utf32</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_string2_utf32 </B>
+
+<DD>
+Retrieves UTF-32 string from user memory with alternative error string
+<DT><DD>
+See
+<I><A HREF="./function::user_string2_utf32.3stap.html">function::user_string2_utf32</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_string_utf16 </B>
+
+<DD>
+Retrieves UTF-16 string from user memory
+<DT><DD>
+See
+<I><A HREF="./function::user_string_utf16.3stap.html">function::user_string_utf16</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_string2_utf16 </B>
+
+<DD>
+Retrieves UTF-16 string from user memory with alternative error string
+<DT><DD>
+See
+<I><A HREF="./function::user_string2_utf16.3stap.html">function::user_string2_utf16</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_char </B>
+
+<DD>
+Retrieves a char value stored in user space
+<DT><DD>
+See
+<I><A HREF="./function::user_char.3stap.html">function::user_char</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_char_warn </B>
+
+<DD>
+Retrieves a char value stored in user space
+<DT><DD>
+See
+<I><A HREF="./function::user_char_warn.3stap.html">function::user_char_warn</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_short </B>
+
+<DD>
+Retrieves a short value stored in user space
+<DT><DD>
+See
+<I><A HREF="./function::user_short.3stap.html">function::user_short</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_short_warn </B>
+
+<DD>
+Retrieves a short value stored in user space
+<DT><DD>
+See
+<I><A HREF="./function::user_short_warn.3stap.html">function::user_short_warn</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_ushort </B>
+
+<DD>
+Retrieves an unsigned short value stored in user space
+<DT><DD>
+See
+<I><A HREF="./function::user_ushort.3stap.html">function::user_ushort</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_ushort_warn </B>
+
+<DD>
+Retrieves an unsigned short value stored in user space
+<DT><DD>
+See
+<I><A HREF="./function::user_ushort_warn.3stap.html">function::user_ushort_warn</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_int </B>
+
+<DD>
+Retrieves an int value stored in user space
+<DT><DD>
+See
+<I><A HREF="./function::user_int.3stap.html">function::user_int</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_int_warn </B>
+
+<DD>
+Retrieves an int value stored in user space
+<DT><DD>
+See
+<I><A HREF="./function::user_int_warn.3stap.html">function::user_int_warn</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_long </B>
+
+<DD>
+Retrieves a long value stored in user space
+<DT><DD>
+See
+<I><A HREF="./function::user_long.3stap.html">function::user_long</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_long_warn </B>
+
+<DD>
+Retrieves a long value stored in user space
+<DT><DD>
+See
+<I><A HREF="./function::user_long_warn.3stap.html">function::user_long_warn</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_ulong </B>
+
+<DD>
+Retrieves an unsigned long value stored in user space
+<DT><DD>
+See
+<I><A HREF="./function::user_ulong.3stap.html">function::user_ulong</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_ulong_warn </B>
+
+<DD>
+Retrieves an unsigned long value stored in user space
+<DT><DD>
+See
+<I><A HREF="./function::user_ulong_warn.3stap.html">function::user_ulong_warn</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_int8 </B>
+
+<DD>
+Retrieves a 8-bit integer value stored in user space
+<DT><DD>
+See
+<I><A HREF="./function::user_int8.3stap.html">function::user_int8</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_uint8 </B>
+
+<DD>
+Retrieves an unsigned 8-bit integer value stored in user space
+<DT><DD>
+See
+<I><A HREF="./function::user_uint8.3stap.html">function::user_uint8</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_int16 </B>
+
+<DD>
+Retrieves a 16-bit integer value stored in user space
+<DT><DD>
+See
+<I><A HREF="./function::user_int16.3stap.html">function::user_int16</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_uint16 </B>
+
+<DD>
+Retrieves an unsigned 16-bit integer value stored in user space
+<DT><DD>
+See
+<I><A HREF="./function::user_uint16.3stap.html">function::user_uint16</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_int32 </B>
+
+<DD>
+Retrieves a 32-bit integer value stored in user space
+<DT><DD>
+See
+<I><A HREF="./function::user_int32.3stap.html">function::user_int32</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_uint32 </B>
+
+<DD>
+Retrieves an unsigned 32-bit integer value stored in user space
+<DT><DD>
+See
+<I><A HREF="./function::user_uint32.3stap.html">function::user_uint32</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_int64 </B>
+
+<DD>
+Retrieves a 64-bit integer value stored in user space
+<DT><DD>
+See
+<I><A HREF="./function::user_int64.3stap.html">function::user_int64</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>user_uint64 </B>
+
+<DD>
+Retrieves an unsigned 64-bit integer value stored in user space
+<DT><DD>
+See
+<I><A HREF="./function::user_uint64.3stap.html">function::user_uint64</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./function::user_string.3stap.html">function::user_string</A></I>(3stap),
+
+
+<I><A HREF="./function::user_string2.3stap.html">function::user_string2</A></I>(3stap),
+
+
+<I><A HREF="./function::user_string_warn.3stap.html">function::user_string_warn</A></I>(3stap),
+
+
+<I><A HREF="./function::user_string2_warn.3stap.html">function::user_string2_warn</A></I>(3stap),
+
+
+<I><A HREF="./function::user_string_quoted.3stap.html">function::user_string_quoted</A></I>(3stap),
+
+
+<I><A HREF="./function::user_string_n.3stap.html">function::user_string_n</A></I>(3stap),
+
+
+<I><A HREF="./function::user_string_n2.3stap.html">function::user_string_n2</A></I>(3stap),
+
+
+<I><A HREF="./function::user_string_n_warn.3stap.html">function::user_string_n_warn</A></I>(3stap),
+
+
+<I><A HREF="./function::user_string2_n_warn.3stap.html">function::user_string2_n_warn</A></I>(3stap),
+
+
+<I><A HREF="./function::user_string_n_quoted.3stap.html">function::user_string_n_quoted</A></I>(3stap),
+
+
+<I><A HREF="./function::user_string_n2_quoted.3stap.html">function::user_string_n2_quoted</A></I>(3stap),
+
+
+<I><A HREF="./function::user_string_utf32.3stap.html">function::user_string_utf32</A></I>(3stap),
+
+
+<I><A HREF="./function::user_string2_utf32.3stap.html">function::user_string2_utf32</A></I>(3stap),
+
+
+<I><A HREF="./function::user_string_utf16.3stap.html">function::user_string_utf16</A></I>(3stap),
+
+
+<I><A HREF="./function::user_string2_utf16.3stap.html">function::user_string2_utf16</A></I>(3stap),
+
+
+<I><A HREF="./function::user_char.3stap.html">function::user_char</A></I>(3stap),
+
+
+<I><A HREF="./function::user_char_warn.3stap.html">function::user_char_warn</A></I>(3stap),
+
+
+<I><A HREF="./function::user_short.3stap.html">function::user_short</A></I>(3stap),
+
+
+<I><A HREF="./function::user_short_warn.3stap.html">function::user_short_warn</A></I>(3stap),
+
+
+<I><A HREF="./function::user_ushort.3stap.html">function::user_ushort</A></I>(3stap),
+
+
+<I><A HREF="./function::user_ushort_warn.3stap.html">function::user_ushort_warn</A></I>(3stap),
+
+
+<I><A HREF="./function::user_int.3stap.html">function::user_int</A></I>(3stap),
+
+
+<I><A HREF="./function::user_int_warn.3stap.html">function::user_int_warn</A></I>(3stap),
+
+
+<I><A HREF="./function::user_long.3stap.html">function::user_long</A></I>(3stap),
+
+
+<I><A HREF="./function::user_long_warn.3stap.html">function::user_long_warn</A></I>(3stap),
+
+
+<I><A HREF="./function::user_ulong.3stap.html">function::user_ulong</A></I>(3stap),
+
+
+<I><A HREF="./function::user_ulong_warn.3stap.html">function::user_ulong_warn</A></I>(3stap),
+
+
+<I><A HREF="./function::user_int8.3stap.html">function::user_int8</A></I>(3stap),
+
+
+<I><A HREF="./function::user_uint8.3stap.html">function::user_uint8</A></I>(3stap),
+
+
+<I><A HREF="./function::user_int16.3stap.html">function::user_int16</A></I>(3stap),
+
+
+<I><A HREF="./function::user_uint16.3stap.html">function::user_uint16</A></I>(3stap),
+
+
+<I><A HREF="./function::user_int32.3stap.html">function::user_int32</A></I>(3stap),
+
+
+<I><A HREF="./function::user_uint32.3stap.html">function::user_uint32</A></I>(3stap),
+
+
+<I><A HREF="./function::user_int64.3stap.html">function::user_int64</A></I>(3stap),
+
+
+<I><A HREF="./function::user_uint64.3stap.html">function::user_uint64</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of tapset::udp</TITLE>
+</HEAD><BODY>
+<H1>tapset::udp</H1>
+Section: Misc. Reference Manual Pages (3stap)<BR>Updated: ---<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+tapset::udp - systemtap udp tapset
+<BR>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+<BR> This family of probe points is used to probe events that occur in the UDP layer.
+<P>
+<DL COMPACT>
+<DT></DL>
+<P>
+
+<DD>
+<DL COMPACT>
+<DT><B>udp.sendmsg </B>
+
+<DD>
+Fires whenever a process sends a UDP message
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::udp.sendmsg.3stap.html">probe::udp.sendmsg</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>udp.sendmsg.return </B>
+
+<DD>
+Fires whenever an attempt to send a UDP message is completed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::udp.sendmsg.return.3stap.html">probe::udp.sendmsg.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>udp.recvmsg </B>
+
+<DD>
+Fires whenever a UDP message is received
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::udp.recvmsg.3stap.html">probe::udp.recvmsg</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>udp.recvmsg.return </B>
+
+<DD>
+Fires whenever an attempt to receive a UDP message received is completed
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::udp.recvmsg.return.3stap.html">probe::udp.recvmsg.return</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>udp.disconnect </B>
+
+<DD>
+Fires when a process requests for a UDP disconnection
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::udp.disconnect.3stap.html">probe::udp.disconnect</A></I>(3stap)
+
+<BR> for details.
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>udp.disconnect.return </B>
+
+<DD>
+UDP has been disconnected successfully
+<DT><DD>
+<BR> See
+<I><A HREF="./probe::udp.disconnect.return.3stap.html">probe::udp.disconnect.return</A></I>(3stap)
+
+<BR> for details.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<I><A HREF="./probe::udp.sendmsg.3stap.html">probe::udp.sendmsg</A></I>(3stap),
+
+
+<I><A HREF="./probe::udp.sendmsg.return.3stap.html">probe::udp.sendmsg.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::udp.recvmsg.3stap.html">probe::udp.recvmsg</A></I>(3stap),
+
+
+<I><A HREF="./probe::udp.recvmsg.return.3stap.html">probe::udp.recvmsg.return</A></I>(3stap),
+
+
+<I><A HREF="./probe::udp.disconnect.3stap.html">probe::udp.disconnect</A></I>(3stap),
+
+
+<I><A HREF="./probe::udp.disconnect.return.3stap.html">probe::udp.disconnect.return</A></I>(3stap),
+
+
+<I><A HREF="stap.1.html">stap</A></I>(1),
+
+<I><A HREF="stapprobes.3stap.html">stapprobes</A></I>(3stap)
+
+<P>
+
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of WARNING::DEBUGINFO</TITLE>
+</HEAD><BODY>
+<H1>WARNING::DEBUGINFO</H1>
+Section: Misc. Reference Manual Pages (7stap)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+warning::debuginfo - systemtap missing-debuginfo warnings
+<P>
+
+
+
+<P>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+For many symbolic probing operations, systemtap needs DWARF debuginfo for
+the relevant binaries. This often includes resolving function/statement
+probes, or $context variables in related handlers. DWARF debuginfo may
+be found in the original binaries built during compilation, or may have
+been split into separate files. The
+<I>SYSTEMTAP_DEBUGINFO_PATH</I>
+
+environment variable affects where systemtap looks for these files.
+<P>
+
+If your operating system came from a distributor, check with them if
+debuginfo packages or variants are available. If your distributor does
+not have debuginfo-equipped binaries at all, you may need to rebuild it.
+<P>
+
+Systemtap uses the
+<I>elfutils</I>
+
+library to process ELF/DWARF files. The version of elfutils used by systemtap
+is the number after the slash in the
+<I>-V</I>
+
+output:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+% stap -V
+Systemtap translator/driver (version 2.3/0.156, rpm 2.3-1.fc19)
+Copyright (C) 2005-2014 Red Hat, Inc. and others
+[...]
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+This indicates systemtap version 2.3 with elfutils version 0.156.
+<P>
+<DL COMPACT>
+<DT>kernel debuginfo<DD>
+For scripts that target the kernel, systemtap may search for the
+<I>vmlinux</I>
+
+file created during its original build. This is distinct from the
+boot-loader's compressed/stripped
+<I>vmlinuz</I>
+
+file, and much larger. If you have a hand-built kernel, make sure
+it was built with the
+<I>CONFIG_DEBUG_INFO=y</I>
+
+option.
+<P>
+<DT>process debuginfo<DD>
+For scripts that target user-space, systemtap may search for debuginfo.
+If you have hand-built binaries, use
+<I>CFLAGS=-g -O2</I>
+
+to compile them.
+<P>
+<DT>minidebuginfo<DD>
+On some systems, binaries may be compiled with a subset of debuginfo
+useful for function tracing and backtraces. This 'Minidebuginfo' is
+a xz compressed section labeled .gnu_debugdata. Support for
+minidebuginfo relies on elfutils version 0.156 or later.
+<P>
+<DT>compressed debuginfo<DD>
+On some systems, debuginfo may be available, but compressed into
+<I>.zdebug_*</I>
+
+sections. Support for compressed debuginfo relies on elfutils
+version 0.153 or later.
+<P>
+<DT>unnecessary debuginfo<DD>
+In some cases, a script may be altered to avoid requiring debuginfo.
+For example, as script that uses
+<I>probe syscall.*</I>
+
+probes could try instead
+<I>probe nd_syscall.*</I>
+
+(for non-DWARF syscall): these work similarly, and use more intricate
+(fragile) tapset functions to extract system call arguments. Another
+option is use of compiled-in instrumentation such as kernel tracepoints
+or user-space
+<I><<A HREF="file:///usr/include/sys/sdt.h">sys/sdt.h</A>></I>
+
+markers in libraries or executables, which do not require debuginfo.
+If debuginfo was required for resolving a complicated
+<I>$var->foo->bar</I>
+
+expression, it may be possible to use
+<I>@cast(var,foo,foo.h)->foo->bar</I>
+
+to synthesize debuginfo for that type from a header file.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>AUTOMATION</H2>
+
+<P>
+On some platforms, systemtap may advise what commands to run, in order
+to download needed debuginfo. Another possibility is to invoke systemtap
+with the
+<I>--download-debuginfo</I>
+
+flag.
+The
+<I>stap-prep</I>
+
+script included with systemtap may be able to download the
+appropriate kernel debuginfo. Another possibility is to install and
+use a
+<I>stap-server</I>
+
+remote-compilation instance on a machine on your network, where
+debuginfo and compilation resources can be centralized. Try the
+<I>stap --use-server</I>
+
+option, in case such a server is already running.
+<P>
+<A NAME="lbAE"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1),
+<I><A HREF="stappaths.7.html">stappaths</A></I>(7),
+<I><A HREF="stap-server.8.html">stap-server</A></I>(8),
+<I><A HREF="stap-prep.1.html">stap-prep</A></I>(1),
+<I><A HREF="strip.1.html">strip</A></I>(1),
+<I><A HREF="./warning::symbols.7stap.html">warning::symbols</A></I>(7stap),
+<I><A HREF="./error::dwarf.7stap.html">error::dwarf</A></I>(7stap),
+<I><A HREF="./error::reporting.7stap.html">error::reporting</A></I>(7stap),
+<I><A HREF="./error::contextvars.7stap.html">error::contextvars</A></I>(7stap),
+<I><A HREF="http://fedorahosted.org/elfutils">http://fedorahosted.org/elfutils</A></I>,
+<I><A HREF="http://fedoraproject.org/wiki/Features/MiniDebugInfo">http://fedoraproject.org/wiki/Features/MiniDebugInfo</A></I>
+
+</PRE>
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">AUTOMATION</A><DD>
+<DT><A HREF="#lbAE">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
--- /dev/null
+
+<HTML><HEAD><TITLE>Manpage of WARNING::SYMBOLS</TITLE>
+</HEAD><BODY>
+<H1>WARNING::SYMBOLS</H1>
+Section: Misc. Reference Manual Pages (7stap)<BR><A HREF="#index">Index</A>
+<A HREF="index.html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB"> </A>
+<H2>NAME</H2>
+
+warning::symbols - systemtap missing-symbols warnings
+<P>
+
+
+
+<P>
+<A NAME="lbAC"> </A>
+<H2>DESCRIPTION</H2>
+
+<P>
+For some probing operations, where DWARF debugging data is not available,
+systemtap needs ELF symbols for the relevant binaries. This allows at
+least probe addresses to be calculated, some variables resolved, and with
+@cast() and headers, maybe even some types.
+<P>
+<DL COMPACT>
+<DT>kernel symbol table<DD>
+Systemtap may need a linux-build style <B>System.map</B> file to find
+addresses of kernel functions/data. It may be possible to create it
+by hand:
+
+<P>
+
+<BR>
+
+<DL COMPACT><DT><DD>
+<PRE>
+% su
+# cp /proc/kallsyms /boot/System.map-`uname -r`
+or
+# nm /lib/modules/`uname -r`/build/vmlinux > /boot/System.map-`uname -r`
+
+</PRE>
+
+</DL>
+
+
+<P>
+
+<P>
+<DT>minisymbols<DD>
+On some systems, binaries may be compiled with a subset of symbols
+useful for function tracing and backtraces. This 'Minisymbols' is
+a xz compressed section labeled .gnu_debugdata. Support for
+minisymbols relies on elfutils version 0.156 or later.
+<P>
+<DT>compressed symbols<DD>
+On some systems, symbols may be available, but compressed into
+<I>.zdebug_*</I>
+
+sections. Support for compressed symbols relies on elfutils
+version 0.153 or later.
+<P>
+</DL>
+<A NAME="lbAD"> </A>
+<H2>SEE ALSO</H2>
+
+
+<PRE>
+<I><A HREF="stap.1.html">stap</A></I>(1),
+<I><A HREF="stappaths.7.html">stappaths</A></I>(7),
+<I><A HREF="strip.1.html">strip</A></I>(1),
+<I><A HREF="./warning::debuginfo.7stap.html">warning::debuginfo</A></I>(7stap),
+<I><A HREF="./error::dwarf.7stap.html">error::dwarf</A></I>(7stap),
+<I><A HREF="./error::reporting.7stap.html">error::reporting</A></I>(7stap),
+<I><A HREF="http://fedoraproject.org/wiki/Features/MiniDebugInfo">http://fedoraproject.org/wiki/Features/MiniDebugInfo</A></I>
+
+</PRE>
+<HR>
+<A NAME="index"> </A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAD">SEE ALSO</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREFhttp://www.kapiti.co.nz/michael/vhman2html.html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:27:42 GMT, December 22, 2014
+</BODY>
+</HTML>
Kernel HZ
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
HZ:long()
-</pre></div><div class="refsect1"><a name="idm47245130452016"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692295424"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130450864"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692294272"></a><h2>Description</h2><p>
This function returns the value of the kernel HZ macro,
which corresponds to the rate of increase of the jiffies value.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="timestamp_stp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="timestamp_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-cpu-clock-ms.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 3. Timestamp Functions </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::cpu_clock_ms</span></td></tr></table></div></body></html>
Extract major device number from a kernel device number (kdev_t)
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
MAJOR:long(dev:long)
-</pre></div><div class="refsect1"><a name="idm47245125067376"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686913584"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
Kernel device number to query.
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dev.stp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="dev.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-MINOR.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 20. Device Tapset </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::MINOR</span></td></tr></table></div></body></html>
Extract minor device number from a kernel device number (kdev_t)
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
MINOR:long(dev:long)
-</pre></div><div class="refsect1"><a name="idm47245125057408"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686903616"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
Kernel device number to query.
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-MAJOR.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="dev.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-MKDEV.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::MAJOR</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::MKDEV</span></td></tr></table></div></body></html>
Creates a value that can be compared to a kernel device number (kdev_t)
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
MKDEV:long(major:long,minor:long)
-</pre></div><div class="refsect1"><a name="idm47245125047440"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>major</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686893696"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>major</code></em></span></dt><dd><p>
Intended major device number.
</p></dd><dt><span class="term"><em class="parameter"><code>minor</code></em></span></dt><dd><p>
Intended minor device number.
Returns which node a given address belongs to within a NUMA system
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
addr_to_node:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245130173968"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692017376"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the address of the faulting memory access
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130170912"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692014320"></a><h2>Description</h2><p>
This function accepts an address, and returns the
node that the given address belongs to in a NUMA system.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="memory_stp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="memory_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-bytes-to-string.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 6. Memory Tapset </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::bytes_to_string</span></td></tr></table></div></body></html>
Address of the current probe point.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
addr:long()
-</pre></div><div class="refsect1"><a name="idm47245135847984"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511694321536"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245135846768"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511694320320"></a><h2>Description</h2><p>
Returns the instruction pointer from the current probe's
register state. Not all probe types have registers though, in which case
zero is returned. The returned address is suitable for use with functions
Move cursor to top left and clear screen.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ansi_clear_screen()
-</pre></div><div class="refsect1"><a name="idm47245123823840"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511685670416"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245123822624"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511685669200"></a><h2>Description</h2><p>
Sends ansi code for moving cursor to top left and then the
ansi code for clearing the screen from the cursor position to the end.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ansi.stp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ansi.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ansi-cursor-hide.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 29. Utility functions for using ansi control chars in logs </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::ansi_cursor_hide</span></td></tr></table></div></body></html>
Hides the cursor.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ansi_cursor_hide()
-</pre></div><div class="refsect1"><a name="idm47245123814512"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511685661088"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245123813296"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511685659872"></a><h2>Description</h2><p>
Sends ansi code for hiding the cursor.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ansi-clear-screen.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ansi.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ansi-cursor-move.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::ansi_clear_screen</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::ansi_cursor_move</span></td></tr></table></div></body></html>
Move cursor to new coordinates.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ansi_cursor_move(x:long,y:long)
-</pre></div><div class="refsect1"><a name="idm47245123805280"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685651856"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>
Row to move the cursor to.
</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>
Colomn to move the cursor to.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123800064"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685646688"></a><h2>Description</h2><p>
Sends ansi code for positioning the cursor at row x
and column y. Coordinates start at one, (1,1) is the top-left corner.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ansi-cursor-hide.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ansi.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ansi-cursor-restore.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::ansi_cursor_hide</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::ansi_cursor_restore</span></td></tr></table></div></body></html>
Restores a previously saved cursor position.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ansi_cursor_restore()
-</pre></div><div class="refsect1"><a name="idm47245123792000"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511685638576"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245123790784"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511685637360"></a><h2>Description</h2><p>
Sends ansi code for restoring the current cursor position
previously saved with <code class="function">ansi_cursor_save</code>.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ansi-cursor-move.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ansi.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ansi-cursor-save.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::ansi_cursor_move</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::ansi_cursor_save</span></td></tr></table></div></body></html>
Saves the cursor position.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ansi_cursor_save()
-</pre></div><div class="refsect1"><a name="idm47245123782048"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511685628672"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245123780832"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511685627456"></a><h2>Description</h2><p>
Sends ansi code for saving the current cursor position.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ansi-cursor-restore.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ansi.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ansi-cursor-show.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::ansi_cursor_restore</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::ansi_cursor_show</span></td></tr></table></div></body></html>
Shows the cursor.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ansi_cursor_show()
-</pre></div><div class="refsect1"><a name="idm47245123772848"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511685619424"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245123771632"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511685618208"></a><h2>Description</h2><p>
Sends ansi code for showing the cursor.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ansi-cursor-save.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ansi.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ansi-new-line.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::ansi_cursor_save</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::ansi_new_line</span></td></tr></table></div></body></html>
Move cursor to new line.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ansi_new_line()
-</pre></div><div class="refsect1"><a name="idm47245123763728"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511685610240"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245123762512"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511685609024"></a><h2>Description</h2><p>
Sends ansi code new line.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ansi-cursor-show.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ansi.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ansi-reset-color.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::ansi_cursor_show</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::ansi_reset_color</span></td></tr></table></div></body></html>
Resets Select Graphic Rendition mode.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ansi_reset_color()
-</pre></div><div class="refsect1"><a name="idm47245123754496"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511685601072"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245123753280"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511685599856"></a><h2>Description</h2><p>
Sends ansi code to reset foreground, background and color
attribute to default values.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ansi-new-line.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ansi.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ansi-set-color.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::ansi_new_line</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::ansi_set_color</span></td></tr></table></div></body></html>
Set the ansi Select Graphic Rendition mode.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ansi_set_color(fg:long)
-</pre></div><div class="refsect1"><a name="idm47245123745200"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>fg</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685591776"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>fg</code></em></span></dt><dd><p>
Foreground color to set.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123741984"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685588560"></a><h2>Description</h2><p>
Sends ansi code for Select Graphic Rendition mode for the
given forground color. Black (30), Blue (34), Green (32), Cyan (36),
Red (31), Purple (35), Brown (33), Light Gray (37).
Set the ansi Select Graphic Rendition mode.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ansi_set_color2(fg:long,bg:long)
-</pre></div><div class="refsect1"><a name="idm47245123733808"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>fg</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685580384"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>fg</code></em></span></dt><dd><p>
Foreground color to set.
</p></dd><dt><span class="term"><em class="parameter"><code>bg</code></em></span></dt><dd><p>
Background color to set.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123728656"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685575232"></a><h2>Description</h2><p>
Sends ansi code for Select Graphic Rendition mode for the
given forground color, Black (30), Blue (34), Green (32), Cyan (36),
Red (31), Purple (35), Brown (33), Light Gray (37) and the given
Set the ansi Select Graphic Rendition mode.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ansi_set_color3(fg:long,bg:long,attr:long)
-</pre></div><div class="refsect1"><a name="idm47245123720336"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>fg</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685566960"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>fg</code></em></span></dt><dd><p>
Foreground color to set.
</p></dd><dt><span class="term"><em class="parameter"><code>bg</code></em></span></dt><dd><p>
Background color to set.
</p></dd><dt><span class="term"><em class="parameter"><code>attr</code></em></span></dt><dd><p>
Color attribute to set.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123713168"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685559792"></a><h2>Description</h2><p>
Sends ansi code for Select Graphic Rendition mode for the
given forground color, Black (30), Blue (34), Green (32), Cyan (36),
Red (31), Purple (35), Brown (33), Light Gray (37), the given
Mark function as declared asmlinkage
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
asmlinkage()
-</pre></div><div class="refsect1"><a name="idm47245135913504"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511697979616"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245135912288"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511697978400"></a><h2>Description</h2><p>
Call this function before accessing arguments
using the *_arg functions
if the probed kernel function was declared asmlinkage in the source.
Retrieves an atomic long variable from kernel memory
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
atomic_long_read:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124715760"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686561920"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
pointer to atomic long variable
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124712544"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686558704"></a><h2>Description</h2><p>
Safely perform the read of an atomic long variable. This will be a
NOP on kernels that do not have ATOMIC_LONG_INIT set on the kernel config.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="conversions.stp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="conversions.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-atomic-read.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 25. String and data retrieving functions Tapset </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::atomic_read</span></td></tr></table></div></body></html>
Retrieves an atomic variable from kernel memory
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
atomic_read:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124704448"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686550608"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
pointer to atomic variable
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124701248"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686547408"></a><h2>Description</h2><p>
Safely perform the read of an atomic variable.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-atomic-long-read.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="conversions.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-kernel-char.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::atomic_long_read</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::kernel_char</span></td></tr></table></div></body></html>
Hex backtrace of current kernel stack
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
backtrace:string()
-</pre></div><div class="refsect1"><a name="idm47245135904384"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511697970496"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245135903168"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511697969280"></a><h2>Description</h2><p>
This function returns a string of hex addresses
that are a backtrace of the kernel stack. Output may be truncated
as per maximum string length (MAXSTRINGLEN). See
Human readable string for given bytes
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
bytes_to_string:string(bytes:long)
-</pre></div><div class="refsect1"><a name="idm47245130163536"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>bytes</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692006944"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>bytes</code></em></span></dt><dd><p>
Number of bytes to translate.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130160480"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692003888"></a><h2>Description</h2><p>
Returns a string representing the number of bytes (up
to 1024 bytes), the number of kilobytes (when less than 1024K)
postfixed by 'K', the number of megabytes (when less than 1024M)
Return caller address
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
caller_addr:long()
-</pre></div><div class="refsect1"><a name="idm47245135875872"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511697949120"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245135874656"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511697947904"></a><h2>Description</h2><p>
This function returns the address of the calling function.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-caller.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-callers.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::caller</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::callers</span></td></tr></table></div></body></html>
Return name and address of calling function
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
caller:string()
-</pre></div><div class="refsect1"><a name="idm47245135887328"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511697960624"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245135886112"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511697959408"></a><h2>Description</h2><p>
This function returns the address and name of the
calling function. This is equivalent to calling:
sprintf("<code class="constant">s</code> 0x<code class="constant">x</code>", symname(<code class="function">caller_addr</code>), <code class="function">caller_addr</code>)
Return first n elements of kernel stack backtrace
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
callers:string(n:long)
-</pre></div><div class="refsect1"><a name="idm47245135866960"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511693306032"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
number of levels to descend in the stack (not counting the top
level). If n is -1, print the entire stack.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245131459344"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511693302832"></a><h2>Description</h2><p>
This function returns a string of the first n hex
addresses from the backtrace of the kernel stack. Output may be
truncated as per maximum string length (MAXSTRINGLEN).
Fetch a command line argument
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
cmdline_arg:string(n:long)
-</pre></div><div class="refsect1"><a name="idm47245131451904"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511693295392"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
Argument to get (zero is the program itself)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245131448848"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511693292336"></a><h2>Description</h2><p>
Returns argument the requested argument from the
current process or the empty string when there are not that many
arguments or there is a problem retrieving the argument. Argument
Fetch command line arguments from current process
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
cmdline_args:string(n:long,m:long,delim:string)
-</pre></div><div class="refsect1"><a name="idm47245131441344"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511693284832"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
First argument to get (zero is normally the program itself)
</p></dd><dt><span class="term"><em class="parameter"><code>m</code></em></span></dt><dd><p>
Last argument to get (or minus one for all arguments after n)
</p></dd><dt><span class="term"><em class="parameter"><code>delim</code></em></span></dt><dd><p>
String to use to separate arguments when more than one.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245131434480"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511693277968"></a><h2>Description</h2><p>
Returns arguments from the current process starting
with argument number n, up to argument m. If there are less than n
arguments, or the arguments cannot be retrieved from the current
Fetch all command line arguments from current process
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
cmdline_str:string()
-</pre></div><div class="refsect1"><a name="idm47245131426848"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693270336"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131425696"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693269184"></a><h2>Description</h2><p>
Returns all arguments from the current process
delimited by spaces. Returns the empty string when the arguments
cannot be retrieved.
Write out all output related to a speculation buffer
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
commit(id:long)
-</pre></div><div class="refsect1"><a name="idm47245122024528"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>id</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511683871248"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>id</code></em></span></dt><dd><p>
of the buffer to store the information in
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245122021344"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511683868064"></a><h2>Description</h2><p>
Output all the output for <em class="parameter"><code>id</code></em> in the order that it was entered into
the speculative buffer by <code class="function">speculative</code>.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="speculation.stp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="speculation.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-discard.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 32. Speculation </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::discard</span></td></tr></table></div></body></html>
Number of milliseconds on the given cpu's clock
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
cpu_clock_ms:long(cpu:long)
-</pre></div><div class="refsect1"><a name="idm47245130443472"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cpu</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692286880"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cpu</code></em></span></dt><dd><p>
Which processor's clock to read
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130440416"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692283824"></a><h2>Description</h2><p>
This function returns the number of milliseconds on the given
cpu's clock. This is always monotonic comparing on the same cpu, but may
have some drift between cpus (within about a jiffy).
Number of nanoseconds on the given cpu's clock
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
cpu_clock_ns:long(cpu:long)
-</pre></div><div class="refsect1"><a name="idm47245130432960"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cpu</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692276368"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cpu</code></em></span></dt><dd><p>
Which processor's clock to read
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130429904"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692273312"></a><h2>Description</h2><p>
This function returns the number of nanoseconds on the given
cpu's clock. This is always monotonic comparing on the same cpu, but may
have some drift between cpus (within about a jiffy).
Number of seconds on the given cpu's clock
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
cpu_clock_s:long(cpu:long)
-</pre></div><div class="refsect1"><a name="idm47245130422448"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cpu</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692265856"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cpu</code></em></span></dt><dd><p>
Which processor's clock to read
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130419392"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692262800"></a><h2>Description</h2><p>
This function returns the number of seconds on the given cpu's
clock. This is always monotonic comparing on the same cpu, but may have
some drift between cpus (within about a jiffy).
Number of microseconds on the given cpu's clock
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
cpu_clock_us:long(cpu:long)
-</pre></div><div class="refsect1"><a name="idm47245130411936"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cpu</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692255344"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cpu</code></em></span></dt><dd><p>
Which processor's clock to read
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130408880"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692252288"></a><h2>Description</h2><p>
This function returns the number of microseconds on the given
cpu's clock. This is always monotonic comparing on the same cpu, but may
have some drift between cpus (within about a jiffy).
Returns the current cpu number
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
cpu:long()
-</pre></div><div class="refsect1"><a name="idm47245131418288"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693261776"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131417136"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693260624"></a><h2>Description</h2><p>
This function returns the current cpu number.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-cmdline-str.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-cpuid.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::cmdline_str</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::cpuid</span></td></tr></table></div></body></html>
Returns the current cpu number
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
cpuid:long()
-</pre></div><div class="refsect1"><a name="idm47245131409888"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693253376"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131408736"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693252224"></a><h2>Description</h2><p>
This function returns the current cpu number.
Deprecated in SystemTap 1.4 and removed in SystemTap 1.5.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-cpu.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-egid.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::cpu</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::egid</span></td></tr></table></div></body></html>
Translates the given cputime into milliseconds
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
cputime_to_msecs:long(cputime:long)
-</pre></div><div class="refsect1"><a name="idm47245129765344"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cputime</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511691611024"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cputime</code></em></span></dt><dd><p>
Time to convert to milliseconds.
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="task_time_stp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="task_time_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-cputime-to-string.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 7. Task Time Tapset </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::cputime_to_string</span></td></tr></table></div></body></html>
Human readable string for given cputime
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
cputime_to_string:string(cputime:long)
-</pre></div><div class="refsect1"><a name="idm47245129755376"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cputime</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511691601072"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cputime</code></em></span></dt><dd><p>
Time to translate.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129752176"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691597872"></a><h2>Description</h2><p>
Equivalent to calling:
msec_to_string (cputime_to_msecs (cputime).
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-cputime-to-msecs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="task_time_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-cputime-to-usecs.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::cputime_to_msecs</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::cputime_to_usecs</span></td></tr></table></div></body></html>
Translates the given cputime into microseconds
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
cputime_to_usecs:long(cputime:long)
-</pre></div><div class="refsect1"><a name="idm47245129744096"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cputime</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511691589856"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cputime</code></em></span></dt><dd><p>
Time to convert to microseconds.
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-cputime-to-string.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="task_time_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-msecs-to-string.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::cputime_to_string</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::msecs_to_string</span></td></tr></table></div></body></html>
Convert seconds since epoch into human readable date/time string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ctime:string(epochsecs:long)
-</pre></div><div class="refsect1"><a name="idm47245130233536"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>epochsecs</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692076944"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>epochsecs</code></em></span></dt><dd><p>
Number of seconds since epoch (as returned by <code class="function">gettimeofday_s</code>)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130229856"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692073264"></a><h2>Description</h2><p>
Takes an argument of seconds since the epoch as returned by
<code class="function">gettimeofday_s</code>. Returns a string of the form
</p><p>
get the dirent name
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
d_name:string(dentry:long)
-</pre></div><div class="refsect1"><a name="idm47245125024224"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dentry</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686870496"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dentry</code></em></span></dt><dd><p>
Pointer to dentry.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125021024"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686867296"></a><h2>Description</h2><p>
</p><p>
Returns the dirent name (path basename).
get the full nameidata path
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
d_path:string(nd:long)
-</pre></div><div class="refsect1"><a name="idm47245125012784"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>nd</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686859104"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>nd</code></em></span></dt><dd><p>
Pointer to nameidata.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125009568"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686855888"></a><h2>Description</h2><p>
</p><p>
Returns the full dirent name (full path to the root), like
Remove an existing stopwatch
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
delete_stopwatch(name:string)
-</pre></div><div class="refsect1"><a name="idm47245130401424"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692244832"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
the stopwatch name
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130398368"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692241776"></a><h2>Description</h2><p>
Remove stopwatch <em class="parameter"><code>name</code></em>.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-cpu-clock-us.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="timestamp_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-get-cycles.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::cpu_clock_us</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::get_cycles</span></td></tr></table></div></body></html>
Discard all output related to a speculation buffer
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
discard(id:long)
-</pre></div><div class="refsect1"><a name="idm47245122011936"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>id</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511683858656"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>id</code></em></span></dt><dd><p>
of the buffer to store the information in
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-commit.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="speculation.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-speculate.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::commit</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::speculate</span></td></tr></table></div></body></html>
Returns the effective gid of a target process
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
egid:long()
-</pre></div><div class="refsect1"><a name="idm47245131401360"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693244848"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131400208"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693243696"></a><h2>Description</h2><p>
This function returns the effective gid of a target process
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-cpuid.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-env-var.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::cpuid</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::env_var</span></td></tr></table></div></body></html>
Fetch environment variable from current process
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
env_var:string(name:string)
-</pre></div><div class="refsect1"><a name="idm47245131392960"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511693236448"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the environment variable to fetch
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245131389904"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511693233392"></a><h2>Description</h2><p>
Returns the contents of the specified environment value
for the current process. If the variable isn't set an empty string
is returned.
Symbolic string associated with error code
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
errno_str:string(err:long)
-</pre></div><div class="refsect1"><a name="idm47245125130080"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>err</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686976560"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>err</code></em></span></dt><dd><p>
The error number received
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125126912"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686973392"></a><h2>Description</h2><p>
This function returns the symbolic string associated
with the giver error code, such as ENOENT for the number 2, or
E#3333 for an out-of-range value such as 3333.
Send an error message
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
error(msg:string)
-</pre></div><div class="refsect1"><a name="idm47245124938784"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>msg</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686784832"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>msg</code></em></span></dt><dd><p>
The formatted message string
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124935616"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686781664"></a><h2>Description</h2><p>
An implicit end-of-line is added. staprun prepends
the string <span class="quote">“<span class="quote">ERROR:</span>”</span>. Sending an error message aborts the currently
running probe. Depending on the MAXERRORS parameter, it may
Return the effective uid of a target process
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
euid:long()
-</pre></div><div class="refsect1"><a name="idm47245131382496"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693225984"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131381344"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693224832"></a><h2>Description</h2><p>
Returns the effective user ID of the target process.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-env-var.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-execname.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::env_var</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::execname</span></td></tr></table></div></body></html>
Returns the execname of a target process (or group of processes)
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
execname:string()
-</pre></div><div class="refsect1"><a name="idm47245131374096"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693217584"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131372944"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693216432"></a><h2>Description</h2><p>
Returns the execname of a target process (or group of processes).
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-euid.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-fastcall.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::euid</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::fastcall</span></td></tr></table></div></body></html>
Start shutting down probing script.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
exit()
-</pre></div><div class="refsect1"><a name="idm47245124926416"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511686772416"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245124925200"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511686771200"></a><h2>Description</h2><p>
This only enqueues a request to start
shutting down the script. New probes will not fire
(except <span class="quote">“<span class="quote">end</span>”</span> probes), but all currently
Mark function as declared fastcall
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
fastcall()
-</pre></div><div class="refsect1"><a name="idm47245131365696"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693209184"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131364544"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693208032"></a><h2>Description</h2><p>
Call this function before accessing arguments
using the *_arg functions
if the probed kernel function was declared fastcall in the source.
Returns a string representation for an IP address
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
format_ipaddr:string(addr:long,family:long)
-</pre></div><div class="refsect1"><a name="idm47245128514784"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511690360592"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the IP address
</p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
the IP address family (either AF_INET or AF_INET6)
Send a message to the ftrace ring-buffer
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ftrace(msg:string)
-</pre></div><div class="refsect1"><a name="idm47245124916656"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>msg</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686762704"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>msg</code></em></span></dt><dd><p>
The formatted message string
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124913488"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686759536"></a><h2>Description</h2><p>
If the ftrace ring-buffer is configured & available,
see /debugfs/tracing/trace for the message. Otherwise, the
message may be quietly dropped. An implicit end-of-line is added.
Processor cycle count
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
get_cycles:long()
-</pre></div><div class="refsect1"><a name="idm47245130390496"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692233904"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130389344"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692232752"></a><h2>Description</h2><p>
This function returns the processor cycle counter value
if available, else it returns zero. The cycle counter is free running
and unsynchronized on each processor. Thus, the order of events cannot
Get the load average for a specified interval
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
get_loadavg_index:long(indx:long)
-</pre></div><div class="refsect1"><a name="idm47245125781920"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>indx</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511687628032"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>indx</code></em></span></dt><dd><p>
The load average interval to capture.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125778704"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687624816"></a><h2>Description</h2><p>
This function returns the load average at a specified interval.
The three load average values 1, 5 and 15 minute average corresponds to
indexes 0, 1 and 2 of the avenrun array - see linux/sched.h.
Returns the numeric value of sa_flags
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
get_sa_flags:long(act:long)
-</pre></div><div class="refsect1"><a name="idm47245125642768"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>act</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511687489104"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>act</code></em></span></dt><dd><p>
address of the sigaction to query.
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="signal.stp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-get-sa-handler.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 17. Signal Tapset </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::get_sa_handler</span></td></tr></table></div></body></html>
Returns the numeric value of sa_handler
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
get_sa_handler:long(act:long)
-</pre></div><div class="refsect1"><a name="idm47245125632752"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>act</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511687479184"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>act</code></em></span></dt><dd><p>
address of the sigaction to query.
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-get-sa-flags.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-is-sig-blocked.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::get_sa_flags</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::is_sig_blocked</span></td></tr></table></div></body></html>
Number of milliseconds since UNIX epoch
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
gettimeofday_ms:long()
-</pre></div><div class="refsect1"><a name="idm47245130381776"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692225184"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130380624"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692224032"></a><h2>Description</h2><p>
This function returns the number of milliseconds
since the UNIX epoch.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-get-cycles.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="timestamp_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-gettimeofday-ns.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::get_cycles</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::gettimeofday_ns</span></td></tr></table></div></body></html>
Number of nanoseconds since UNIX epoch
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
gettimeofday_ns:long()
-</pre></div><div class="refsect1"><a name="idm47245130373280"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692216688"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130372128"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692215536"></a><h2>Description</h2><p>
This function returns the number of nanoseconds
since the UNIX epoch.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-gettimeofday-ms.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="timestamp_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-gettimeofday-s.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::gettimeofday_ms</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::gettimeofday_s</span></td></tr></table></div></body></html>
Number of seconds since UNIX epoch
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
gettimeofday_s:long()
-</pre></div><div class="refsect1"><a name="idm47245130364784"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692208192"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130363632"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692207040"></a><h2>Description</h2><p>
This function returns the number of seconds since
the UNIX epoch.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-gettimeofday-ns.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="timestamp_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-gettimeofday-us.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::gettimeofday_ns</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::gettimeofday_us</span></td></tr></table></div></body></html>
Number of microseconds since UNIX epoch
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
gettimeofday_us:long()
-</pre></div><div class="refsect1"><a name="idm47245130356288"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692199696"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130355136"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692198544"></a><h2>Description</h2><p>
This function returns the number of microseconds
since the UNIX epoch.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-gettimeofday-s.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="timestamp_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-jiffies.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::gettimeofday_s</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::jiffies</span></td></tr></table></div></body></html>
Returns the group ID of a target process
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
gid:long()
-</pre></div><div class="refsect1"><a name="idm47245131357136"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693200624"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131355984"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693199472"></a><h2>Description</h2><p>
This function returns the group ID of a target process.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-fastcall.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-int-arg.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::fastcall</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::int_arg</span></td></tr></table></div></body></html>
Convert 32-bit long from host to network order
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
htonl:long(x:long)
-</pre></div><div class="refsect1"><a name="idm47245128502848"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511690348640"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>
Value to convert
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-format-ipaddr.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-htonll.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::format_ipaddr</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::htonll</span></td></tr></table></div></body></html>
Convert 64-bit long long from host to network order
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
htonll:long(x:long)
-</pre></div><div class="refsect1"><a name="idm47245128492912"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511690338768"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>
Value to convert
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-htonl.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-htons.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::htonl</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::htons</span></td></tr></table></div></body></html>
Convert 16-bit short from host to network order
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
htons:long(x:long)
-</pre></div><div class="refsect1"><a name="idm47245128482992"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511690328896"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>
Value to convert
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-htonll.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ip-ntop.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::htonll</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::ip_ntop</span></td></tr></table></div></body></html>
returns the global nested-depth
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
indent_depth:long(delta:long)
-</pre></div><div class="refsect1"><a name="idm47245123693392"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>delta</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685540080"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>delta</code></em></span></dt><dd><p>
the amount of depth added/removed for each call
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123690160"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685536848"></a><h2>Description</h2><p>
This function returns a number for appropriate indentation,
similar to <code class="function">indent</code>. Call it with a small positive or matching negative
delta. Unlike the thread_indent_depth function, the indent does not track
returns an amount of space to indent
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
indent:string(delta:long)
-</pre></div><div class="refsect1"><a name="idm47245123704752"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>delta</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685551440"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>delta</code></em></span></dt><dd><p>
the amount of space added/removed for each call
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123701520"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685548208"></a><h2>Description</h2><p>
This function returns a string with appropriate
indentation. Call it with a small positive or matching negative
delta. Unlike the thread_indent function, the indent does not
Provide IP source address string for a kernel socket
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
inet_get_ip_source:string(sock:long)
-</pre></div><div class="refsect1"><a name="idm47245126857600"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sock</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688703552"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sock</code></em></span></dt><dd><p>
pointer to the kernel socket
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="socket.stp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-inet-get-local-port.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 14. Socket Tapset </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::inet_get_local_port</span></td></tr></table></div></body></html>
Provide local port number for a kernel socket
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
inet_get_local_port:long(sock:long)
-</pre></div><div class="refsect1"><a name="idm47245126847600"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sock</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688693552"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sock</code></em></span></dt><dd><p>
pointer to the kernel socket
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-inet-get-ip-source.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sock-fam-num2str.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::inet_get_ip_source</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::sock_fam_num2str</span></td></tr></table></div></body></html>
get the inode name
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
inode_name:string(inode:long)
-</pre></div><div class="refsect1"><a name="idm47245125001328"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>inode</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686847600"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>inode</code></em></span></dt><dd><p>
Pointer to inode.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124998128"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686844400"></a><h2>Description</h2><p>
</p><p>
Returns the first path basename associated with the given inode.
get the path to an inode
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
inode_path:string(inode:long)
-</pre></div><div class="refsect1"><a name="idm47245124989920"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>inode</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686836144"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>inode</code></em></span></dt><dd><p>
Pointer to inode.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124986720"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686832944"></a><h2>Description</h2><p>
</p><p>
Returns the full path associated with the given inode.
Return function argument as signed int
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
int_arg:long(n:long)
-</pre></div><div class="refsect1"><a name="idm47245131348736"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511693192224"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
index of argument to return
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245131345680"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511693189168"></a><h2>Description</h2><p>
Return the value of argument n as a signed int
(i.e., a 32-bit integer sign-extended to 64 bits).
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-gid.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-is-myproc.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::gid</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::is_myproc</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ioblock.end</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="iosched.stp.html" title="Chapter 9. IO Scheduler and block IO Tapset"><link rel="prev" href="iosched.stp.html" title="Chapter 9. IO Scheduler and block IO Tapset"><link rel="next" href="API-ioblock-request.html" title="probe::ioblock.request"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ioblock.end</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="iosched.stp.html">Prev</a> </td><th width="60%" align="center">Chapter 9. IO Scheduler and block IO Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ioblock-request.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ioblock-end"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ioblock.end —
Fires whenever a block I/O transfer is complete.
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioblock.end </pre></div><div class="refsect1"><a name="idm47245129369488"></a><h2>Values</h2><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioblock.end </pre></div><div class="refsect1"><a name="idm47511691214896"></a><h2>Values</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245129368272"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511691213680"></a><h2>Description</h2><p>
</p><p>
<em class="parameter"><code>name</code></em> - name of the probe point
<em class="parameter"><code>phys_segments</code></em> - number of segments in this bio after physical address coalescing is performed.
<em class="parameter"><code>hw_segments</code></em> - number of segments after physical and DMA remapping hardware coalescing is performed
<em class="parameter"><code>size</code></em> - total size in bytes
-</p></div><div class="refsect1"><a name="idm47245129356576"></a><h2>Context</h2><p>
+</p></div><div class="refsect1"><a name="idm47511691202032"></a><h2>Context</h2><p>
The process signals the transfer is done.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="iosched.stp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="iosched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ioblock-request.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 9. IO Scheduler and block IO Tapset </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::ioblock.request</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ioblock.request</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="iosched.stp.html" title="Chapter 9. IO Scheduler and block IO Tapset"><link rel="prev" href="API-ioblock-end.html" title="probe::ioblock.end"><link rel="next" href="API-ioblock-trace-bounce.html" title="probe::ioblock_trace.bounce"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ioblock.request</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ioblock-end.html">Prev</a> </td><th width="60%" align="center">Chapter 9. IO Scheduler and block IO Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ioblock-trace-bounce.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ioblock-request"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ioblock.request —
Fires whenever making a generic block I/O request.
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioblock.request </pre></div><div class="refsect1"><a name="idm47245129348640"></a><h2>Values</h2><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioblock.request </pre></div><div class="refsect1"><a name="idm47511691194112"></a><h2>Values</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245129347424"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511691192896"></a><h2>Description</h2><p>
</p><p>
<em class="parameter"><code>name</code></em> - name of the probe point
<em class="parameter"><code>bdev</code></em> - target block device
<em class="parameter"><code>bdev_contains</code></em> - points to the device object which contains the partition (when bio structure represents a partition)
<em class="parameter"><code>p_start_sect</code></em> - points to the start sector of the partition structure of the device
-</p></div><div class="refsect1"><a name="idm47245129334736"></a><h2>Context</h2><p>
+</p></div><div class="refsect1"><a name="idm47511691180208"></a><h2>Context</h2><p>
The process makes block I/O request
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ioblock-end.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="iosched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ioblock-trace-bounce.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::ioblock.end</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::ioblock_trace.bounce</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ioblock_trace.bounce</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="iosched.stp.html" title="Chapter 9. IO Scheduler and block IO Tapset"><link rel="prev" href="API-ioblock-request.html" title="probe::ioblock.request"><link rel="next" href="API-ioblock-trace-end.html" title="probe::ioblock_trace.end"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ioblock_trace.bounce</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ioblock-request.html">Prev</a> </td><th width="60%" align="center">Chapter 9. IO Scheduler and block IO Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ioblock-trace-end.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ioblock-trace-bounce"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ioblock_trace.bounce —
Fires whenever a buffer bounce is needed for at least one page of a block IO request.
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioblock_trace.bounce </pre></div><div class="refsect1"><a name="idm47245129326640"></a><h2>Values</h2><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioblock_trace.bounce </pre></div><div class="refsect1"><a name="idm47511691172112"></a><h2>Values</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245129325424"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511691170896"></a><h2>Description</h2><p>
</p><p>
<em class="parameter"><code>name</code></em> - name of the probe point
<em class="parameter"><code>bdev</code></em> - target block device
<em class="parameter"><code>bdev_contains</code></em> - points to the device object which contains the partition (when bio structure represents a partition)
<em class="parameter"><code>p_start_sect</code></em> - points to the start sector of the partition structure of the device
-</p></div><div class="refsect1"><a name="idm47245129312256"></a><h2>Context </h2><p>
+</p></div><div class="refsect1"><a name="idm47511691157728"></a><h2>Context </h2><p>
The process creating a block IO request.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ioblock-request.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="iosched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ioblock-trace-end.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::ioblock.request</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::ioblock_trace.end</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ioblock_trace.end</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="iosched.stp.html" title="Chapter 9. IO Scheduler and block IO Tapset"><link rel="prev" href="API-ioblock-trace-bounce.html" title="probe::ioblock_trace.bounce"><link rel="next" href="API-ioblock-trace-request.html" title="probe::ioblock_trace.request"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ioblock_trace.end</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ioblock-trace-bounce.html">Prev</a> </td><th width="60%" align="center">Chapter 9. IO Scheduler and block IO Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ioblock-trace-request.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ioblock-trace-end"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ioblock_trace.end —
Fires whenever a block I/O transfer is complete.
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioblock_trace.end </pre></div><div class="refsect1"><a name="idm47245129304224"></a><h2>Values</h2><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioblock_trace.end </pre></div><div class="refsect1"><a name="idm47511691149696"></a><h2>Values</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245129303008"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511691148480"></a><h2>Description</h2><p>
</p><p>
<em class="parameter"><code>name</code></em> - name of the probe point
<em class="parameter"><code>bdev</code></em> - target block device
<em class="parameter"><code>bdev_contains</code></em> - points to the device object which contains the partition (when bio structure represents a partition)
<em class="parameter"><code>p_start_sect</code></em> - points to the start sector of the partition structure of the device
-</p></div><div class="refsect1"><a name="idm47245129289648"></a><h2>Context</h2><p>
+</p></div><div class="refsect1"><a name="idm47511691135120"></a><h2>Context</h2><p>
The process signals the transfer is done.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ioblock-trace-bounce.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="iosched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ioblock-trace-request.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::ioblock_trace.bounce</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::ioblock_trace.request</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ioblock_trace.request</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="iosched.stp.html" title="Chapter 9. IO Scheduler and block IO Tapset"><link rel="prev" href="API-ioblock-trace-end.html" title="probe::ioblock_trace.end"><link rel="next" href="API-ioscheduler-elv-add-request.html" title="probe::ioscheduler.elv_add_request"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ioblock_trace.request</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ioblock-trace-end.html">Prev</a> </td><th width="60%" align="center">Chapter 9. IO Scheduler and block IO Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ioscheduler-elv-add-request.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ioblock-trace-request"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ioblock_trace.request —
Fires just as a generic block I/O request is created for a bio.
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioblock_trace.request </pre></div><div class="refsect1"><a name="idm47245129281648"></a><h2>Values</h2><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioblock_trace.request </pre></div><div class="refsect1"><a name="idm47511691127104"></a><h2>Values</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245129280432"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511691125888"></a><h2>Description</h2><p>
</p><p>
<em class="parameter"><code>name</code></em> - name of the probe point
<em class="parameter"><code>bdev</code></em> - target block device
<em class="parameter"><code>bdev_contains</code></em> - points to the device object which contains the partition (when bio structure represents a partition)
<em class="parameter"><code>p_start_sect</code></em> - points to the start sector of the partition structure of the device
-</p></div><div class="refsect1"><a name="idm47245129267072"></a><h2>Context</h2><p>
+</p></div><div class="refsect1"><a name="idm47511691112528"></a><h2>Context</h2><p>
The process makes block I/O request
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ioblock-trace-end.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="iosched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ioscheduler-elv-add-request.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::ioblock_trace.end</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::ioscheduler.elv_add_request</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ioscheduler.elv_add_request.kp</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="iosched.stp.html" title="Chapter 9. IO Scheduler and block IO Tapset"><link rel="prev" href="API-ioscheduler-elv-add-request.html" title="probe::ioscheduler.elv_add_request"><link rel="next" href="API-ioscheduler-elv-add-request-tp.html" title="probe::ioscheduler.elv_add_request.tp"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ioscheduler.elv_add_request.kp</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ioscheduler-elv-add-request.html">Prev</a> </td><th width="60%" align="center">Chapter 9. IO Scheduler and block IO Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ioscheduler-elv-add-request-tp.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ioscheduler-elv-add-request-kp"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ioscheduler.elv_add_request.kp —
kprobe based probe to indicate that a request was added to the request queue
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler.elv_add_request.kp </pre></div><div class="refsect1"><a name="idm47245129238896"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>q</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler.elv_add_request.kp </pre></div><div class="refsect1"><a name="idm47511691084416"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>q</code></em></span></dt><dd><p>
pointer to request queue
- </p></dd><dt><span class="term"><em class="parameter"><code>elevator_name</code></em></span></dt><dd><p>
- The type of I/O elevator currently enabled
</p></dd><dt><span class="term"><em class="parameter"><code>rq</code></em></span></dt><dd><p>
Address of the request
</p></dd><dt><span class="term"><em class="parameter"><code>disk_minor</code></em></span></dt><dd><p>
Disk minor number of the request
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of the probe point
</p></dd><dt><span class="term"><em class="parameter"><code>disk_major</code></em></span></dt><dd><p>
Disk major number of the request
+ </p></dd><dt><span class="term"><em class="parameter"><code>elevator_name</code></em></span></dt><dd><p>
+ The type of I/O elevator currently enabled
</p></dd><dt><span class="term"><em class="parameter"><code>rq_flags</code></em></span></dt><dd><p>
Request flags
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of the probe point
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ioscheduler-elv-add-request.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="iosched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ioscheduler-elv-add-request-tp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::ioscheduler.elv_add_request</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::ioscheduler.elv_add_request.tp</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ioscheduler.elv_add_request.tp</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="iosched.stp.html" title="Chapter 9. IO Scheduler and block IO Tapset"><link rel="prev" href="API-ioscheduler-elv-add-request-kp.html" title="probe::ioscheduler.elv_add_request.kp"><link rel="next" href="API-ioscheduler-elv-completed-request.html" title="probe::ioscheduler.elv_completed_request"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ioscheduler.elv_add_request.tp</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ioscheduler-elv-add-request-kp.html">Prev</a> </td><th width="60%" align="center">Chapter 9. IO Scheduler and block IO Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ioscheduler-elv-completed-request.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ioscheduler-elv-add-request-tp"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ioscheduler.elv_add_request.tp —
tracepoint based probe to indicate a request is added to the request queue.
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler.elv_add_request.tp </pre></div><div class="refsect1"><a name="idm47245129216832"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rq_flags</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler.elv_add_request.tp </pre></div><div class="refsect1"><a name="idm47511691062336"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rq_flags</code></em></span></dt><dd><p>
Request flags.
- </p></dd><dt><span class="term"><em class="parameter"><code>disk_major</code></em></span></dt><dd><p>
- Disk major no of request.
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of the probe point
+ </p></dd><dt><span class="term"><em class="parameter"><code>rq</code></em></span></dt><dd><p>
+ Address of request.
</p></dd><dt><span class="term"><em class="parameter"><code>q</code></em></span></dt><dd><p>
Pointer to request queue.
- </p></dd><dt><span class="term"><em class="parameter"><code>elevator_name</code></em></span></dt><dd><p>
- The type of I/O elevator currently enabled.
</p></dd><dt><span class="term"><em class="parameter"><code>disk_minor</code></em></span></dt><dd><p>
Disk minor number of request.
- </p></dd><dt><span class="term"><em class="parameter"><code>rq</code></em></span></dt><dd><p>
- Address of request.
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of the probe point
+ </p></dd><dt><span class="term"><em class="parameter"><code>disk_major</code></em></span></dt><dd><p>
+ Disk major no of request.
+ </p></dd><dt><span class="term"><em class="parameter"><code>elevator_name</code></em></span></dt><dd><p>
+ The type of I/O elevator currently enabled.
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ioscheduler-elv-add-request-kp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="iosched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ioscheduler-elv-completed-request.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::ioscheduler.elv_add_request.kp</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::ioscheduler.elv_completed_request</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ioscheduler.elv_add_request</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="iosched.stp.html" title="Chapter 9. IO Scheduler and block IO Tapset"><link rel="prev" href="API-ioblock-trace-request.html" title="probe::ioblock_trace.request"><link rel="next" href="API-ioscheduler-elv-add-request-kp.html" title="probe::ioscheduler.elv_add_request.kp"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ioscheduler.elv_add_request</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ioblock-trace-request.html">Prev</a> </td><th width="60%" align="center">Chapter 9. IO Scheduler and block IO Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ioscheduler-elv-add-request-kp.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ioscheduler-elv-add-request"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ioscheduler.elv_add_request —
probe to indicate request is added to the request queue.
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler.elv_add_request </pre></div><div class="refsect1"><a name="idm47245129258992"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>disk_major</code></em></span></dt><dd><p>
- Disk major no of request.
- </p></dd><dt><span class="term"><em class="parameter"><code>rq_flags</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler.elv_add_request </pre></div><div class="refsect1"><a name="idm47511691104560"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rq_flags</code></em></span></dt><dd><p>
Request flags.
- </p></dd><dt><span class="term"><em class="parameter"><code>rq</code></em></span></dt><dd><p>
- Address of request.
</p></dd><dt><span class="term"><em class="parameter"><code>disk_minor</code></em></span></dt><dd><p>
Disk minor number of request.
</p></dd><dt><span class="term"><em class="parameter"><code>q</code></em></span></dt><dd><p>
Pointer to request queue.
+ </p></dd><dt><span class="term"><em class="parameter"><code>rq</code></em></span></dt><dd><p>
+ Address of request.
</p></dd><dt><span class="term"><em class="parameter"><code>elevator_name</code></em></span></dt><dd><p>
The type of I/O elevator currently enabled.
+ </p></dd><dt><span class="term"><em class="parameter"><code>disk_major</code></em></span></dt><dd><p>
+ Disk major no of request.
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ioblock-trace-request.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="iosched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ioscheduler-elv-add-request-kp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::ioblock_trace.request</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::ioscheduler.elv_add_request.kp</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ioscheduler.elv_completed_request</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="iosched.stp.html" title="Chapter 9. IO Scheduler and block IO Tapset"><link rel="prev" href="API-ioscheduler-elv-add-request-tp.html" title="probe::ioscheduler.elv_add_request.tp"><link rel="next" href="API-ioscheduler-elv-next-request.html" title="probe::ioscheduler.elv_next_request"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ioscheduler.elv_completed_request</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ioscheduler-elv-add-request-tp.html">Prev</a> </td><th width="60%" align="center">Chapter 9. IO Scheduler and block IO Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ioscheduler-elv-next-request.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ioscheduler-elv-completed-request"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ioscheduler.elv_completed_request —
Fires when a request is completed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler.elv_completed_request </pre></div><div class="refsect1"><a name="idm47245129194720"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>disk_major</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler.elv_completed_request </pre></div><div class="refsect1"><a name="idm47511691040288"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>disk_major</code></em></span></dt><dd><p>
Disk major number of the request
- </p></dd><dt><span class="term"><em class="parameter"><code>rq_flags</code></em></span></dt><dd><p>
- Request flags
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of the probe point
</p></dd><dt><span class="term"><em class="parameter"><code>elevator_name</code></em></span></dt><dd><p>
The type of I/O elevator currently enabled
- </p></dd><dt><span class="term"><em class="parameter"><code>rq</code></em></span></dt><dd><p>
- Address of the request
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of the probe point
</p></dd><dt><span class="term"><em class="parameter"><code>disk_minor</code></em></span></dt><dd><p>
Disk minor number of the request
+ </p></dd><dt><span class="term"><em class="parameter"><code>rq</code></em></span></dt><dd><p>
+ Address of the request
+ </p></dd><dt><span class="term"><em class="parameter"><code>rq_flags</code></em></span></dt><dd><p>
+ Request flags
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ioscheduler-elv-add-request-tp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="iosched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ioscheduler-elv-next-request.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::ioscheduler.elv_add_request.tp</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::ioscheduler.elv_next_request</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ioscheduler.elv_next_request.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="iosched.stp.html" title="Chapter 9. IO Scheduler and block IO Tapset"><link rel="prev" href="API-ioscheduler-elv-next-request.html" title="probe::ioscheduler.elv_next_request"><link rel="next" href="API-ioscheduler-trace-elv-abort-request.html" title="probe::ioscheduler_trace.elv_abort_request"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ioscheduler.elv_next_request.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ioscheduler-elv-next-request.html">Prev</a> </td><th width="60%" align="center">Chapter 9. IO Scheduler and block IO Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ioscheduler-trace-elv-abort-request.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ioscheduler-elv-next-request-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ioscheduler.elv_next_request.return —
Fires when a request retrieval issues a return signal
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler.elv_next_request.return </pre></div><div class="refsect1"><a name="idm47245129162560"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rq</code></em></span></dt><dd><p>
- Address of the request
- </p></dd><dt><span class="term"><em class="parameter"><code>disk_minor</code></em></span></dt><dd><p>
- Disk minor number of the request
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of the probe point
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler.elv_next_request.return </pre></div><div class="refsect1"><a name="idm47511691008240"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rq_flags</code></em></span></dt><dd><p>
+ Request flags
</p></dd><dt><span class="term"><em class="parameter"><code>disk_major</code></em></span></dt><dd><p>
Disk major number of the request
- </p></dd><dt><span class="term"><em class="parameter"><code>rq_flags</code></em></span></dt><dd><p>
- Request flags
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of the probe point
+ </p></dd><dt><span class="term"><em class="parameter"><code>disk_minor</code></em></span></dt><dd><p>
+ Disk minor number of the request
+ </p></dd><dt><span class="term"><em class="parameter"><code>rq</code></em></span></dt><dd><p>
+ Address of the request
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ioscheduler-elv-next-request.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="iosched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ioscheduler-trace-elv-abort-request.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::ioscheduler.elv_next_request</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::ioscheduler_trace.elv_abort_request</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ioscheduler.elv_next_request</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="iosched.stp.html" title="Chapter 9. IO Scheduler and block IO Tapset"><link rel="prev" href="API-ioscheduler-elv-completed-request.html" title="probe::ioscheduler.elv_completed_request"><link rel="next" href="API-ioscheduler-elv-next-request-return.html" title="probe::ioscheduler.elv_next_request.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ioscheduler.elv_next_request</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ioscheduler-elv-completed-request.html">Prev</a> </td><th width="60%" align="center">Chapter 9. IO Scheduler and block IO Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ioscheduler-elv-next-request-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ioscheduler-elv-next-request"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ioscheduler.elv_next_request —
Fires when a request is retrieved from the request queue
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler.elv_next_request </pre></div><div class="refsect1"><a name="idm47245129174592"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>elevator_name</code></em></span></dt><dd><p>
- The type of I/O elevator currently enabled
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler.elv_next_request </pre></div><div class="refsect1"><a name="idm47511691020272"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the probe point
+ </p></dd><dt><span class="term"><em class="parameter"><code>elevator_name</code></em></span></dt><dd><p>
+ The type of I/O elevator currently enabled
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ioscheduler-elv-completed-request.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="iosched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ioscheduler-elv-next-request-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::ioscheduler.elv_completed_request</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::ioscheduler.elv_next_request.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ioscheduler_trace.elv_abort_request</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="iosched.stp.html" title="Chapter 9. IO Scheduler and block IO Tapset"><link rel="prev" href="API-ioscheduler-elv-next-request-return.html" title="probe::ioscheduler.elv_next_request.return"><link rel="next" href="API-ioscheduler-trace-elv-completed-request.html" title="probe::ioscheduler_trace.elv_completed_request"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ioscheduler_trace.elv_abort_request</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ioscheduler-elv-next-request-return.html">Prev</a> </td><th width="60%" align="center">Chapter 9. IO Scheduler and block IO Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ioscheduler-trace-elv-completed-request.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ioscheduler-trace-elv-abort-request"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ioscheduler_trace.elv_abort_request —
Fires when a request is aborted.
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler_trace.elv_abort_request </pre></div><div class="refsect1"><a name="idm47245129144448"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler_trace.elv_abort_request </pre></div><div class="refsect1"><a name="idm47511690990176"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>disk_minor</code></em></span></dt><dd><p>
+ Disk minor number of request.
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>disk_major</code></em></span></dt><dd><p>
- Disk major no of request.
- </p></dd><dt><span class="term"><em class="parameter"><code>rq_flags</code></em></span></dt><dd><p>
- Request flags.
</p></dd><dt><span class="term"><em class="parameter"><code>rq</code></em></span></dt><dd><p>
Address of request.
- </p></dd><dt><span class="term"><em class="parameter"><code>disk_minor</code></em></span></dt><dd><p>
- Disk minor number of request.
+ </p></dd><dt><span class="term"><em class="parameter"><code>disk_major</code></em></span></dt><dd><p>
+ Disk major no of request.
</p></dd><dt><span class="term"><em class="parameter"><code>elevator_name</code></em></span></dt><dd><p>
The type of I/O elevator currently enabled.
+ </p></dd><dt><span class="term"><em class="parameter"><code>rq_flags</code></em></span></dt><dd><p>
+ Request flags.
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ioscheduler-elv-next-request-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="iosched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ioscheduler-trace-elv-completed-request.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::ioscheduler.elv_next_request.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::ioscheduler_trace.elv_completed_request</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ioscheduler_trace.elv_completed_request</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="iosched.stp.html" title="Chapter 9. IO Scheduler and block IO Tapset"><link rel="prev" href="API-ioscheduler-trace-elv-abort-request.html" title="probe::ioscheduler_trace.elv_abort_request"><link rel="next" href="API-ioscheduler-trace-elv-issue-request.html" title="probe::ioscheduler_trace.elv_issue_request"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ioscheduler_trace.elv_completed_request</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ioscheduler-trace-elv-abort-request.html">Prev</a> </td><th width="60%" align="center">Chapter 9. IO Scheduler and block IO Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ioscheduler-trace-elv-issue-request.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ioscheduler-trace-elv-completed-request"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ioscheduler_trace.elv_completed_request —
Fires when a request is
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler_trace.elv_completed_request </pre></div><div class="refsect1"><a name="idm47245129124288"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rq_flags</code></em></span></dt><dd><p>
- Request flags.
- </p></dd><dt><span class="term"><em class="parameter"><code>disk_major</code></em></span></dt><dd><p>
- Disk major no of request.
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler_trace.elv_completed_request </pre></div><div class="refsect1"><a name="idm47511690970016"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rq</code></em></span></dt><dd><p>
+ Address of request.
+ </p></dd><dt><span class="term"><em class="parameter"><code>disk_minor</code></em></span></dt><dd><p>
+ Disk minor number of request.
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the probe point
+ </p></dd><dt><span class="term"><em class="parameter"><code>disk_major</code></em></span></dt><dd><p>
+ Disk major no of request.
</p></dd><dt><span class="term"><em class="parameter"><code>elevator_name</code></em></span></dt><dd><p>
The type of I/O elevator currently enabled.
- </p></dd><dt><span class="term"><em class="parameter"><code>disk_minor</code></em></span></dt><dd><p>
- Disk minor number of request.
- </p></dd><dt><span class="term"><em class="parameter"><code>rq</code></em></span></dt><dd><p>
- Address of request.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129111008"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>rq_flags</code></em></span></dt><dd><p>
+ Request flags.
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511690956736"></a><h2>Description</h2><p>
completed.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ioscheduler-trace-elv-abort-request.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="iosched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ioscheduler-trace-elv-issue-request.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::ioscheduler_trace.elv_abort_request</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::ioscheduler_trace.elv_issue_request</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ioscheduler_trace.elv_issue_request</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="iosched.stp.html" title="Chapter 9. IO Scheduler and block IO Tapset"><link rel="prev" href="API-ioscheduler-trace-elv-completed-request.html" title="probe::ioscheduler_trace.elv_completed_request"><link rel="next" href="API-ioscheduler-trace-elv-requeue-request.html" title="probe::ioscheduler_trace.elv_requeue_request"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ioscheduler_trace.elv_issue_request</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ioscheduler-trace-elv-completed-request.html">Prev</a> </td><th width="60%" align="center">Chapter 9. IO Scheduler and block IO Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ioscheduler-trace-elv-requeue-request.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ioscheduler-trace-elv-issue-request"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ioscheduler_trace.elv_issue_request —
Fires when a request is
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler_trace.elv_issue_request </pre></div><div class="refsect1"><a name="idm47245129102960"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>disk_minor</code></em></span></dt><dd><p>
- Disk minor number of request.
- </p></dd><dt><span class="term"><em class="parameter"><code>rq</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler_trace.elv_issue_request </pre></div><div class="refsect1"><a name="idm47511690948688"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rq</code></em></span></dt><dd><p>
Address of request.
- </p></dd><dt><span class="term"><em class="parameter"><code>elevator_name</code></em></span></dt><dd><p>
- The type of I/O elevator currently enabled.
+ </p></dd><dt><span class="term"><em class="parameter"><code>disk_minor</code></em></span></dt><dd><p>
+ Disk minor number of request.
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>rq_flags</code></em></span></dt><dd><p>
- Request flags.
</p></dd><dt><span class="term"><em class="parameter"><code>disk_major</code></em></span></dt><dd><p>
Disk major no of request.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129089680"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>elevator_name</code></em></span></dt><dd><p>
+ The type of I/O elevator currently enabled.
+ </p></dd><dt><span class="term"><em class="parameter"><code>rq_flags</code></em></span></dt><dd><p>
+ Request flags.
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511690935408"></a><h2>Description</h2><p>
scheduled.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ioscheduler-trace-elv-completed-request.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="iosched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ioscheduler-trace-elv-requeue-request.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::ioscheduler_trace.elv_completed_request</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::ioscheduler_trace.elv_requeue_request</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ioscheduler_trace.elv_requeue_request</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="iosched.stp.html" title="Chapter 9. IO Scheduler and block IO Tapset"><link rel="prev" href="API-ioscheduler-trace-elv-issue-request.html" title="probe::ioscheduler_trace.elv_issue_request"><link rel="next" href="API-ioscheduler-trace-plug.html" title="probe::ioscheduler_trace.plug"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ioscheduler_trace.elv_requeue_request</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ioscheduler-trace-elv-issue-request.html">Prev</a> </td><th width="60%" align="center">Chapter 9. IO Scheduler and block IO Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ioscheduler-trace-plug.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ioscheduler-trace-elv-requeue-request"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ioscheduler_trace.elv_requeue_request —
Fires when a request is
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler_trace.elv_requeue_request </pre></div><div class="refsect1"><a name="idm47245129081648"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>disk_major</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler_trace.elv_requeue_request </pre></div><div class="refsect1"><a name="idm47511690927392"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>disk_major</code></em></span></dt><dd><p>
Disk major no of request.
- </p></dd><dt><span class="term"><em class="parameter"><code>rq_flags</code></em></span></dt><dd><p>
- Request flags.
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of the probe point
</p></dd><dt><span class="term"><em class="parameter"><code>elevator_name</code></em></span></dt><dd><p>
The type of I/O elevator currently enabled.
</p></dd><dt><span class="term"><em class="parameter"><code>rq</code></em></span></dt><dd><p>
Address of request.
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of the probe point
</p></dd><dt><span class="term"><em class="parameter"><code>disk_minor</code></em></span></dt><dd><p>
Disk minor number of request.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129068368"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>rq_flags</code></em></span></dt><dd><p>
+ Request flags.
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511690914112"></a><h2>Description</h2><p>
put back on the queue, when the hadware cannot accept more requests.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ioscheduler-trace-elv-issue-request.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="iosched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ioscheduler-trace-plug.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::ioscheduler_trace.elv_issue_request</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::ioscheduler_trace.plug</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ioscheduler_trace.plug</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="iosched.stp.html" title="Chapter 9. IO Scheduler and block IO Tapset"><link rel="prev" href="API-ioscheduler-trace-elv-requeue-request.html" title="probe::ioscheduler_trace.elv_requeue_request"><link rel="next" href="API-ioscheduler-trace-unplug-io.html" title="probe::ioscheduler_trace.unplug_io"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ioscheduler_trace.plug</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ioscheduler-trace-elv-requeue-request.html">Prev</a> </td><th width="60%" align="center">Chapter 9. IO Scheduler and block IO Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ioscheduler-trace-unplug-io.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ioscheduler-trace-plug"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ioscheduler_trace.plug —
Fires when a request queue is plugged;
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler_trace.plug </pre></div><div class="refsect1"><a name="idm47245129060400"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rq_queue</code></em></span></dt><dd><p>
- request queue
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler_trace.plug </pre></div><div class="refsect1"><a name="idm47511690906032"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the probe point
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129055184"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>rq_queue</code></em></span></dt><dd><p>
+ request queue
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511690900816"></a><h2>Description</h2><p>
ie, requests in the queue cannot be serviced by block driver.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ioscheduler-trace-elv-requeue-request.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="iosched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ioscheduler-trace-unplug-io.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::ioscheduler_trace.elv_requeue_request</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::ioscheduler_trace.unplug_io</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ioscheduler_trace.unplug_io</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="iosched.stp.html" title="Chapter 9. IO Scheduler and block IO Tapset"><link rel="prev" href="API-ioscheduler-trace-plug.html" title="probe::ioscheduler_trace.plug"><link rel="next" href="API-ioscheduler-trace-unplug-timer.html" title="probe::ioscheduler_trace.unplug_timer"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ioscheduler_trace.unplug_io</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ioscheduler-trace-plug.html">Prev</a> </td><th width="60%" align="center">Chapter 9. IO Scheduler and block IO Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ioscheduler-trace-unplug-timer.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ioscheduler-trace-unplug-io"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ioscheduler_trace.unplug_io —
Fires when a request queue is unplugged;
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler_trace.unplug_io </pre></div><div class="refsect1"><a name="idm47245129047168"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rq_queue</code></em></span></dt><dd><p>
- request queue
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler_trace.unplug_io </pre></div><div class="refsect1"><a name="idm47511690892736"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the probe point
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129041952"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>rq_queue</code></em></span></dt><dd><p>
+ request queue
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511690887520"></a><h2>Description</h2><p>
Either, when number of pending requests in the queue exceeds threshold
or, upon expiration of timer that was activated when queue was plugged.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ioscheduler-trace-plug.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="iosched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ioscheduler-trace-unplug-timer.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::ioscheduler_trace.plug</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::ioscheduler_trace.unplug_timer</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ioscheduler_trace.unplug_timer</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="iosched.stp.html" title="Chapter 9. IO Scheduler and block IO Tapset"><link rel="prev" href="API-ioscheduler-trace-unplug-io.html" title="probe::ioscheduler_trace.unplug_io"><link rel="next" href="scsi.stp.html" title="Chapter 10. SCSI Tapset"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ioscheduler_trace.unplug_timer</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ioscheduler-trace-unplug-io.html">Prev</a> </td><th width="60%" align="center">Chapter 9. IO Scheduler and block IO Tapset</th><td width="20%" align="right"> <a accesskey="n" href="scsi.stp.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ioscheduler-trace-unplug-timer"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ioscheduler_trace.unplug_timer —
Fires when unplug timer associated
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler_trace.unplug_timer </pre></div><div class="refsect1"><a name="idm47245129033856"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>rq_queue</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ioscheduler_trace.unplug_timer </pre></div><div class="refsect1"><a name="idm47511690879424"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rq_queue</code></em></span></dt><dd><p>
request queue
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129028640"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of the probe point
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511690874208"></a><h2>Description</h2><p>
with a request queue expires.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ioscheduler-trace-unplug-io.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="iosched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="scsi.stp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::ioscheduler_trace.unplug_io</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 10. SCSI Tapset</td></tr></table></div></body></html>
Returns a string representation for an IPv4 address
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ip_ntop:string(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245128473056"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511690319024"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the IPv4 address represented as an integer
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-htons.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ntohl.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::htons</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::ntohl</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ipmib.ForwDatagrams</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-tcpmib-remote-port.html" title="function::tcpmib_remote_port"><link rel="next" href="API-ipmib-FragFails.html" title="probe::ipmib.FragFails"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ipmib.ForwDatagrams</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tcpmib-remote-port.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ipmib-FragFails.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ipmib-ForwDatagrams"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ipmib.ForwDatagrams —
Count forwarded packet
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.ForwDatagrams </pre></div><div class="refsect1"><a name="idm47245126153424"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
- pointer to the struct sk_buff being acted on
- </p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.ForwDatagrams </pre></div><div class="refsect1"><a name="idm47511687999584"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
value to be added to the counter (default value of 1)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126148224"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
+ pointer to the struct sk_buff being acted on
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687994384"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">ipmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>ForwDatagrams</code></em> (equivalent to SNMP's MIB
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ipmib.FragFails</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-ipmib-ForwDatagrams.html" title="probe::ipmib.ForwDatagrams"><link rel="next" href="API-ipmib-FragOKs.html" title="probe::ipmib.FragOKs"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ipmib.FragFails</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ipmib-ForwDatagrams.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ipmib-FragOKs.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ipmib-FragFails"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ipmib.FragFails —
Count datagram fragmented unsuccessfully
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.FragFails </pre></div><div class="refsect1"><a name="idm47245126138128"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.FragFails </pre></div><div class="refsect1"><a name="idm47511687984240"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
Value to be added to the counter (default value of 1)
</p></dd><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
pointer to the struct sk_buff being acted on
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126132928"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687979040"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">ipmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>FragFails</code></em> (equivalent to SNMP's MIB
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ipmib.FragOKs</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-ipmib-FragFails.html" title="probe::ipmib.FragFails"><link rel="next" href="API-ipmib-InAddrErrors.html" title="probe::ipmib.InAddrErrors"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ipmib.FragOKs</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ipmib-FragFails.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ipmib-InAddrErrors.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ipmib-FragOKs"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ipmib.FragOKs —
Count datagram fragmented successfully
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.FragOKs </pre></div><div class="refsect1"><a name="idm47245126122800"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
- pointer to the struct sk_buff being acted on
- </p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.FragOKs </pre></div><div class="refsect1"><a name="idm47511687968848"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
value to be added to the counter (default value of 1)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126117600"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
+ pointer to the struct sk_buff being acted on
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687963648"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">ipmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>FragOKs</code></em> (equivalent to SNMP's MIB
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ipmib.InAddrErrors</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-ipmib-FragOKs.html" title="probe::ipmib.FragOKs"><link rel="next" href="API-ipmib-InDiscards.html" title="probe::ipmib.InDiscards"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ipmib.InAddrErrors</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ipmib-FragOKs.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ipmib-InDiscards.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ipmib-InAddrErrors"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ipmib.InAddrErrors —
Count arriving packets with an incorrect address
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.InAddrErrors </pre></div><div class="refsect1"><a name="idm47245126107360"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
- value to be added to the counter (default value of 1)
- </p></dd><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.InAddrErrors </pre></div><div class="refsect1"><a name="idm47511687953472"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
pointer to the struct sk_buff being acted on
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126102160"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
+ value to be added to the counter (default value of 1)
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687948272"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">ipmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>InAddrErrors</code></em> (equivalent to SNMP's MIB
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ipmib.InDiscards</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-ipmib-InAddrErrors.html" title="probe::ipmib.InAddrErrors"><link rel="next" href="API-ipmib-InNoRoutes.html" title="probe::ipmib.InNoRoutes"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ipmib.InDiscards</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ipmib-InAddrErrors.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ipmib-InNoRoutes.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ipmib-InDiscards"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ipmib.InDiscards —
Count discarded inbound packets
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.InDiscards </pre></div><div class="refsect1"><a name="idm47245126091968"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
- pointer to the struct sk_buff being acted on
- </p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.InDiscards </pre></div><div class="refsect1"><a name="idm47511687938080"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
value to be added to the counter (default value of 1)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126086768"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
+ pointer to the struct sk_buff being acted on
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687932880"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">ipmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>InDiscards</code></em> (equivalent to SNMP's MIB
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ipmib.InNoRoutes</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-ipmib-InDiscards.html" title="probe::ipmib.InDiscards"><link rel="next" href="API-ipmib-InReceives.html" title="probe::ipmib.InReceives"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ipmib.InNoRoutes</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ipmib-InDiscards.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ipmib-InReceives.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ipmib-InNoRoutes"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ipmib.InNoRoutes —
Count an arriving packet with no matching socket
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.InNoRoutes </pre></div><div class="refsect1"><a name="idm47245126076560"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
- pointer to the struct sk_buff being acted on
- </p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.InNoRoutes </pre></div><div class="refsect1"><a name="idm47511687922672"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
value to be added to the counter (default value of 1)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126071360"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
+ pointer to the struct sk_buff being acted on
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687917472"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">ipmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>InNoRoutes</code></em> (equivalent to SNMP's MIB
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ipmib.InReceives</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-ipmib-InNoRoutes.html" title="probe::ipmib.InNoRoutes"><link rel="next" href="API-ipmib-InUnknownProtos.html" title="probe::ipmib.InUnknownProtos"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ipmib.InReceives</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ipmib-InNoRoutes.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ipmib-InUnknownProtos.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ipmib-InReceives"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ipmib.InReceives —
Count an arriving packet
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.InReceives </pre></div><div class="refsect1"><a name="idm47245126061184"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.InReceives </pre></div><div class="refsect1"><a name="idm47511687907296"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
value to be added to the counter (default value of 1)
</p></dd><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
pointer to the struct sk_buff being acted on
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126055984"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687902096"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">ipmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>InReceives</code></em> (equivalent to SNMP's MIB
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ipmib.InUnknownProtos</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-ipmib-InReceives.html" title="probe::ipmib.InReceives"><link rel="next" href="API-ipmib-OutRequests.html" title="probe::ipmib.OutRequests"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ipmib.InUnknownProtos</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ipmib-InReceives.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ipmib-OutRequests.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ipmib-InUnknownProtos"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ipmib.InUnknownProtos —
Count arriving packets with an unbound proto
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.InUnknownProtos </pre></div><div class="refsect1"><a name="idm47245126045792"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
- pointer to the struct sk_buff being acted on
- </p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.InUnknownProtos </pre></div><div class="refsect1"><a name="idm47511687891840"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
value to be added to the counter (default value of 1)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126040592"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
+ pointer to the struct sk_buff being acted on
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687886640"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">ipmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>InUnknownProtos</code></em> (equivalent to SNMP's MIB
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ipmib.OutRequests</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-ipmib-InUnknownProtos.html" title="probe::ipmib.InUnknownProtos"><link rel="next" href="API-ipmib-ReasmReqds.html" title="probe::ipmib.ReasmReqds"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ipmib.OutRequests</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ipmib-InUnknownProtos.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ipmib-ReasmReqds.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ipmib-OutRequests"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ipmib.OutRequests —
Count a request to send a packet
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.OutRequests </pre></div><div class="refsect1"><a name="idm47245126030352"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.OutRequests </pre></div><div class="refsect1"><a name="idm47511687876448"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
pointer to the struct sk_buff being acted on
</p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
value to be added to the counter (default value of 1)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126025152"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687871248"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">ipmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>OutRequests</code></em> (equivalent to SNMP's MIB
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ipmib.ReasmReqds</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-ipmib-OutRequests.html" title="probe::ipmib.OutRequests"><link rel="next" href="API-ipmib-ReasmTimeout.html" title="probe::ipmib.ReasmTimeout"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ipmib.ReasmReqds</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ipmib-OutRequests.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-ipmib-ReasmTimeout.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ipmib-ReasmReqds"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ipmib.ReasmReqds —
Count number of packet fragments reassembly requests
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.ReasmReqds </pre></div><div class="refsect1"><a name="idm47245126015008"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.ReasmReqds </pre></div><div class="refsect1"><a name="idm47511687861088"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
value to be added to the counter (default value of 1)
</p></dd><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
pointer to the struct sk_buff being acted on
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126009808"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687855888"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">ipmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>ReasmReqds</code></em> (equivalent to SNMP's MIB
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::ipmib.ReasmTimeout</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-ipmib-ReasmReqds.html" title="probe::ipmib.ReasmReqds"><link rel="next" href="API-linuxmib-DelayedACKs.html" title="probe::linuxmib.DelayedACKs"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::ipmib.ReasmTimeout</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ipmib-ReasmReqds.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-linuxmib-DelayedACKs.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-ipmib-ReasmTimeout"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::ipmib.ReasmTimeout —
Count Reassembly Timeouts
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.ReasmTimeout </pre></div><div class="refsect1"><a name="idm47245125999664"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">ipmib.ReasmTimeout </pre></div><div class="refsect1"><a name="idm47511687845744"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
pointer to the struct sk_buff being acted on
</p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
value to be added to the counter (default value of 1)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125994464"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687840544"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">ipmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>ReasmTimeout</code></em> (equivalent to SNMP's MIB
Default filter function for ipmib.* probes
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ipmib_filter_key:long(skb:long,op:long,SourceIsLocal:long)
-</pre></div><div class="refsect1"><a name="idm47245126324944"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688171072"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
pointer to the struct sk_buff
</p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
value to be counted if <em class="parameter"><code>skb</code></em> passes the filter
</p></dd><dt><span class="term"><em class="parameter"><code>SourceIsLocal</code></em></span></dt><dd><p>
1 is local operation and 0 is non-local operation
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126316992"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688163120"></a><h2>Description</h2><p>
This function is a default filter function.
The user can replace this function with their own.
The user-supplied filter function returns an index key based on the values
Get the protocol value
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ipmib_get_proto:long(skb:long)
-</pre></div><div class="refsect1"><a name="idm47245126307408"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688153584"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
pointer to a struct sk_buff
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126304240"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688150416"></a><h2>Description</h2><p>
Returns the protocol value from <em class="parameter"><code>skb</code></em>.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ipmib-filter-key.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="snmp.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ipmib-local-addr.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::ipmib_filter_key</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::ipmib_local_addr</span></td></tr></table></div></body></html>
Get the local ip address
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ipmib_local_addr:long(skb:long,SourceIsLocal:long)
-</pre></div><div class="refsect1"><a name="idm47245126295600"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688141776"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
pointer to a struct sk_buff
</p></dd><dt><span class="term"><em class="parameter"><code>SourceIsLocal</code></em></span></dt><dd><p>
flag to indicate whether local operation
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126290400"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688136576"></a><h2>Description</h2><p>
Returns the local ip address <em class="parameter"><code>skb</code></em>.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ipmib-get-proto.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="snmp.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ipmib-remote-addr.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::ipmib_get_proto</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::ipmib_remote_addr</span></td></tr></table></div></body></html>
Get the remote ip address
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ipmib_remote_addr:long(skb:long,SourceIsLocal:long)
-</pre></div><div class="refsect1"><a name="idm47245126281712"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688127936"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
pointer to a struct sk_buff
</p></dd><dt><span class="term"><em class="parameter"><code>SourceIsLocal</code></em></span></dt><dd><p>
flag to indicate whether local operation
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126276512"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688122736"></a><h2>Description</h2><p>
Returns the remote ip address from <em class="parameter"><code>skb</code></em>.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ipmib-local-addr.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="snmp.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ipmib-tcp-local-port.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::ipmib_local_addr</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::ipmib_tcp_local_port</span></td></tr></table></div></body></html>
Get the local tcp port
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ipmib_tcp_local_port:long(skb:long,SourceIsLocal:long)
-</pre></div><div class="refsect1"><a name="idm47245126267840"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688114064"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
pointer to a struct sk_buff
</p></dd><dt><span class="term"><em class="parameter"><code>SourceIsLocal</code></em></span></dt><dd><p>
flag to indicate whether local operation
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126262640"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688108864"></a><h2>Description</h2><p>
Returns the local tcp port from <em class="parameter"><code>skb</code></em>.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ipmib-remote-addr.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="snmp.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ipmib-tcp-remote-port.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::ipmib_remote_addr</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::ipmib_tcp_remote_port</span></td></tr></table></div></body></html>
Get the remote tcp port
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ipmib_tcp_remote_port:long(skb:long,SourceIsLocal:long)
-</pre></div><div class="refsect1"><a name="idm47245126253968"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688100192"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
pointer to a struct sk_buff
</p></dd><dt><span class="term"><em class="parameter"><code>SourceIsLocal</code></em></span></dt><dd><p>
flag to indicate whether local operation
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126248768"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688094992"></a><h2>Description</h2><p>
Returns the remote tcp port from <em class="parameter"><code>skb</code></em>.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ipmib-tcp-local-port.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="snmp.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-linuxmib-filter-key.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::ipmib_tcp_local_port</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::linuxmib_filter_key</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::irq_handler.entry</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="irq.stp.html" title="Chapter 12. Interrupt Request (IRQ) Tapset"><link rel="prev" href="irq.stp.html" title="Chapter 12. Interrupt Request (IRQ) Tapset"><link rel="next" href="API-irq-handler-exit.html" title="probe::irq_handler.exit"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::irq_handler.entry</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="irq.stp.html">Prev</a> </td><th width="60%" align="center">Chapter 12. Interrupt Request (IRQ) Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-irq-handler-exit.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-irq-handler-entry"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::irq_handler.entry —
Execution of interrupt handler starting
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">irq_handler.entry </pre></div><div class="refsect1"><a name="idm47245128664352"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>handler</code></em></span></dt><dd><p>
- interrupt handler function
- </p></dd><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
- name of device
- </p></dd><dt><span class="term"><em class="parameter"><code>dev_id</code></em></span></dt><dd><p>
- Cookie to identify device
- </p></dd><dt><span class="term"><em class="parameter"><code>action</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">irq_handler.entry </pre></div><div class="refsect1"><a name="idm47511690509984"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>action</code></em></span></dt><dd><p>
struct irqaction* for this interrupt num
- </p></dd><dt><span class="term"><em class="parameter"><code>flags_str</code></em></span></dt><dd><p>
- symbolic string representation of IRQ flags
- </p></dd><dt><span class="term"><em class="parameter"><code>thread</code></em></span></dt><dd><p>
- thread pointer for threaded interrupts
- </p></dd><dt><span class="term"><em class="parameter"><code>thread_flags</code></em></span></dt><dd><p>
- Flags related to thread
+ </p></dd><dt><span class="term"><em class="parameter"><code>thread_fn</code></em></span></dt><dd><p>
+ interrupt handler function for threaded interrupts
</p></dd><dt><span class="term"><em class="parameter"><code>next_irqaction</code></em></span></dt><dd><p>
pointer to next irqaction for shared interrupts
</p></dd><dt><span class="term"><em class="parameter"><code>dir</code></em></span></dt><dd><p>
pointer to the proc/irq/NN/name entry
- </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
- Flags for IRQ handler
- </p></dd><dt><span class="term"><em class="parameter"><code>thread_fn</code></em></span></dt><dd><p>
- interrupt handler function for threaded interrupts
+ </p></dd><dt><span class="term"><em class="parameter"><code>thread</code></em></span></dt><dd><p>
+ thread pointer for threaded interrupts
+ </p></dd><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
+ name of device
+ </p></dd><dt><span class="term"><em class="parameter"><code>thread_flags</code></em></span></dt><dd><p>
+ Flags related to thread
+ </p></dd><dt><span class="term"><em class="parameter"><code>flags_str</code></em></span></dt><dd><p>
+ symbolic string representation of IRQ flags
+ </p></dd><dt><span class="term"><em class="parameter"><code>dev_id</code></em></span></dt><dd><p>
+ Cookie to identify device
</p></dd><dt><span class="term"><em class="parameter"><code>irq</code></em></span></dt><dd><p>
irq number
+ </p></dd><dt><span class="term"><em class="parameter"><code>handler</code></em></span></dt><dd><p>
+ interrupt handler function
+ </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
+ Flags for IRQ handler
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="irq.stp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="irq.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-irq-handler-exit.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 12. Interrupt Request (IRQ) Tapset </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::irq_handler.exit</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::irq_handler.exit</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="irq.stp.html" title="Chapter 12. Interrupt Request (IRQ) Tapset"><link rel="prev" href="API-irq-handler-entry.html" title="probe::irq_handler.entry"><link rel="next" href="API-softirq-entry.html" title="probe::softirq.entry"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::irq_handler.exit</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-irq-handler-entry.html">Prev</a> </td><th width="60%" align="center">Chapter 12. Interrupt Request (IRQ) Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-softirq-entry.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-irq-handler-exit"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::irq_handler.exit —
Execution of interrupt handler completed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">irq_handler.exit </pre></div><div class="refsect1"><a name="idm47245128632144"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>handler</code></em></span></dt><dd><p>
- interrupt handler function that was executed
- </p></dd><dt><span class="term"><em class="parameter"><code>dev_id</code></em></span></dt><dd><p>
- Cookie to identify device
- </p></dd><dt><span class="term"><em class="parameter"><code>action</code></em></span></dt><dd><p>
- struct irqaction*
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">irq_handler.exit </pre></div><div class="refsect1"><a name="idm47511690477824"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>thread</code></em></span></dt><dd><p>
+ thread pointer for threaded interrupts
</p></dd><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
name of device
- </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
- flags for IRQ handler
+ </p></dd><dt><span class="term"><em class="parameter"><code>ret</code></em></span></dt><dd><p>
+ return value of the handler
+ </p></dd><dt><span class="term"><em class="parameter"><code>action</code></em></span></dt><dd><p>
+ struct irqaction*
+ </p></dd><dt><span class="term"><em class="parameter"><code>thread_fn</code></em></span></dt><dd><p>
+ interrupt handler function for threaded interrupts
</p></dd><dt><span class="term"><em class="parameter"><code>dir</code></em></span></dt><dd><p>
pointer to the proc/irq/NN/name entry
- </p></dd><dt><span class="term"><em class="parameter"><code>flags_str</code></em></span></dt><dd><p>
- symbolic string representation of IRQ flags
- </p></dd><dt><span class="term"><em class="parameter"><code>thread_flags</code></em></span></dt><dd><p>
- Flags related to thread
</p></dd><dt><span class="term"><em class="parameter"><code>next_irqaction</code></em></span></dt><dd><p>
pointer to next irqaction for shared interrupts
- </p></dd><dt><span class="term"><em class="parameter"><code>thread</code></em></span></dt><dd><p>
- thread pointer for threaded interrupts
- </p></dd><dt><span class="term"><em class="parameter"><code>thread_fn</code></em></span></dt><dd><p>
- interrupt handler function for threaded interrupts
- </p></dd><dt><span class="term"><em class="parameter"><code>ret</code></em></span></dt><dd><p>
- return value of the handler
+ </p></dd><dt><span class="term"><em class="parameter"><code>handler</code></em></span></dt><dd><p>
+ interrupt handler function that was executed
+ </p></dd><dt><span class="term"><em class="parameter"><code>dev_id</code></em></span></dt><dd><p>
+ Cookie to identify device
</p></dd><dt><span class="term"><em class="parameter"><code>irq</code></em></span></dt><dd><p>
interrupt number
+ </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
+ flags for IRQ handler
+ </p></dd><dt><span class="term"><em class="parameter"><code>thread_flags</code></em></span></dt><dd><p>
+ Flags related to thread
+ </p></dd><dt><span class="term"><em class="parameter"><code>flags_str</code></em></span></dt><dd><p>
+ symbolic string representation of IRQ flags
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-irq-handler-entry.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="irq.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-softirq-entry.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::irq_handler.entry</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::softirq.entry</span></td></tr></table></div></body></html>
Determines if the current probe point has occurred in the user's own process
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
is_myproc:long()
-</pre></div><div class="refsect1"><a name="idm47245131338304"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693181792"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131337152"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693180640"></a><h2>Description</h2><p>
This function returns 1 if the current probe
point has occurred in the user's own process.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-int-arg.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-is-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::int_arg</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::is_return</span></td></tr></table></div></body></html>
Whether the current probe context is a return probe
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
is_return:long()
-</pre></div><div class="refsect1"><a name="idm47245131329792"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693173200"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131328640"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693172048"></a><h2>Description</h2><p>
Returns 1 if the current probe context is a return probe,
returns 0 otherwise.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-is-myproc.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-long-arg.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::is_myproc</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::long_arg</span></td></tr></table></div></body></html>
Returns 1 if the signal is currently blocked, or 0 if it is not
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
is_sig_blocked:long(task:long,sig:long)
-</pre></div><div class="refsect1"><a name="idm47245125622800"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511687469184"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
address of the task_struct to query.
</p></dd><dt><span class="term"><em class="parameter"><code>sig</code></em></span></dt><dd><p>
the signal number to test.
Checks for a digit
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
isdigit:long(str:string)
-</pre></div><div class="refsect1"><a name="idm47245123963680"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>str</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685809952"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>str</code></em></span></dt><dd><p>
string to check
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123960464"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685806784"></a><h2>Description</h2><p>
Checks for a digit (0 through 9) as the first
character of a string. Returns non-zero if true, and a zero if
false.
Returns whether a string is a substring of another string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
isinstr:long(s1:string,s2:string)
-</pre></div><div class="refsect1"><a name="idm47245123952416"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>s1</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685798736"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>s1</code></em></span></dt><dd><p>
string to search in
</p></dd><dt><span class="term"><em class="parameter"><code>s2</code></em></span></dt><dd><p>
substring to find
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123947216"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685793584"></a><h2>Description</h2><p>
This function returns 1 if string <em class="parameter"><code>s1</code></em> contains <em class="parameter"><code>s2</code></em>,
otherwise zero.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-isdigit.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="string.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-str-replace.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::isdigit</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::str_replace</span></td></tr></table></div></body></html>
Kernel jiffies count
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
jiffies:long()
-</pre></div><div class="refsect1"><a name="idm47245130347792"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692191200"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130346640"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692190048"></a><h2>Description</h2><p>
This function returns the value of the kernel jiffies
variable. This value is incremented periodically by timer interrupts,
and may wrap around a 32-bit or 64-bit boundary. See <code class="function">HZ</code>.
Retrieves a char value stored in kernel memory
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
kernel_char:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124693312"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686539408"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The kernel address to retrieve the char from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124690096"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686536192"></a><h2>Description</h2><p>
Returns the char value from a given kernel memory address.
Reports an error when reading from the given address fails.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-atomic-read.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="conversions.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-kernel-int.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::atomic_read</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::kernel_int</span></td></tr></table></div></body></html>
Retrieves an int value stored in kernel memory
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
kernel_int:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124682064"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686528112"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The kernel address to retrieve the int from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124678848"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686524896"></a><h2>Description</h2><p>
Returns the int value from a given kernel memory address.
Reports an error when reading from the given address fails.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-kernel-char.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="conversions.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-kernel-long.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::kernel_char</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::kernel_long</span></td></tr></table></div></body></html>
Retrieves a long value stored in kernel memory
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
kernel_long:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124670768"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686516816"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The kernel address to retrieve the long from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124667552"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686513600"></a><h2>Description</h2><p>
Returns the long value from a given kernel memory address.
Reports an error when reading from the given address fails.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-kernel-int.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="conversions.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-kernel-pointer.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::kernel_int</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::kernel_pointer</span></td></tr></table></div></body></html>
Retrieves a pointer value stored in kernel memory
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
kernel_pointer:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124659424"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686505472"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The kernel address to retrieve the pointer from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124656192"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686502240"></a><h2>Description</h2><p>
Returns the pointer value from a given kernel memory
address. Reports an error when reading from the given address
fails.
Retrieves a short value stored in kernel memory
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
kernel_short:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124648160"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686494160"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The kernel address to retrieve the short from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124644928"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686490928"></a><h2>Description</h2><p>
Returns the short value from a given kernel memory address.
Reports an error when reading from the given address fails.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-kernel-pointer.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="conversions.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-kernel-string.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::kernel_pointer</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::kernel_string</span></td></tr></table></div></body></html>
Retrieves string of given length from kernel memory
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
kernel_string_n:string(addr:long,n:long)
-</pre></div><div class="refsect1"><a name="idm47245124584976"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686430960"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The kernel address to retrieve the string from
</p></dd><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
The maximum length of the string (if not null terminated)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124579728"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686425712"></a><h2>Description</h2><p>
Returns the C string of a maximum given length from a
given kernel memory address. Reports an error on string copy fault.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-kernel-string2-utf32.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="conversions.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-kernel-string-quoted.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::kernel_string2_utf32</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::kernel_string_quoted</span></td></tr></table></div></body></html>
Retrieves and quotes string from kernel memory
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
kernel_string_quoted:string(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124571632"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686417552"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the kernel memory address to retrieve the string from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124568400"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686414320"></a><h2>Description</h2><p>
Returns the null terminated C string from a given kernel
memory address where any ASCII characters that are not printable are
replaced by the corresponding escape sequence in the returned string. Note
Retrieves UTF-16 string from kernel memory
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
kernel_string_utf16:string(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124560000"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686405920"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The kernel address to retrieve the string from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124556768"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686402688"></a><h2>Description</h2><p>
This function returns a null terminated UTF-8 string converted
from the UTF-16 string at a given kernel memory address. Reports an error on
string copy fault or conversion error.
Retrieves UTF-32 string from kernel memory
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
kernel_string_utf32:string(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124548576"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686394496"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The kernel address to retrieve the string from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124545344"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686391264"></a><h2>Description</h2><p>
This function returns a null terminated UTF-8 string converted
from the UTF-32 string at a given kernel memory address. Reports an error on
string copy fault or conversion error.
Retrieves string from kernel memory
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
kernel_string:string(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124636912"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686482848"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The kernel address to retrieve the string from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124633680"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686479616"></a><h2>Description</h2><p>
This function returns the null terminated C string
from a given kernel memory address. Reports an error on string
copy fault.
Retrieves UTF-16 string from kernel memory with alternative error string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
kernel_string2_utf16:string(addr:long,err_msg:string)
-</pre></div><div class="refsect1"><a name="idm47245124612000"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686457984"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The kernel address to retrieve the string from
</p></dd><dt><span class="term"><em class="parameter"><code>err_msg</code></em></span></dt><dd><p>
The error message to return when data isn't available
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124606720"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686452704"></a><h2>Description</h2><p>
This function returns a null terminated UTF-8 string converted
from the UTF-16 string at a given kernel memory address. Reports the given
error message on string copy fault or conversion error.
Retrieves UTF-32 string from kernel memory with alternative error string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
kernel_string2_utf32:string(addr:long,err_msg:string)
-</pre></div><div class="refsect1"><a name="idm47245124598432"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686444416"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The kernel address to retrieve the string from
</p></dd><dt><span class="term"><em class="parameter"><code>err_msg</code></em></span></dt><dd><p>
The error message to return when data isn't available
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124593152"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686439136"></a><h2>Description</h2><p>
This function returns a null terminated UTF-8 string converted
from the UTF-32 string at a given kernel memory address. Reports the given
error message on string copy fault or conversion error.
Retrieves string from kernel memory with alternative error string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
kernel_string2:string(addr:long,err_msg:string)
-</pre></div><div class="refsect1"><a name="idm47245124625504"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686471440"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The kernel address to retrieve the string from
</p></dd><dt><span class="term"><em class="parameter"><code>err_msg</code></em></span></dt><dd><p>
The error message to return when data isn't available
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124620224"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686466160"></a><h2>Description</h2><p>
This function returns the null terminated C string
from a given kernel memory address. Reports the given error message
on string copy fault.
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::kprocess.create</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="kprocess.stp.html" title="Chapter 16. Kernel Process Tapset"><link rel="prev" href="API-target-set-report.html" title="function::target_set_report"><link rel="next" href="API-kprocess-exec.html" title="probe::kprocess.exec"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::kprocess.create</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-target-set-report.html">Prev</a> </td><th width="60%" align="center">Chapter 16. Kernel Process Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-kprocess-exec.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-kprocess-create"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::kprocess.create —
Fires whenever a new process or thread is successfully created
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">kprocess.create </pre></div><div class="refsect1"><a name="idm47245125739392"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>new_pid</code></em></span></dt><dd><p>
- The PID of the newly created process
- </p></dd><dt><span class="term"><em class="parameter"><code>new_tid</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">kprocess.create </pre></div><div class="refsect1"><a name="idm47511687585520"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>new_tid</code></em></span></dt><dd><p>
The TID of the newly created task
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125734144"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>new_pid</code></em></span></dt><dd><p>
+ The PID of the newly created process
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687580272"></a><h2>Context</h2><p>
Parent of the created process.
-</p></div><div class="refsect1"><a name="idm47245125732912"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511687579040"></a><h2>Description</h2><p>
Fires whenever a new process is successfully created, either as a result of
fork (or one of its syscall variants), or a new kernel thread.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-target-set-report.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="kprocess.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-kprocess-exec.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::target_set_report</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::kprocess.exec</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::kprocess.exec_complete</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="kprocess.stp.html" title="Chapter 16. Kernel Process Tapset"><link rel="prev" href="API-kprocess-exec.html" title="probe::kprocess.exec"><link rel="next" href="API-kprocess-exit.html" title="probe::kprocess.exit"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::kprocess.exec_complete</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-kprocess-exec.html">Prev</a> </td><th width="60%" align="center">Chapter 16. Kernel Process Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-kprocess-exit.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-kprocess-exec-complete"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::kprocess.exec_complete —
Return from exec to a new program
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">kprocess.exec_complete </pre></div><div class="refsect1"><a name="idm47245125705664"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of the system call (<span class="quote">“<span class="quote">execve</span>”</span>) (SystemTap v2.5+)
- </p></dd><dt><span class="term"><em class="parameter"><code>success</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">kprocess.exec_complete </pre></div><div class="refsect1"><a name="idm47511687551792"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>success</code></em></span></dt><dd><p>
A boolean indicating whether the exec was successful
- </p></dd><dt><span class="term"><em class="parameter"><code>errno</code></em></span></dt><dd><p>
- The error number resulting from the exec
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of the system call (<span class="quote">“<span class="quote">execve</span>”</span>) (SystemTap v2.5+)
</p></dd><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
A string representation of errno (SystemTap v2.5+)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125695872"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>errno</code></em></span></dt><dd><p>
+ The error number resulting from the exec
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687542000"></a><h2>Context</h2><p>
On success, the context of the new executable.
On failure, remains in the context of the caller.
-</p></div><div class="refsect1"><a name="idm47245125694560"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511687540688"></a><h2>Description</h2><p>
Fires at the completion of an exec call. Aliased to the
syscall.execve.return probe in SystemTap v2.5+.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-kprocess-exec.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="kprocess.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-kprocess-exit.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::kprocess.exec</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::kprocess.exit</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::kprocess.exec</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="kprocess.stp.html" title="Chapter 16. Kernel Process Tapset"><link rel="prev" href="API-kprocess-create.html" title="probe::kprocess.create"><link rel="next" href="API-kprocess-exec-complete.html" title="probe::kprocess.exec_complete"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::kprocess.exec</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-kprocess-create.html">Prev</a> </td><th width="60%" align="center">Chapter 16. Kernel Process Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-kprocess-exec-complete.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-kprocess-exec"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::kprocess.exec —
Attempt to exec to a new program
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">kprocess.exec </pre></div><div class="refsect1"><a name="idm47245125724832"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">kprocess.exec </pre></div><div class="refsect1"><a name="idm47511687570960"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>argstr</code></em></span></dt><dd><p>
+ A string containing the filename followed by the
+ arguments to pass, excluding 0th arg (SystemTap v2.5+)
+ </p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
+ The path to the new executable
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the system call (<span class="quote">“<span class="quote">execve</span>”</span>) (SystemTap v2.5+)
</p></dd><dt><span class="term"><em class="parameter"><code>args</code></em></span></dt><dd><p>
The arguments to pass to the new executable, including
the 0th arg (SystemTap v2.5+)
- </p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
- The path to the new executable
- </p></dd><dt><span class="term"><em class="parameter"><code>argstr</code></em></span></dt><dd><p>
- A string containing the filename followed by the
- arguments to pass, excluding 0th arg (SystemTap v2.5+)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125714960"></a><h2>Context</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687561088"></a><h2>Context</h2><p>
The caller of exec.
-</p></div><div class="refsect1"><a name="idm47245125713728"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511687559856"></a><h2>Description</h2><p>
Fires whenever a process attempts to exec to a new program. Aliased
to the syscall.execve probe in SystemTap v2.5+.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-kprocess-create.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="kprocess.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-kprocess-exec-complete.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::kprocess.create</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::kprocess.exec_complete</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::kprocess.exit</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="kprocess.stp.html" title="Chapter 16. Kernel Process Tapset"><link rel="prev" href="API-kprocess-exec-complete.html" title="probe::kprocess.exec_complete"><link rel="next" href="API-kprocess-release.html" title="probe::kprocess.release"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::kprocess.exit</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-kprocess-exec-complete.html">Prev</a> </td><th width="60%" align="center">Chapter 16. Kernel Process Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-kprocess-release.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-kprocess-exit"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::kprocess.exit —
Exit from process
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">kprocess.exit </pre></div><div class="refsect1"><a name="idm47245125686528"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>code</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">kprocess.exit </pre></div><div class="refsect1"><a name="idm47511687532656"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>code</code></em></span></dt><dd><p>
The exit code of the process
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125683328"></a><h2>Context</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687529456"></a><h2>Context</h2><p>
The process which is terminating.
-</p></div><div class="refsect1"><a name="idm47245125682096"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511687528224"></a><h2>Description</h2><p>
Fires when a process terminates. This will always be followed by a
kprocess.release, though the latter may be delayed if the process waits in a
zombie state.
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::kprocess.release</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="kprocess.stp.html" title="Chapter 16. Kernel Process Tapset"><link rel="prev" href="API-kprocess-exit.html" title="probe::kprocess.exit"><link rel="next" href="API-kprocess-start.html" title="probe::kprocess.start"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::kprocess.release</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-kprocess-exit.html">Prev</a> </td><th width="60%" align="center">Chapter 16. Kernel Process Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-kprocess-start.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-kprocess-release"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::kprocess.release —
Process released
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">kprocess.release </pre></div><div class="refsect1"><a name="idm47245125674064"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>released_tid</code></em></span></dt><dd><p>
- TID of the task being released
- </p></dd><dt><span class="term"><em class="parameter"><code>released_pid</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">kprocess.release </pre></div><div class="refsect1"><a name="idm47511687520176"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>released_pid</code></em></span></dt><dd><p>
PID of the process being released
- </p></dd><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
- A task handle to the process being released
</p></dd><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
Same as <em class="parameter"><code>released_pid</code></em> for compatibility (deprecated)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125664080"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+ A task handle to the process being released
+ </p></dd><dt><span class="term"><em class="parameter"><code>released_tid</code></em></span></dt><dd><p>
+ TID of the task being released
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687510192"></a><h2>Context</h2><p>
The context of the parent, if it wanted notification of this process'
termination, else the context of the process itself.
-</p></div><div class="refsect1"><a name="idm47245125662752"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511687508864"></a><h2>Description</h2><p>
Fires when a process is released from the kernel. This always follows a
kprocess.exit, though it may be delayed somewhat if the process waits in a
zombie state.
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::kprocess.start</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="kprocess.stp.html" title="Chapter 16. Kernel Process Tapset"><link rel="prev" href="API-kprocess-release.html" title="probe::kprocess.release"><link rel="next" href="signal.stp.html" title="Chapter 17. Signal Tapset"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::kprocess.start</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-kprocess-release.html">Prev</a> </td><th width="60%" align="center">Chapter 16. Kernel Process Tapset</th><td width="20%" align="right"> <a accesskey="n" href="signal.stp.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-kprocess-start"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::kprocess.start —
Starting new process
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">kprocess.start </pre></div><div class="refsect1"><a name="idm47245125654656"></a><h2>Values</h2><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">kprocess.start </pre></div><div class="refsect1"><a name="idm47511687500880"></a><h2>Values</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245125653440"></a><h2>Context</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511687499664"></a><h2>Context</h2><p>
Newly created process.
-</p></div><div class="refsect1"><a name="idm47245125652208"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511687498432"></a><h2>Description</h2><p>
Fires immediately before a new process begins execution.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-kprocess-release.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="kprocess.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="signal.stp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::kprocess.release</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 17. Signal Tapset</td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::linuxmib.DelayedACKs</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-ipmib-ReasmTimeout.html" title="probe::ipmib.ReasmTimeout"><link rel="next" href="API-linuxmib-ListenDrops.html" title="probe::linuxmib.ListenDrops"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::linuxmib.DelayedACKs</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ipmib-ReasmTimeout.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-linuxmib-ListenDrops.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-linuxmib-DelayedACKs"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::linuxmib.DelayedACKs —
Count of delayed acks
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">linuxmib.DelayedACKs </pre></div><div class="refsect1"><a name="idm47245125984208"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">linuxmib.DelayedACKs </pre></div><div class="refsect1"><a name="idm47511687830288"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
Value to be added to the counter (default value of 1)
</p></dd><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
Pointer to the struct sock being acted on
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125979008"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687825088"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">linuxmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>DelayedACKs</code></em> (equivalent to SNMP's MIB
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::linuxmib.ListenDrops</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-linuxmib-DelayedACKs.html" title="probe::linuxmib.DelayedACKs"><link rel="next" href="API-linuxmib-ListenOverflows.html" title="probe::linuxmib.ListenOverflows"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::linuxmib.ListenDrops</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-linuxmib-DelayedACKs.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-linuxmib-ListenOverflows.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-linuxmib-ListenDrops"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::linuxmib.ListenDrops —
Count of times conn request that were dropped
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">linuxmib.ListenDrops </pre></div><div class="refsect1"><a name="idm47245125968816"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
- Value to be added to the counter (default value of 1)
- </p></dd><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">linuxmib.ListenDrops </pre></div><div class="refsect1"><a name="idm47511687814832"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
Pointer to the struct sock being acted on
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125963616"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
+ Value to be added to the counter (default value of 1)
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687809632"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">linuxmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>ListenDrops</code></em> (equivalent to SNMP's MIB
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::linuxmib.ListenOverflows</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-linuxmib-ListenDrops.html" title="probe::linuxmib.ListenDrops"><link rel="next" href="API-linuxmib-TCPMemoryPressures.html" title="probe::linuxmib.TCPMemoryPressures"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::linuxmib.ListenOverflows</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-linuxmib-ListenDrops.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-linuxmib-TCPMemoryPressures.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-linuxmib-ListenOverflows"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::linuxmib.ListenOverflows —
Count of times a listen queue overflowed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">linuxmib.ListenOverflows </pre></div><div class="refsect1"><a name="idm47245125953344"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
- Value to be added to the counter (default value of 1)
- </p></dd><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">linuxmib.ListenOverflows </pre></div><div class="refsect1"><a name="idm47511687799360"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
Pointer to the struct sock being acted on
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125948144"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
+ Value to be added to the counter (default value of 1)
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687794160"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">linuxmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>ListenOverflows</code></em> (equivalent to SNMP's MIB
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::linuxmib.TCPMemoryPressures</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-linuxmib-ListenOverflows.html" title="probe::linuxmib.ListenOverflows"><link rel="next" href="API-tcpmib-ActiveOpens.html" title="probe::tcpmib.ActiveOpens"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::linuxmib.TCPMemoryPressures</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-linuxmib-ListenOverflows.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tcpmib-ActiveOpens.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-linuxmib-TCPMemoryPressures"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::linuxmib.TCPMemoryPressures —
Count of times memory pressure was used
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">linuxmib.TCPMemoryPressures </pre></div><div class="refsect1"><a name="idm47245125937904"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
- Pointer to the struct sock being acted on
- </p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">linuxmib.TCPMemoryPressures </pre></div><div class="refsect1"><a name="idm47511687783872"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
Value to be added to the counter (default value of 1)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125932704"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
+ Pointer to the struct sock being acted on
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687778672"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">linuxmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>TCPMemoryPressures</code></em> (equivalent to SNMP's MIB
Default filter function for linuxmib.* probes
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
linuxmib_filter_key:long(sk:long,op:long)
-</pre></div><div class="refsect1"><a name="idm47245126240128"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688086304"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
pointer to the struct sock
</p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
value to be counted if <em class="parameter"><code>sk</code></em> passes the filter
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126234240"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688080464"></a><h2>Description</h2><p>
This function is a default filter function.
The user can replace this function with their own.
The user-supplied filter function returns an index key based on the values
Number of milliseconds on the local cpu's clock
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
local_clock_ms:long()
-</pre></div><div class="refsect1"><a name="idm47245130338560"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692181968"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130337408"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692180816"></a><h2>Description</h2><p>
This function returns the number of milliseconds on the local
cpu's clock. This is always monotonic comparing on the same cpu, but may
have some drift between cpus (within about a jiffy).
Number of nanoseconds on the local cpu's clock
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
local_clock_ns:long()
-</pre></div><div class="refsect1"><a name="idm47245130329952"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692173360"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130328800"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692172208"></a><h2>Description</h2><p>
This function returns the number of nanoseconds on the local
cpu's clock. This is always monotonic comparing on the same cpu, but may
have some drift between cpus (within about a jiffy).
Number of seconds on the local cpu's clock
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
local_clock_s:long()
-</pre></div><div class="refsect1"><a name="idm47245130321344"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692164752"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130320192"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692163600"></a><h2>Description</h2><p>
This function returns the number of seconds on the local cpu's
clock. This is always monotonic comparing on the same cpu, but may have
some drift between cpus (within about a jiffy).
Number of microseconds on the local cpu's clock
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
local_clock_us:long()
-</pre></div><div class="refsect1"><a name="idm47245130312736"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692156144"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130311584"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692154992"></a><h2>Description</h2><p>
This function returns the number of microseconds on the local
cpu's clock. This is always monotonic comparing on the same cpu, but may
have some drift between cpus (within about a jiffy).
Send a line to the common trace buffer
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
log(msg:string)
-</pre></div><div class="refsect1"><a name="idm47245124905120"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>msg</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686751120"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>msg</code></em></span></dt><dd><p>
The formatted message string
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124901952"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686747952"></a><h2>Description</h2><p>
This function logs data. log sends the
message immediately to staprun and to the bulk transport
(relayfs) if it is being used. If the last character given
Return function argument as signed long
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
long_arg:long(n:long)
-</pre></div><div class="refsect1"><a name="idm47245131321296"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511693164704"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
index of argument to return
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245131318240"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511693161648"></a><h2>Description</h2><p>
Return the value of argument n as a signed long.
On architectures where a long is 32 bits, the value is sign-extended
to 64 bits.
Return function argument as 64-bit value
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
longlong_arg:long(n:long)
-</pre></div><div class="refsect1"><a name="idm47245131310832"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511693154240"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
index of argument to return
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245131307776"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511693151184"></a><h2>Description</h2><p>
Return the value of argument n as a 64-bit value.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-long-arg.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-modname.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::long_arg</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::modname</span></td></tr></table></div></body></html>
millisecond delay
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
mdelay(ms:long)
-</pre></div><div class="refsect1"><a name="idm47245124011456"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ms</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685857792"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ms</code></em></span></dt><dd><p>
Number of milliseconds to delay.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124008272"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685854608"></a><h2>Description</h2><p>
This function inserts a multi-millisecond busy-delay into a probe handler.
It requires guru mode.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="guru-delay.stp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="guru-delay.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-panic.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 27. Guru tapsets </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::panic</span></td></tr></table></div></body></html>
Number of bytes in a page for this architecture
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
mem_page_size:long()
-</pre></div><div class="refsect1"><a name="idm47245130152704"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511691996112"></a><h2>Arguments</h2><p>
None
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-bytes-to-string.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="memory_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-pages-to-string.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::bytes_to_string</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::pages_to_string</span></td></tr></table></div></body></html>
Return the kernel module name loaded at the address
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
modname:string(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245131300448"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511693143856"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The address to map to a kernel module name
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245131297392"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511693140800"></a><h2>Description</h2><p>
Returns the module name associated with the given
address if known. If not known it will raise an error. If the
address was not in a kernel module, but in the kernel itself, then
The module name of the current script
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
module_name:string()
-</pre></div><div class="refsect1"><a name="idm47245131289536"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693132944"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131288384"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693131792"></a><h2>Description</h2><p>
This function returns the name of the stap module.
Either generated randomly (stap_[0-9a-f]+_[0-9a-f]+)
or set by stap -m <module_name>.
Human readable string for given milliseconds
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
msecs_to_string:string(msecs:long)
-</pre></div><div class="refsect1"><a name="idm47245129734192"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>msecs</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511691579840"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>msecs</code></em></span></dt><dd><p>
Number of milliseconds to translate.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129730976"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691576624"></a><h2>Description</h2><p>
Returns a string representing the number of
milliseconds as a human readable string consisting of <span class="quote">“<span class="quote">XmY.ZZZs</span>”</span>,
where X is the number of minutes, Y is the number of seconds and
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netdev.change_mac</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-ntohs.html" title="function::ntohs"><link rel="next" href="API-netdev-change-mtu.html" title="probe::netdev.change_mtu"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netdev.change_mac</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-ntohs.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netdev-change-mtu.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netdev-change-mac"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netdev.change_mac —
Called when the netdev_name has the MAC changed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.change_mac </pre></div><div class="refsect1"><a name="idm47245128433520"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.change_mac </pre></div><div class="refsect1"><a name="idm47511690279328"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>new_mac</code></em></span></dt><dd><p>
+ The new MAC address
+ </p></dd><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
The device that will have the MAC changed
- </p></dd><dt><span class="term"><em class="parameter"><code>mac_len</code></em></span></dt><dd><p>
- The MAC length
</p></dd><dt><span class="term"><em class="parameter"><code>old_mac</code></em></span></dt><dd><p>
The current MAC address
- </p></dd><dt><span class="term"><em class="parameter"><code>new_mac</code></em></span></dt><dd><p>
- The new MAC address
+ </p></dd><dt><span class="term"><em class="parameter"><code>mac_len</code></em></span></dt><dd><p>
+ The MAC length
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ntohs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netdev-change-mtu.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::ntohs</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netdev.change_mtu</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netdev.change_mtu</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netdev-change-mac.html" title="probe::netdev.change_mac"><link rel="next" href="API-netdev-change-rx-flag.html" title="probe::netdev.change_rx_flag"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netdev.change_mtu</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netdev-change-mac.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netdev-change-rx-flag.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netdev-change-mtu"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netdev.change_mtu —
Called when the netdev MTU is changed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.change_mtu </pre></div><div class="refsect1"><a name="idm47245128417552"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>new_mtu</code></em></span></dt><dd><p>
- The new MTU
- </p></dd><dt><span class="term"><em class="parameter"><code>old_mtu</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.change_mtu </pre></div><div class="refsect1"><a name="idm47511690263296"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>old_mtu</code></em></span></dt><dd><p>
The current MTU
+ </p></dd><dt><span class="term"><em class="parameter"><code>new_mtu</code></em></span></dt><dd><p>
+ The new MTU
</p></dd><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
The device that will have the MTU changed
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netdev-change-mac.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netdev-change-rx-flag.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netdev.change_mac</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netdev.change_rx_flag</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netdev.change_rx_flag</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netdev-change-mtu.html" title="probe::netdev.change_mtu"><link rel="next" href="API-netdev-close.html" title="probe::netdev.close"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netdev.change_rx_flag</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netdev-change-mtu.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netdev-close.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netdev-change-rx-flag"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netdev.change_rx_flag —
Called when the device RX flag will be changed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.change_rx_flag </pre></div><div class="refsect1"><a name="idm47245128403584"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
- The device that will be changed
- </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.change_rx_flag </pre></div><div class="refsect1"><a name="idm47511690249376"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
The new flags
+ </p></dd><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
+ The device that will be changed
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netdev-change-mtu.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netdev-close.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netdev.change_mtu</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netdev.close</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netdev.close</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netdev-change-rx-flag.html" title="probe::netdev.change_rx_flag"><link rel="next" href="API-netdev-get-stats.html" title="probe::netdev.get_stats"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netdev.close</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netdev-change-rx-flag.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netdev-get-stats.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netdev-close"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netdev.close —
Called when the device is closed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.close </pre></div><div class="refsect1"><a name="idm47245128391616"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.close </pre></div><div class="refsect1"><a name="idm47511690237456"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
The device that is going to be closed
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netdev-change-rx-flag.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netdev-get-stats.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netdev.change_rx_flag</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netdev.get_stats</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netdev.get_stats</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netdev-close.html" title="probe::netdev.close"><link rel="next" href="API-netdev-hard-transmit.html" title="probe::netdev.hard_transmit"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netdev.get_stats</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netdev-close.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netdev-hard-transmit.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netdev-get-stats"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netdev.get_stats —
Called when someone asks the device statistics
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.get_stats </pre></div><div class="refsect1"><a name="idm47245128381712"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.get_stats </pre></div><div class="refsect1"><a name="idm47511690227552"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
The device that is going to provide the statistics
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netdev-close.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netdev-hard-transmit.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netdev.close</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netdev.hard_transmit</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netdev.hard_transmit</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netdev-get-stats.html" title="probe::netdev.get_stats"><link rel="next" href="API-netdev-ioctl.html" title="probe::netdev.ioctl"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netdev.hard_transmit</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netdev-get-stats.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netdev-ioctl.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netdev-hard-transmit"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netdev.hard_transmit —
Called when the devices is going to TX (hard)
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.hard_transmit </pre></div><div class="refsect1"><a name="idm47245128371680"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
- The length of the transmit buffer.
- </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.hard_transmit </pre></div><div class="refsect1"><a name="idm47511690217584"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
The protocol used in the transmission
</p></dd><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
The device scheduled to transmit
</p></dd><dt><span class="term"><em class="parameter"><code>truesize</code></em></span></dt><dd><p>
The size of the data to be transmitted.
+ </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
+ The length of the transmit buffer.
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netdev-get-stats.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netdev-ioctl.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netdev.get_stats</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netdev.ioctl</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netdev.ioctl</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netdev-hard-transmit.html" title="probe::netdev.hard_transmit"><link rel="next" href="API-netdev-open.html" title="probe::netdev.open"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netdev.ioctl</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netdev-hard-transmit.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netdev-open.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netdev-ioctl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netdev.ioctl —
Called when the device suffers an IOCTL
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.ioctl </pre></div><div class="refsect1"><a name="idm47245128355680"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cmd</code></em></span></dt><dd><p>
- The IOCTL request
- </p></dd><dt><span class="term"><em class="parameter"><code>arg</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.ioctl </pre></div><div class="refsect1"><a name="idm47511690201584"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>arg</code></em></span></dt><dd><p>
The IOCTL argument (usually the netdev interface)
+ </p></dd><dt><span class="term"><em class="parameter"><code>cmd</code></em></span></dt><dd><p>
+ The IOCTL request
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netdev-hard-transmit.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netdev-open.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netdev.hard_transmit</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netdev.open</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netdev.open</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netdev-ioctl.html" title="probe::netdev.ioctl"><link rel="next" href="API-netdev-receive.html" title="probe::netdev.receive"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netdev.open</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netdev-ioctl.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netdev-receive.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netdev-open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netdev.open —
Called when the device is opened
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.open </pre></div><div class="refsect1"><a name="idm47245128343824"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.open </pre></div><div class="refsect1"><a name="idm47511690189664"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
The device that is going to be opened
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netdev-ioctl.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netdev-receive.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netdev.ioctl</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netdev.receive</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netdev.receive</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netdev-open.html" title="probe::netdev.open"><link rel="next" href="API-netdev-register.html" title="probe::netdev.register"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netdev.receive</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netdev-open.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netdev-register.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netdev-receive"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netdev.receive —
Data received from network device.
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.receive </pre></div><div class="refsect1"><a name="idm47245128333888"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
- Protocol of received packet.
- </p></dd><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.receive </pre></div><div class="refsect1"><a name="idm47511690179840"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
The name of the device. e.g: eth0, ath1.
</p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
The length of the receiving buffer.
+ </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
+ Protocol of received packet.
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netdev-open.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netdev-register.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netdev.open</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netdev.register</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netdev.register</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netdev-receive.html" title="probe::netdev.receive"><link rel="next" href="API-netdev-rx.html" title="probe::netdev.rx"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netdev.register</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netdev-receive.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netdev-rx.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netdev-register"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netdev.register —
Called when the device is registered
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.register </pre></div><div class="refsect1"><a name="idm47245128320000"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.register </pre></div><div class="refsect1"><a name="idm47511690165904"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
The device that is going to be registered
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netdev-receive.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netdev-rx.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netdev.receive</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netdev.rx</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netdev.rx</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netdev-register.html" title="probe::netdev.register"><link rel="next" href="API-netdev-set-promiscuity.html" title="probe::netdev.set_promiscuity"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netdev.rx</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netdev-register.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netdev-set-promiscuity.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netdev-rx"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netdev.rx —
Called when the device is going to receive a packet
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.rx </pre></div><div class="refsect1"><a name="idm47245128310080"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.rx </pre></div><div class="refsect1"><a name="idm47511690155984"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
The device received the packet
</p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
The packet protocol
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netdev.set_promiscuity</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netdev-rx.html" title="probe::netdev.rx"><link rel="next" href="API-netdev-transmit.html" title="probe::netdev.transmit"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netdev.set_promiscuity</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netdev-rx.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netdev-transmit.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netdev-set-promiscuity"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netdev.set_promiscuity —
Called when the device enters/leaves promiscuity
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.set_promiscuity </pre></div><div class="refsect1"><a name="idm47245128298080"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>enable</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.set_promiscuity </pre></div><div class="refsect1"><a name="idm47511690143984"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>enable</code></em></span></dt><dd><p>
If the device is entering promiscuity mode
</p></dd><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
The device that is entering/leaving promiscuity mode
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netdev.transmit</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netdev-set-promiscuity.html" title="probe::netdev.set_promiscuity"><link rel="next" href="API-netdev-unregister.html" title="probe::netdev.unregister"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netdev.transmit</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netdev-set-promiscuity.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netdev-unregister.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netdev-transmit"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netdev.transmit —
Network device transmitting buffer
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.transmit </pre></div><div class="refsect1"><a name="idm47245128282000"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.transmit </pre></div><div class="refsect1"><a name="idm47511690127952"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
The length of the transmit buffer.
</p></dd><dt><span class="term"><em class="parameter"><code>truesize</code></em></span></dt><dd><p>
The size of the data to be transmitted.
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netdev.unregister</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netdev-transmit.html" title="probe::netdev.transmit"><link rel="next" href="API-netfilter-arp-forward.html" title="probe::netfilter.arp.forward"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netdev.unregister</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netdev-transmit.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netfilter-arp-forward.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netdev-unregister"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netdev.unregister —
Called when the device is being unregistered
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.unregister </pre></div><div class="refsect1"><a name="idm47245128265952"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netdev.unregister </pre></div><div class="refsect1"><a name="idm47511690111840"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev_name</code></em></span></dt><dd><p>
The device that is going to be unregistered
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netdev-transmit.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netfilter-arp-forward.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netdev.transmit</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netfilter.arp.forward</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netfilter.arp.forward</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netdev-unregister.html" title="probe::netdev.unregister"><link rel="next" href="API-netfilter-arp-in.html" title="probe::netfilter.arp.in"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netfilter.arp.forward</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netdev-unregister.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netfilter-arp-in.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netfilter-arp-forward"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netfilter.arp.forward —
- Called for each ARP packet to be forwarded
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.arp.forward </pre></div><div class="refsect1"><a name="idm47245128255936"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ar_sip</code></em></span></dt><dd><p>
- Ethernet+IP only (ar_pro==0x800): source IP address
- </p></dd><dt><span class="term"><em class="parameter"><code>ar_op</code></em></span></dt><dd><p>
- ARP opcode (command)
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.arp.forward </pre></div><div class="refsect1"><a name="idm47511690101824"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ar_sha</code></em></span></dt><dd><p>
+ Ethernet+IP only (ar_pro==0x800): source hardware (MAC) address
+ </p></dd><dt><span class="term"><em class="parameter"><code>ar_pro</code></em></span></dt><dd><p>
+ Format of protocol address
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
+ Name of network device packet will be routed to (if known)
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
+ Constant used to signify a 'stop' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>ar_pln</code></em></span></dt><dd><p>
+ Length of protocol address
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_stolen</code></em></span></dt><dd><p>
+ Constant used to signify a 'stolen' verdict
</p></dd><dt><span class="term"><em class="parameter"><code>ar_tip</code></em></span></dt><dd><p>
Ethernet+IP only (ar_pro==0x800): target IP address
</p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
Protocol family -- always <span class="quote">“<span class="quote">arp</span>”</span>
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_stolen</code></em></span></dt><dd><p>
- Constant used to signify a 'stolen' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
- Constant used to signify a 'stop' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>ar_hln</code></em></span></dt><dd><p>
- Length of hardware address
- </p></dd><dt><span class="term"><em class="parameter"><code>ar_pro</code></em></span></dt><dd><p>
- Format of protocol address
- </p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
- Address of net_device representing input device, 0 if unknown
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
+ Constant used to signify a 'repeat' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>ar_op</code></em></span></dt><dd><p>
+ ARP opcode (command)
</p></dd><dt><span class="term"><em class="parameter"><code>indev_name</code></em></span></dt><dd><p>
Name of network device packet was received on (if known)
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
+ Constant used to signify an 'accept' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
+ Constant used to signify a 'queue' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
+ Address of net_device representing output device, 0 if unknown
</p></dd><dt><span class="term"><em class="parameter"><code>ar_hrd</code></em></span></dt><dd><p>
Format of hardware address
- </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
- The length of the packet buffer contents, in bytes
</p></dd><dt><span class="term"><em class="parameter"><code>ar_tha</code></em></span></dt><dd><p>
Ethernet+IP only (ar_pro==0x800): target hardware (MAC) address
- </p></dd><dt><span class="term"><em class="parameter"><code>arphdr</code></em></span></dt><dd><p>
- Address of ARP header
- </p></dd><dt><span class="term"><em class="parameter"><code>ar_pln</code></em></span></dt><dd><p>
- Length of protocol address
- </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
- Name of network device packet will be routed to (if known)
</p></dd><dt><span class="term"><em class="parameter"><code>ar_data</code></em></span></dt><dd><p>
Address of ARP packet data region (after the header)
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
- Constant used to signify a 'queue' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>ar_sha</code></em></span></dt><dd><p>
- Ethernet+IP only (ar_pro==0x800): source hardware (MAC) address
+ </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
+ The length of the packet buffer contents, in bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
+ Address of net_device representing input device, 0 if unknown
+ </p></dd><dt><span class="term"><em class="parameter"><code>ar_sip</code></em></span></dt><dd><p>
+ Ethernet+IP only (ar_pro==0x800): source IP address
+ </p></dd><dt><span class="term"><em class="parameter"><code>arphdr</code></em></span></dt><dd><p>
+ Address of ARP header
</p></dd><dt><span class="term"><em class="parameter"><code>nf_drop</code></em></span></dt><dd><p>
Constant used to signify a 'drop' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
- Constant used to signify an 'accept' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
- Address of net_device representing output device, 0 if unknown
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
- Constant used to signify a 'repeat' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>ar_hln</code></em></span></dt><dd><p>
+ Length of hardware address
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netdev-unregister.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netfilter-arp-in.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netdev.unregister</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netfilter.arp.in</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netfilter.arp.in</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netfilter-arp-forward.html" title="probe::netfilter.arp.forward"><link rel="next" href="API-netfilter-arp-out.html" title="probe::netfilter.arp.out"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netfilter.arp.in</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netfilter-arp-forward.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netfilter-arp-out.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netfilter-arp-in"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netfilter.arp.in —
- Called for each incoming ARP packet
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.arp.in </pre></div><div class="refsect1"><a name="idm47245128200768"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
- Constant used to signify a 'stop' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>ar_hln</code></em></span></dt><dd><p>
- Length of hardware address
- </p></dd><dt><span class="term"><em class="parameter"><code>ar_pro</code></em></span></dt><dd><p>
- Format of protocol address
- </p></dd><dt><span class="term"><em class="parameter"><code>ar_op</code></em></span></dt><dd><p>
- ARP opcode (command)
- </p></dd><dt><span class="term"><em class="parameter"><code>ar_sip</code></em></span></dt><dd><p>
- Ethernet+IP only (ar_pro==0x800): source IP address
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_stolen</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.arp.in </pre></div><div class="refsect1"><a name="idm47511690046608"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>nf_stolen</code></em></span></dt><dd><p>
Constant used to signify a 'stolen' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
- Protocol family -- always <span class="quote">“<span class="quote">arp</span>”</span>
+ </p></dd><dt><span class="term"><em class="parameter"><code>ar_pln</code></em></span></dt><dd><p>
+ Length of protocol address
</p></dd><dt><span class="term"><em class="parameter"><code>ar_tip</code></em></span></dt><dd><p>
Ethernet+IP only (ar_pro==0x800): target IP address
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
+ Name of network device packet will be routed to (if known)
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
+ Constant used to signify a 'stop' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>ar_sha</code></em></span></dt><dd><p>
+ Ethernet+IP only (ar_pro==0x800): source hardware (MAC) address
+ </p></dd><dt><span class="term"><em class="parameter"><code>ar_pro</code></em></span></dt><dd><p>
+ Format of protocol address
</p></dd><dt><span class="term"><em class="parameter"><code>ar_tha</code></em></span></dt><dd><p>
Ethernet+IP only (ar_pro==0x800): target hardware (MAC) address
- </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
- The length of the packet buffer contents, in bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>arphdr</code></em></span></dt><dd><p>
- Address of ARP header
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
+ Constant used to signify a 'repeat' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>ar_op</code></em></span></dt><dd><p>
+ ARP opcode (command)
</p></dd><dt><span class="term"><em class="parameter"><code>indev_name</code></em></span></dt><dd><p>
Name of network device packet was received on (if known)
- </p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
- Address of net_device representing input device, 0 if unknown
- </p></dd><dt><span class="term"><em class="parameter"><code>ar_hrd</code></em></span></dt><dd><p>
- Format of hardware address
</p></dd><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
Constant used to signify a 'queue' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>ar_sha</code></em></span></dt><dd><p>
- Ethernet+IP only (ar_pro==0x800): source hardware (MAC) address
- </p></dd><dt><span class="term"><em class="parameter"><code>ar_data</code></em></span></dt><dd><p>
- Address of ARP packet data region (after the header)
- </p></dd><dt><span class="term"><em class="parameter"><code>ar_pln</code></em></span></dt><dd><p>
- Length of protocol address
- </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
- Name of network device packet will be routed to (if known)
</p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
Constant used to signify an 'accept' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
- Constant used to signify a 'repeat' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>ar_hrd</code></em></span></dt><dd><p>
+ Format of hardware address
</p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
Address of net_device representing output device, 0 if unknown
+ </p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
+ Protocol family -- always <span class="quote">“<span class="quote">arp</span>”</span>
+ </p></dd><dt><span class="term"><em class="parameter"><code>ar_data</code></em></span></dt><dd><p>
+ Address of ARP packet data region (after the header)
+ </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
+ The length of the packet buffer contents, in bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>ar_hln</code></em></span></dt><dd><p>
+ Length of hardware address
+ </p></dd><dt><span class="term"><em class="parameter"><code>ar_sip</code></em></span></dt><dd><p>
+ Ethernet+IP only (ar_pro==0x800): source IP address
+ </p></dd><dt><span class="term"><em class="parameter"><code>arphdr</code></em></span></dt><dd><p>
+ Address of ARP header
</p></dd><dt><span class="term"><em class="parameter"><code>nf_drop</code></em></span></dt><dd><p>
Constant used to signify a 'drop' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
+ Address of net_device representing input device, 0 if unknown
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netfilter-arp-forward.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netfilter-arp-out.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netfilter.arp.forward</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netfilter.arp.out</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netfilter.arp.out</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netfilter-arp-in.html" title="probe::netfilter.arp.in"><link rel="next" href="API-netfilter-bridge-forward.html" title="probe::netfilter.bridge.forward"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netfilter.arp.out</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netfilter-arp-in.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netfilter-bridge-forward.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netfilter-arp-out"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netfilter.arp.out —
- Called for each outgoing ARP packet
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.arp.out </pre></div><div class="refsect1"><a name="idm47245128145680"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ar_sip</code></em></span></dt><dd><p>
- Ethernet+IP only (ar_pro==0x800): source IP address
- </p></dd><dt><span class="term"><em class="parameter"><code>ar_op</code></em></span></dt><dd><p>
- ARP opcode (command)
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.arp.out </pre></div><div class="refsect1"><a name="idm47511689991456"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
+ Constant used to signify a 'stop' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
+ Name of network device packet will be routed to (if known)
+ </p></dd><dt><span class="term"><em class="parameter"><code>ar_pro</code></em></span></dt><dd><p>
+ Format of protocol address
+ </p></dd><dt><span class="term"><em class="parameter"><code>ar_sha</code></em></span></dt><dd><p>
+ Ethernet+IP only (ar_pro==0x800): source hardware (MAC) address
</p></dd><dt><span class="term"><em class="parameter"><code>ar_tip</code></em></span></dt><dd><p>
Ethernet+IP only (ar_pro==0x800): target IP address
- </p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
- Protocol family -- always <span class="quote">“<span class="quote">arp</span>”</span>
</p></dd><dt><span class="term"><em class="parameter"><code>nf_stolen</code></em></span></dt><dd><p>
Constant used to signify a 'stolen' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
- Constant used to signify a 'stop' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>ar_pro</code></em></span></dt><dd><p>
- Format of protocol address
- </p></dd><dt><span class="term"><em class="parameter"><code>ar_hln</code></em></span></dt><dd><p>
- Length of hardware address
- </p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
- Address of net_device representing input device, 0 if unknown
- </p></dd><dt><span class="term"><em class="parameter"><code>indev_name</code></em></span></dt><dd><p>
- Name of network device packet was received on (if known)
+ </p></dd><dt><span class="term"><em class="parameter"><code>ar_pln</code></em></span></dt><dd><p>
+ Length of protocol address
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
+ Address of net_device representing output device, 0 if unknown
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
+ Constant used to signify a 'queue' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
+ Constant used to signify an 'accept' verdict
</p></dd><dt><span class="term"><em class="parameter"><code>ar_hrd</code></em></span></dt><dd><p>
Format of hardware address
+ </p></dd><dt><span class="term"><em class="parameter"><code>indev_name</code></em></span></dt><dd><p>
+ Name of network device packet was received on (if known)
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
+ Constant used to signify a 'repeat' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>ar_op</code></em></span></dt><dd><p>
+ ARP opcode (command)
+ </p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
+ Protocol family -- always <span class="quote">“<span class="quote">arp</span>”</span>
</p></dd><dt><span class="term"><em class="parameter"><code>ar_tha</code></em></span></dt><dd><p>
Ethernet+IP only (ar_pro==0x800): target hardware (MAC) address
</p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
The length of the packet buffer contents, in bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>arphdr</code></em></span></dt><dd><p>
- Address of ARP header
- </p></dd><dt><span class="term"><em class="parameter"><code>ar_pln</code></em></span></dt><dd><p>
- Length of protocol address
- </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
- Name of network device packet will be routed to (if known)
- </p></dd><dt><span class="term"><em class="parameter"><code>ar_sha</code></em></span></dt><dd><p>
- Ethernet+IP only (ar_pro==0x800): source hardware (MAC) address
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
- Constant used to signify a 'queue' verdict
</p></dd><dt><span class="term"><em class="parameter"><code>ar_data</code></em></span></dt><dd><p>
Address of ARP packet data region (after the header)
+ </p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
+ Address of net_device representing input device, 0 if unknown
+ </p></dd><dt><span class="term"><em class="parameter"><code>ar_hln</code></em></span></dt><dd><p>
+ Length of hardware address
</p></dd><dt><span class="term"><em class="parameter"><code>nf_drop</code></em></span></dt><dd><p>
Constant used to signify a 'drop' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
- Constant used to signify an 'accept' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
- Address of net_device representing output device, 0 if unknown
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
- Constant used to signify a 'repeat' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>arphdr</code></em></span></dt><dd><p>
+ Address of ARP header
+ </p></dd><dt><span class="term"><em class="parameter"><code>ar_sip</code></em></span></dt><dd><p>
+ Ethernet+IP only (ar_pro==0x800): source IP address
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netfilter-arp-in.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netfilter-bridge-forward.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netfilter.arp.in</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netfilter.bridge.forward</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netfilter.bridge.forward</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netfilter-arp-out.html" title="probe::netfilter.arp.out"><link rel="next" href="API-netfilter-bridge-local-in.html" title="probe::netfilter.bridge.local_in"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netfilter.bridge.forward</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netfilter-arp-out.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netfilter-bridge-local-in.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netfilter-bridge-forward"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netfilter.bridge.forward —
Called on an incoming bridging packet destined for some other computer
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.bridge.forward </pre></div><div class="refsect1"><a name="idm47245128090448"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
- Constant used to signify a 'stop' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_stolen</code></em></span></dt><dd><p>
- Constant used to signify a 'stolen' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
- Protocol family -- always <span class="quote">“<span class="quote">bridge</span>”</span>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.bridge.forward </pre></div><div class="refsect1"><a name="idm47511689936224"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
+ Address of net_device representing input device, 0 if unknown
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_drop</code></em></span></dt><dd><p>
+ Constant used to signify a 'drop' verdict
</p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
The length of the packet buffer contents, in bytes
</p></dd><dt><span class="term"><em class="parameter"><code>indev_name</code></em></span></dt><dd><p>
Name of network device packet was received on (if known)
- </p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
- Address of net_device representing input device, 0 if unknown
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
+ Constant used to signify a 'repeat' verdict
</p></dd><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
Constant used to signify a 'queue' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
- Name of network device packet will be routed to (if known)
</p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
Constant used to signify an 'accept' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
- Constant used to signify a 'repeat' verdict
</p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
Address of net_device representing output device, 0 if unknown
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_drop</code></em></span></dt><dd><p>
- Constant used to signify a 'drop' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
+ Protocol family -- always <span class="quote">“<span class="quote">bridge</span>”</span>
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
+ Name of network device packet will be routed to (if known)
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
+ Constant used to signify a 'stop' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_stolen</code></em></span></dt><dd><p>
+ Constant used to signify a 'stolen' verdict
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netfilter-arp-out.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netfilter-bridge-local-in.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netfilter.arp.out</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netfilter.bridge.local_in</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netfilter.bridge.local_in</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netfilter-bridge-forward.html" title="probe::netfilter.bridge.forward"><link rel="next" href="API-netfilter-bridge-local-out.html" title="probe::netfilter.bridge.local_out"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netfilter.bridge.local_in</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netfilter-bridge-forward.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netfilter-bridge-local-out.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netfilter-bridge-local-in"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netfilter.bridge.local_in —
Called on a bridging packet destined for the local computer
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.bridge.local_in </pre></div><div class="refsect1"><a name="idm47245128057632"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.bridge.local_in </pre></div><div class="refsect1"><a name="idm47511689903344"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
The length of the packet buffer contents, in bytes
</p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
Address of net_device representing input device, 0 if unknown
- </p></dd><dt><span class="term"><em class="parameter"><code>indev_name</code></em></span></dt><dd><p>
- Name of network device packet was received on (if known)
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_drop</code></em></span></dt><dd><p>
+ Constant used to signify a 'drop' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
+ Name of network device packet will be routed to (if known)
</p></dd><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
Constant used to signify a 'stop' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
- Protocol family -- always <span class="quote">“<span class="quote">bridge</span>”</span>
</p></dd><dt><span class="term"><em class="parameter"><code>nf_stolen</code></em></span></dt><dd><p>
Constant used to signify a 'stolen' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
- Constant used to signify an 'accept' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>indev_name</code></em></span></dt><dd><p>
+ Name of network device packet was received on (if known)
</p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
Constant used to signify a 'repeat' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
- Address of net_device representing output device, 0 if unknown
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_drop</code></em></span></dt><dd><p>
- Constant used to signify a 'drop' verdict
</p></dd><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
Constant used to signify a 'queue' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
- Name of network device packet will be routed to (if known)
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
+ Constant used to signify an 'accept' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
+ Address of net_device representing output device, 0 if unknown
+ </p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
+ Protocol family -- always <span class="quote">“<span class="quote">bridge</span>”</span>
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netfilter-bridge-forward.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netfilter-bridge-local-out.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netfilter.bridge.forward</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netfilter.bridge.local_out</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netfilter.bridge.local_out</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netfilter-bridge-local-in.html" title="probe::netfilter.bridge.local_in"><link rel="next" href="API-netfilter-bridge-post-routing.html" title="probe::netfilter.bridge.post_routing"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netfilter.bridge.local_out</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netfilter-bridge-local-in.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netfilter-bridge-post-routing.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netfilter-bridge-local-out"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netfilter.bridge.local_out —
Called on a bridging packet coming from a local process
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.bridge.local_out </pre></div><div class="refsect1"><a name="idm47245128024864"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.bridge.local_out </pre></div><div class="refsect1"><a name="idm47511689870512"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
Constant used to signify a 'queue' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
- Name of network device packet will be routed to (if known)
</p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
Address of net_device representing output device, 0 if unknown
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
- Constant used to signify a 'repeat' verdict
</p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
Constant used to signify an 'accept' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_drop</code></em></span></dt><dd><p>
- Constant used to signify a 'drop' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
- Constant used to signify a 'stop' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
+ Constant used to signify a 'repeat' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>indev_name</code></em></span></dt><dd><p>
+ Name of network device packet was received on (if known)
</p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
Protocol family -- always <span class="quote">“<span class="quote">bridge</span>”</span>
</p></dd><dt><span class="term"><em class="parameter"><code>nf_stolen</code></em></span></dt><dd><p>
Constant used to signify a 'stolen' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
- The length of the packet buffer contents, in bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>indev_name</code></em></span></dt><dd><p>
- Name of network device packet was received on (if known)
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
+ Constant used to signify a 'stop' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
+ Name of network device packet will be routed to (if known)
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_drop</code></em></span></dt><dd><p>
+ Constant used to signify a 'drop' verdict
</p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
Address of net_device representing input device, 0 if unknown
+ </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
+ The length of the packet buffer contents, in bytes
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netfilter-bridge-local-in.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netfilter-bridge-post-routing.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netfilter.bridge.local_in</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netfilter.bridge.post_routing</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netfilter.bridge.post_routing</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netfilter-bridge-local-out.html" title="probe::netfilter.bridge.local_out"><link rel="next" href="API-netfilter-bridge-pre-routing.html" title="probe::netfilter.bridge.pre_routing"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netfilter.bridge.post_routing</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netfilter-bridge-local-out.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netfilter-bridge-pre-routing.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netfilter-bridge-post-routing"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netfilter.bridge.post_routing —
- Called before a bridging packet hits the wire
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.bridge.post_routing </pre></div><div class="refsect1"><a name="idm47245127992000"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
- Name of network device packet will be routed to (if known)
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
- Constant used to signify a 'queue' verdict
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.bridge.post_routing </pre></div><div class="refsect1"><a name="idm47511689837760"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
+ Address of net_device representing input device, 0 if unknown
</p></dd><dt><span class="term"><em class="parameter"><code>nf_drop</code></em></span></dt><dd><p>
Constant used to signify a 'drop' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
- Constant used to signify an 'accept' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
+ The length of the packet buffer contents, in bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
+ Protocol family -- always <span class="quote">“<span class="quote">bridge</span>”</span>
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
+ Constant used to signify a 'queue' verdict
</p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
Address of net_device representing output device, 0 if unknown
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
+ Constant used to signify an 'accept' verdict
</p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
Constant used to signify a 'repeat' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_stolen</code></em></span></dt><dd><p>
- Constant used to signify a 'stolen' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
- Protocol family -- always <span class="quote">“<span class="quote">bridge</span>”</span>
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
- Constant used to signify a 'stop' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
- Address of net_device representing input device, 0 if unknown
</p></dd><dt><span class="term"><em class="parameter"><code>indev_name</code></em></span></dt><dd><p>
Name of network device packet was received on (if known)
- </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
- The length of the packet buffer contents, in bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
+ Constant used to signify a 'stop' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
+ Name of network device packet will be routed to (if known)
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_stolen</code></em></span></dt><dd><p>
+ Constant used to signify a 'stolen' verdict
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netfilter-bridge-local-out.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netfilter-bridge-pre-routing.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netfilter.bridge.local_out</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netfilter.bridge.pre_routing</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netfilter.bridge.pre_routing</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netfilter-bridge-post-routing.html" title="probe::netfilter.bridge.post_routing"><link rel="next" href="API-netfilter-ip-forward.html" title="probe::netfilter.ip.forward"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netfilter.bridge.pre_routing</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netfilter-bridge-post-routing.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netfilter-ip-forward.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netfilter-bridge-pre-routing"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netfilter.bridge.pre_routing —
- Called before a bridging packet is routed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.bridge.pre_routing </pre></div><div class="refsect1"><a name="idm47245127959200"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.bridge.pre_routing </pre></div><div class="refsect1"><a name="idm47511689804944"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
Constant used to signify a 'stop' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
- Protocol family -- always <span class="quote">“<span class="quote">bridge</span>”</span>
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
+ Name of network device packet will be routed to (if known)
</p></dd><dt><span class="term"><em class="parameter"><code>nf_stolen</code></em></span></dt><dd><p>
Constant used to signify a 'stolen' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
- The length of the packet buffer contents, in bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
- Address of net_device representing input device, 0 if unknown
- </p></dd><dt><span class="term"><em class="parameter"><code>indev_name</code></em></span></dt><dd><p>
- Name of network device packet was received on (if known)
+ </p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
+ Protocol family -- always <span class="quote">“<span class="quote">bridge</span>”</span>
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
+ Address of net_device representing output device, 0 if unknown
</p></dd><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
Constant used to signify a 'queue' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
- Name of network device packet will be routed to (if known)
</p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
Constant used to signify an 'accept' verdict
</p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
Constant used to signify a 'repeat' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
- Address of net_device representing output device, 0 if unknown
+ </p></dd><dt><span class="term"><em class="parameter"><code>indev_name</code></em></span></dt><dd><p>
+ Name of network device packet was received on (if known)
+ </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
+ The length of the packet buffer contents, in bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
+ Address of net_device representing input device, 0 if unknown
</p></dd><dt><span class="term"><em class="parameter"><code>nf_drop</code></em></span></dt><dd><p>
Constant used to signify a 'drop' verdict
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netfilter-bridge-post-routing.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netfilter-ip-forward.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netfilter.bridge.post_routing</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netfilter.ip.forward</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netfilter.ip.forward</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netfilter-bridge-pre-routing.html" title="probe::netfilter.bridge.pre_routing"><link rel="next" href="API-netfilter-ip-local-in.html" title="probe::netfilter.ip.local_in"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netfilter.ip.forward</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netfilter-bridge-pre-routing.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netfilter-ip-local-in.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netfilter-ip-forward"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netfilter.ip.forward —
Called on an incoming IP packet addressed to some other computer
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.ip.forward </pre></div><div class="refsect1"><a name="idm47245127926320"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
- Constant used to signify a 'queue' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
- TCP or UDP destination port (ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
- Name of network device packet will be routed to (if known)
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
- Constant used to signify an 'accept' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>psh</code></em></span></dt><dd><p>
- TCP PSH flag (if protocol is TCP; ipv4 only)
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.ip.forward </pre></div><div class="refsect1"><a name="idm47511689772064"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>syn</code></em></span></dt><dd><p>
+ TCP SYN flag (if protocol is TCP; ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
+ The length of the packet buffer contents, in bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>ipproto_tcp</code></em></span></dt><dd><p>
+ Constant used to signify that the packet protocol is TCP
+ </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ IP address family
</p></dd><dt><span class="term"><em class="parameter"><code>ipproto_udp</code></em></span></dt><dd><p>
Constant used to signify that the packet protocol is UDP
- </p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
- Address of net_device representing output device, 0 if unknown
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
- Constant used to signify a 'repeat' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>syn</code></em></span></dt><dd><p>
- TCP SYN flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>iphdr</code></em></span></dt><dd><p>
- Address of IP header
</p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
A string representing the source IP address
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_drop</code></em></span></dt><dd><p>
- Constant used to signify a 'drop' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>iphdr</code></em></span></dt><dd><p>
+ Address of IP header
+ </p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
+ Address of net_device representing input device, 0 if unknown
</p></dd><dt><span class="term"><em class="parameter"><code>ack</code></em></span></dt><dd><p>
TCP ACK flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>fin</code></em></span></dt><dd><p>
- TCP FIN flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
- Constant used to signify a 'stop' verdict
</p></dd><dt><span class="term"><em class="parameter"><code>rst</code></em></span></dt><dd><p>
TCP RST flag (if protocol is TCP; ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_drop</code></em></span></dt><dd><p>
+ Constant used to signify a 'drop' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
+ Constant used to signify a 'stop' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
+ Name of network device packet will be routed to (if known)
+ </p></dd><dt><span class="term"><em class="parameter"><code>psh</code></em></span></dt><dd><p>
+ TCP PSH flag (if protocol is TCP; ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>fin</code></em></span></dt><dd><p>
+ TCP FIN flag (if protocol is TCP; ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
+ A string representing the destination IP address
</p></dd><dt><span class="term"><em class="parameter"><code>nf_stolen</code></em></span></dt><dd><p>
Constant used to signify a 'stolen' verdict
</p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
Protocol family -- either <span class="quote">“<span class="quote">ipv4</span>”</span> or <span class="quote">“<span class="quote">ipv6</span>”</span>
- </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
- IP address family
- </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
- The length of the packet buffer contents, in bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>urg</code></em></span></dt><dd><p>
- TCP URG flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
- A string representing the destination IP address
- </p></dd><dt><span class="term"><em class="parameter"><code>sport</code></em></span></dt><dd><p>
- TCP or UDP source port (ipv4 only)
</p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
Packet protocol from driver (ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
+ Constant used to signify an 'accept' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
+ Constant used to signify a 'queue' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
+ Address of net_device representing output device, 0 if unknown
+ </p></dd><dt><span class="term"><em class="parameter"><code>urg</code></em></span></dt><dd><p>
+ TCP URG flag (if protocol is TCP; ipv4 only)
</p></dd><dt><span class="term"><em class="parameter"><code>indev_name</code></em></span></dt><dd><p>
Name of network device packet was received on (if known)
- </p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
- Address of net_device representing input device, 0 if unknown
- </p></dd><dt><span class="term"><em class="parameter"><code>ipproto_tcp</code></em></span></dt><dd><p>
- Constant used to signify that the packet protocol is TCP
+ </p></dd><dt><span class="term"><em class="parameter"><code>sport</code></em></span></dt><dd><p>
+ TCP or UDP source port (ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
+ Constant used to signify a 'repeat' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
+ TCP or UDP destination port (ipv4 only)
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netfilter-bridge-pre-routing.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netfilter-ip-local-in.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netfilter.bridge.pre_routing</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netfilter.ip.local_in</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netfilter.ip.local_in</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netfilter-ip-forward.html" title="probe::netfilter.ip.forward"><link rel="next" href="API-netfilter-ip-local-out.html" title="probe::netfilter.ip.local_out"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netfilter.ip.local_in</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netfilter-ip-forward.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netfilter-ip-local-out.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netfilter-ip-local-in"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netfilter.ip.local_in —
Called on an incoming IP packet addressed to the local computer
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.ip.local_in </pre></div><div class="refsect1"><a name="idm47245127862560"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
- Address of net_device representing output device, 0 if unknown
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
- Constant used to signify a 'repeat' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>ipproto_udp</code></em></span></dt><dd><p>
- Constant used to signify that the packet protocol is UDP
- </p></dd><dt><span class="term"><em class="parameter"><code>psh</code></em></span></dt><dd><p>
- TCP PSH flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
- Constant used to signify an 'accept' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_drop</code></em></span></dt><dd><p>
- Constant used to signify a 'drop' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
- A string representing the source IP address
- </p></dd><dt><span class="term"><em class="parameter"><code>syn</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.ip.local_in </pre></div><div class="refsect1"><a name="idm47511689708208"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>syn</code></em></span></dt><dd><p>
TCP SYN flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>iphdr</code></em></span></dt><dd><p>
- Address of IP header
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
- Constant used to signify a 'queue' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
- Name of network device packet will be routed to (if known)
- </p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
- TCP or UDP destination port (ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>sport</code></em></span></dt><dd><p>
- TCP or UDP source port (ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
- Packet protocol from driver (ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
- A string representing the destination IP address
+ </p></dd><dt><span class="term"><em class="parameter"><code>ipproto_tcp</code></em></span></dt><dd><p>
+ Constant used to signify that the packet protocol is TCP
</p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
The length of the packet buffer contents, in bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>urg</code></em></span></dt><dd><p>
- TCP URG flag (if protocol is TCP; ipv4 only)
</p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
IP address family
- </p></dd><dt><span class="term"><em class="parameter"><code>ipproto_tcp</code></em></span></dt><dd><p>
- Constant used to signify that the packet protocol is TCP
+ </p></dd><dt><span class="term"><em class="parameter"><code>ipproto_udp</code></em></span></dt><dd><p>
+ Constant used to signify that the packet protocol is UDP
+ </p></dd><dt><span class="term"><em class="parameter"><code>iphdr</code></em></span></dt><dd><p>
+ Address of IP header
+ </p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
+ A string representing the source IP address
</p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
Address of net_device representing input device, 0 if unknown
- </p></dd><dt><span class="term"><em class="parameter"><code>indev_name</code></em></span></dt><dd><p>
- Name of network device packet was received on (if known)
+ </p></dd><dt><span class="term"><em class="parameter"><code>rst</code></em></span></dt><dd><p>
+ TCP RST flag (if protocol is TCP; ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>ack</code></em></span></dt><dd><p>
+ TCP ACK flag (if protocol is TCP; ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_drop</code></em></span></dt><dd><p>
+ Constant used to signify a 'drop' verdict
</p></dd><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
Constant used to signify a 'stop' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>psh</code></em></span></dt><dd><p>
+ TCP PSH flag (if protocol is TCP; ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
+ Name of network device packet will be routed to (if known)
</p></dd><dt><span class="term"><em class="parameter"><code>fin</code></em></span></dt><dd><p>
TCP FIN flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>ack</code></em></span></dt><dd><p>
- TCP ACK flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
- Protocol family -- either <span class="quote">“<span class="quote">ipv4</span>”</span> or <span class="quote">“<span class="quote">ipv6</span>”</span>
+ </p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
+ A string representing the destination IP address
</p></dd><dt><span class="term"><em class="parameter"><code>nf_stolen</code></em></span></dt><dd><p>
Constant used to signify a 'stolen' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>rst</code></em></span></dt><dd><p>
- TCP RST flag (if protocol is TCP; ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
+ Protocol family -- either <span class="quote">“<span class="quote">ipv4</span>”</span> or <span class="quote">“<span class="quote">ipv6</span>”</span>
+ </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
+ Packet protocol from driver (ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
+ Constant used to signify an 'accept' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
+ Constant used to signify a 'queue' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
+ Address of net_device representing output device, 0 if unknown
+ </p></dd><dt><span class="term"><em class="parameter"><code>indev_name</code></em></span></dt><dd><p>
+ Name of network device packet was received on (if known)
+ </p></dd><dt><span class="term"><em class="parameter"><code>urg</code></em></span></dt><dd><p>
+ TCP URG flag (if protocol is TCP; ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>sport</code></em></span></dt><dd><p>
+ TCP or UDP source port (ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
+ Constant used to signify a 'repeat' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
+ TCP or UDP destination port (ipv4 only)
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netfilter-ip-forward.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netfilter-ip-local-out.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netfilter.ip.forward</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netfilter.ip.local_out</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netfilter.ip.local_out</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netfilter-ip-local-in.html" title="probe::netfilter.ip.local_in"><link rel="next" href="API-netfilter-ip-post-routing.html" title="probe::netfilter.ip.post_routing"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netfilter.ip.local_out</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netfilter-ip-local-in.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netfilter-ip-post-routing.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netfilter-ip-local-out"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netfilter.ip.local_out —
Called on an outgoing IP packet
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.ip.local_out </pre></div><div class="refsect1"><a name="idm47245127799024"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
- TCP or UDP destination port (ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
- Name of network device packet will be routed to (if known)
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
- Constant used to signify a 'queue' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>iphdr</code></em></span></dt><dd><p>
- Address of IP header
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.ip.local_out </pre></div><div class="refsect1"><a name="idm47511689644736"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
+ The length of the packet buffer contents, in bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>ipproto_tcp</code></em></span></dt><dd><p>
+ Constant used to signify that the packet protocol is TCP
+ </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ IP address family
+ </p></dd><dt><span class="term"><em class="parameter"><code>ipproto_udp</code></em></span></dt><dd><p>
+ Constant used to signify that the packet protocol is UDP
</p></dd><dt><span class="term"><em class="parameter"><code>syn</code></em></span></dt><dd><p>
TCP SYN flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
- A string representing the source IP address
</p></dd><dt><span class="term"><em class="parameter"><code>nf_drop</code></em></span></dt><dd><p>
Constant used to signify a 'drop' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>psh</code></em></span></dt><dd><p>
- TCP PSH flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>ipproto_udp</code></em></span></dt><dd><p>
- Constant used to signify that the packet protocol is UDP
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
- Constant used to signify an 'accept' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
- Address of net_device representing output device, 0 if unknown
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
- Constant used to signify a 'repeat' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>rst</code></em></span></dt><dd><p>
- TCP RST flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_stolen</code></em></span></dt><dd><p>
- Constant used to signify a 'stolen' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
- Protocol family -- either <span class="quote">“<span class="quote">ipv4</span>”</span> or <span class="quote">“<span class="quote">ipv6</span>”</span>
+ </p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
+ A string representing the source IP address
+ </p></dd><dt><span class="term"><em class="parameter"><code>iphdr</code></em></span></dt><dd><p>
+ Address of IP header
+ </p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
+ Address of net_device representing input device, 0 if unknown
</p></dd><dt><span class="term"><em class="parameter"><code>ack</code></em></span></dt><dd><p>
TCP ACK flag (if protocol is TCP; ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>rst</code></em></span></dt><dd><p>
+ TCP RST flag (if protocol is TCP; ipv4 only)
</p></dd><dt><span class="term"><em class="parameter"><code>fin</code></em></span></dt><dd><p>
TCP FIN flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
- Constant used to signify a 'stop' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>indev_name</code></em></span></dt><dd><p>
- Name of network device packet was received on (if known)
- </p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
- Address of net_device representing input device, 0 if unknown
- </p></dd><dt><span class="term"><em class="parameter"><code>ipproto_tcp</code></em></span></dt><dd><p>
- Constant used to signify that the packet protocol is TCP
- </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
- IP address family
- </p></dd><dt><span class="term"><em class="parameter"><code>urg</code></em></span></dt><dd><p>
- TCP URG flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
- The length of the packet buffer contents, in bytes
</p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
A string representing the destination IP address
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_stolen</code></em></span></dt><dd><p>
+ Constant used to signify a 'stolen' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
+ Constant used to signify a 'stop' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>psh</code></em></span></dt><dd><p>
+ TCP PSH flag (if protocol is TCP; ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
+ Name of network device packet will be routed to (if known)
+ </p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
+ TCP or UDP destination port (ipv4 only)
</p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
Packet protocol from driver (ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
+ Protocol family -- either <span class="quote">“<span class="quote">ipv4</span>”</span> or <span class="quote">“<span class="quote">ipv6</span>”</span>
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
+ Constant used to signify a 'queue' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
+ Constant used to signify an 'accept' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
+ Address of net_device representing output device, 0 if unknown
+ </p></dd><dt><span class="term"><em class="parameter"><code>urg</code></em></span></dt><dd><p>
+ TCP URG flag (if protocol is TCP; ipv4 only)
</p></dd><dt><span class="term"><em class="parameter"><code>sport</code></em></span></dt><dd><p>
TCP or UDP source port (ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
+ Constant used to signify a 'repeat' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>indev_name</code></em></span></dt><dd><p>
+ Name of network device packet was received on (if known)
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netfilter-ip-local-in.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netfilter-ip-post-routing.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netfilter.ip.local_in</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netfilter.ip.post_routing</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netfilter.ip.post_routing</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netfilter-ip-local-out.html" title="probe::netfilter.ip.local_out"><link rel="next" href="API-netfilter-ip-pre-routing.html" title="probe::netfilter.ip.pre_routing"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netfilter.ip.post_routing</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netfilter-ip-local-out.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-netfilter-ip-pre-routing.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netfilter-ip-post-routing"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netfilter.ip.post_routing —
Called immediately before an outgoing IP packet leaves the computer
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.ip.post_routing </pre></div><div class="refsect1"><a name="idm47245127735376"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ack</code></em></span></dt><dd><p>
- TCP ACK flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>fin</code></em></span></dt><dd><p>
- TCP FIN flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
- Constant used to signify a 'stop' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>rst</code></em></span></dt><dd><p>
- TCP RST flag (if protocol is TCP; ipv4 only)
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.ip.post_routing </pre></div><div class="refsect1"><a name="idm47511689581088"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
+ Packet protocol from driver (ipv4 only)
</p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
Protocol family -- either <span class="quote">“<span class="quote">ipv4</span>”</span> or <span class="quote">“<span class="quote">ipv6</span>”</span>
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_stolen</code></em></span></dt><dd><p>
- Constant used to signify a 'stolen' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
- IP address family
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
+ Constant used to signify an 'accept' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
+ Constant used to signify a 'queue' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
+ Address of net_device representing output device, 0 if unknown
</p></dd><dt><span class="term"><em class="parameter"><code>urg</code></em></span></dt><dd><p>
TCP URG flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
- The length of the packet buffer contents, in bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
- A string representing the destination IP address
- </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
- Packet protocol from driver (ipv4 only)
</p></dd><dt><span class="term"><em class="parameter"><code>sport</code></em></span></dt><dd><p>
TCP or UDP source port (ipv4 only)
</p></dd><dt><span class="term"><em class="parameter"><code>indev_name</code></em></span></dt><dd><p>
Name of network device packet was received on (if known)
- </p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
- Address of net_device representing input device, 0 if unknown
- </p></dd><dt><span class="term"><em class="parameter"><code>ipproto_tcp</code></em></span></dt><dd><p>
- Constant used to signify that the packet protocol is TCP
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
- Constant used to signify a 'queue' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
+ Constant used to signify a 'repeat' verdict
</p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
TCP or UDP destination port (ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
+ Constant used to signify a 'stop' verdict
</p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
Name of network device packet will be routed to (if known)
- </p></dd><dt><span class="term"><em class="parameter"><code>ipproto_udp</code></em></span></dt><dd><p>
- Constant used to signify that the packet protocol is UDP
</p></dd><dt><span class="term"><em class="parameter"><code>psh</code></em></span></dt><dd><p>
TCP PSH flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
- Constant used to signify an 'accept' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
- Address of net_device representing output device, 0 if unknown
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
- Constant used to signify a 'repeat' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>syn</code></em></span></dt><dd><p>
- TCP SYN flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>iphdr</code></em></span></dt><dd><p>
- Address of IP header
+ </p></dd><dt><span class="term"><em class="parameter"><code>fin</code></em></span></dt><dd><p>
+ TCP FIN flag (if protocol is TCP; ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
+ A string representing the destination IP address
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_stolen</code></em></span></dt><dd><p>
+ Constant used to signify a 'stolen' verdict
</p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
A string representing the source IP address
+ </p></dd><dt><span class="term"><em class="parameter"><code>iphdr</code></em></span></dt><dd><p>
+ Address of IP header
+ </p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
+ Address of net_device representing input device, 0 if unknown
+ </p></dd><dt><span class="term"><em class="parameter"><code>rst</code></em></span></dt><dd><p>
+ TCP RST flag (if protocol is TCP; ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>ack</code></em></span></dt><dd><p>
+ TCP ACK flag (if protocol is TCP; ipv4 only)
</p></dd><dt><span class="term"><em class="parameter"><code>nf_drop</code></em></span></dt><dd><p>
Constant used to signify a 'drop' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>syn</code></em></span></dt><dd><p>
+ TCP SYN flag (if protocol is TCP; ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
+ The length of the packet buffer contents, in bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>ipproto_tcp</code></em></span></dt><dd><p>
+ Constant used to signify that the packet protocol is TCP
+ </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ IP address family
+ </p></dd><dt><span class="term"><em class="parameter"><code>ipproto_udp</code></em></span></dt><dd><p>
+ Constant used to signify that the packet protocol is UDP
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netfilter-ip-local-out.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netfilter-ip-pre-routing.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netfilter.ip.local_out</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netfilter.ip.pre_routing</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::netfilter.ip.pre_routing</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netfilter-ip-post-routing.html" title="probe::netfilter.ip.post_routing"><link rel="next" href="API-sunrpc-clnt-bind-new-program.html" title="probe::sunrpc.clnt.bind_new_program"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::netfilter.ip.pre_routing</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netfilter-ip-post-routing.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-sunrpc-clnt-bind-new-program.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-netfilter-ip-pre-routing"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::netfilter.ip.pre_routing —
Called before an IP packet is routed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.ip.pre_routing </pre></div><div class="refsect1"><a name="idm47245127671872"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
- A string representing the source IP address
- </p></dd><dt><span class="term"><em class="parameter"><code>syn</code></em></span></dt><dd><p>
- TCP SYN flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>iphdr</code></em></span></dt><dd><p>
- Address of IP header
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_drop</code></em></span></dt><dd><p>
- Constant used to signify a 'drop' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
- Constant used to signify an 'accept' verdict
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">netfilter.ip.pre_routing </pre></div><div class="refsect1"><a name="idm47511689517472"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>nf_stolen</code></em></span></dt><dd><p>
+ Constant used to signify a 'stolen' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>fin</code></em></span></dt><dd><p>
+ TCP FIN flag (if protocol is TCP; ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
+ A string representing the destination IP address
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
+ Name of network device packet will be routed to (if known)
</p></dd><dt><span class="term"><em class="parameter"><code>psh</code></em></span></dt><dd><p>
TCP PSH flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>ipproto_udp</code></em></span></dt><dd><p>
- Constant used to signify that the packet protocol is UDP
- </p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
- Address of net_device representing output device, 0 if unknown
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
- Constant used to signify a 'repeat' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
+ Constant used to signify a 'stop' verdict
</p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
TCP or UDP destination port (ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>outdev_name</code></em></span></dt><dd><p>
- Name of network device packet will be routed to (if known)
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
- Constant used to signify a 'queue' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
- Address of net_device representing input device, 0 if unknown
- </p></dd><dt><span class="term"><em class="parameter"><code>indev_name</code></em></span></dt><dd><p>
- Name of network device packet was received on (if known)
- </p></dd><dt><span class="term"><em class="parameter"><code>ipproto_tcp</code></em></span></dt><dd><p>
- Constant used to signify that the packet protocol is TCP
- </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
- The length of the packet buffer contents, in bytes
</p></dd><dt><span class="term"><em class="parameter"><code>urg</code></em></span></dt><dd><p>
TCP URG flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
- IP address family
- </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
- Packet protocol from driver (ipv4 only)
</p></dd><dt><span class="term"><em class="parameter"><code>sport</code></em></span></dt><dd><p>
TCP or UDP source port (ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
- A string representing the destination IP address
- </p></dd><dt><span class="term"><em class="parameter"><code>rst</code></em></span></dt><dd><p>
- TCP RST flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_stolen</code></em></span></dt><dd><p>
- Constant used to signify a 'stolen' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>indev_name</code></em></span></dt><dd><p>
+ Name of network device packet was received on (if known)
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_repeat</code></em></span></dt><dd><p>
+ Constant used to signify a 'repeat' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_accept</code></em></span></dt><dd><p>
+ Constant used to signify an 'accept' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_queue</code></em></span></dt><dd><p>
+ Constant used to signify a 'queue' verdict
+ </p></dd><dt><span class="term"><em class="parameter"><code>outdev</code></em></span></dt><dd><p>
+ Address of net_device representing output device, 0 if unknown
+ </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
+ Packet protocol from driver (ipv4 only)
</p></dd><dt><span class="term"><em class="parameter"><code>pf</code></em></span></dt><dd><p>
Protocol family - either 'ipv4' or 'ipv6'
+ </p></dd><dt><span class="term"><em class="parameter"><code>ipproto_udp</code></em></span></dt><dd><p>
+ Constant used to signify that the packet protocol is UDP
+ </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ IP address family
+ </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
+ The length of the packet buffer contents, in bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>ipproto_tcp</code></em></span></dt><dd><p>
+ Constant used to signify that the packet protocol is TCP
+ </p></dd><dt><span class="term"><em class="parameter"><code>syn</code></em></span></dt><dd><p>
+ TCP SYN flag (if protocol is TCP; ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>nf_drop</code></em></span></dt><dd><p>
+ Constant used to signify a 'drop' verdict
</p></dd><dt><span class="term"><em class="parameter"><code>ack</code></em></span></dt><dd><p>
TCP ACK flag (if protocol is TCP; ipv4 only)
- </p></dd><dt><span class="term"><em class="parameter"><code>nf_stop</code></em></span></dt><dd><p>
- Constant used to signify a 'stop' verdict
- </p></dd><dt><span class="term"><em class="parameter"><code>fin</code></em></span></dt><dd><p>
- TCP FIN flag (if protocol is TCP; ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>rst</code></em></span></dt><dd><p>
+ TCP RST flag (if protocol is TCP; ipv4 only)
+ </p></dd><dt><span class="term"><em class="parameter"><code>indev</code></em></span></dt><dd><p>
+ Address of net_device representing input device, 0 if unknown
+ </p></dd><dt><span class="term"><em class="parameter"><code>iphdr</code></em></span></dt><dd><p>
+ Address of IP header
+ </p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
+ A string representing the source IP address
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netfilter-ip-post-routing.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sunrpc-clnt-bind-new-program.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netfilter.ip.post_routing</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::sunrpc.clnt.bind_new_program</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.aop.readpage</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfsderror.html" title="function::nfsderror"><link rel="next" href="API-nfs-aop-readpages.html" title="probe::nfs.aop.readpages"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.aop.readpage</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfsderror.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-aop-readpages.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-aop-readpage"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.aop.readpage —
NFS client synchronously reading a page
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.aop.readpage </pre></div><div class="refsect1"><a name="idm47245123316400"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rsize</code></em></span></dt><dd><p>
- read size (in bytes)
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.aop.readpage </pre></div><div class="refsect1"><a name="idm47511685162912"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ number of pages to be read in this execution
</p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
device identifier
- </p></dd><dt><span class="term"><em class="parameter"><code>__page</code></em></span></dt><dd><p>
- the address of page
- </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
- inode number
</p></dd><dt><span class="term"><em class="parameter"><code>sb_flag</code></em></span></dt><dd><p>
super block flags
- </p></dd><dt><span class="term"><em class="parameter"><code>file</code></em></span></dt><dd><p>
- file argument
+ </p></dd><dt><span class="term"><em class="parameter"><code>i_flag</code></em></span></dt><dd><p>
+ file flags
</p></dd><dt><span class="term"><em class="parameter"><code>page_index</code></em></span></dt><dd><p>
offset within mapping, can used a page identifier
and position identifier in the page frame
</p></dd><dt><span class="term"><em class="parameter"><code>i_size</code></em></span></dt><dd><p>
file length in bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- number of pages to be read in this execution
- </p></dd><dt><span class="term"><em class="parameter"><code>i_flag</code></em></span></dt><dd><p>
- file flags
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123295040"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
+ inode number
+ </p></dd><dt><span class="term"><em class="parameter"><code>__page</code></em></span></dt><dd><p>
+ the address of page
+ </p></dd><dt><span class="term"><em class="parameter"><code>file</code></em></span></dt><dd><p>
+ file argument
+ </p></dd><dt><span class="term"><em class="parameter"><code>rsize</code></em></span></dt><dd><p>
+ read size (in bytes)
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685141552"></a><h2>Description</h2><p>
Read the page over, only fires when a previous async
read operation failed
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfsderror.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-aop-readpages.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::nfsderror</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.aop.readpages</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.aop.readpages</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-aop-readpage.html" title="probe::nfs.aop.readpage"><link rel="next" href="API-nfs-aop-release-page.html" title="probe::nfs.aop.release_page"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.aop.readpages</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-aop-readpage.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-aop-release-page.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-aop-readpages"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.aop.readpages —
NFS client reading multiple pages
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.aop.readpages </pre></div><div class="refsect1"><a name="idm47245123286992"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- number of pages attempted to read in this execution
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.aop.readpages </pre></div><div class="refsect1"><a name="idm47511685133504"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rpages</code></em></span></dt><dd><p>
+ read size (in pages)
+ </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
+ inode number
+ </p></dd><dt><span class="term"><em class="parameter"><code>file</code></em></span></dt><dd><p>
+ filp argument
</p></dd><dt><span class="term"><em class="parameter"><code>rsize</code></em></span></dt><dd><p>
read size (in bytes)
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ number of pages attempted to read in this execution
</p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
device identifier
</p></dd><dt><span class="term"><em class="parameter"><code>nr_pages</code></em></span></dt><dd><p>
number of pages attempted to read in this execution
- </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
- inode number
- </p></dd><dt><span class="term"><em class="parameter"><code>file</code></em></span></dt><dd><p>
- filp argument
- </p></dd><dt><span class="term"><em class="parameter"><code>rpages</code></em></span></dt><dd><p>
- read size (in pages)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123271696"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685118208"></a><h2>Description</h2><p>
Fires when in readahead way, read several pages once
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-aop-readpage.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-aop-release-page.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.aop.readpage</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.aop.release_page</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.aop.release_page</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-aop-readpages.html" title="probe::nfs.aop.readpages"><link rel="next" href="API-nfs-aop-set-page-dirty.html" title="probe::nfs.aop.set_page_dirty"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.aop.release_page</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-aop-readpages.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-aop-set-page-dirty.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-aop-release-page"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.aop.release_page —
NFS client releasing page
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.aop.release_page </pre></div><div class="refsect1"><a name="idm47245123263648"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- release pages
- </p></dd><dt><span class="term"><em class="parameter"><code>page_index</code></em></span></dt><dd><p>
- offset within mapping, can used a page identifier
- and position identifier in the page frame
- </p></dd><dt><span class="term"><em class="parameter"><code>__page</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.aop.release_page </pre></div><div class="refsect1"><a name="idm47511685110208"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>__page</code></em></span></dt><dd><p>
the address of page
</p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
inode number
+ </p></dd><dt><span class="term"><em class="parameter"><code>page_index</code></em></span></dt><dd><p>
+ offset within mapping, can used a page identifier
+ and position identifier in the page frame
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ release pages
</p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
device identifier
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123252384"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685098944"></a><h2>Description</h2><p>
Fires when do a release operation on NFS.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-aop-readpages.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-aop-set-page-dirty.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.aop.readpages</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.aop.set_page_dirty</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.aop.set_page_dirty</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-aop-release-page.html" title="probe::nfs.aop.release_page"><link rel="next" href="API-nfs-aop-write-begin.html" title="probe::nfs.aop.write_begin"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.aop.set_page_dirty</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-aop-release-page.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-aop-write-begin.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-aop-set-page-dirty"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.aop.set_page_dirty —
NFS client marking page as dirty
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.aop.set_page_dirty </pre></div><div class="refsect1"><a name="idm47245123244336"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>__page</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.aop.set_page_dirty </pre></div><div class="refsect1"><a name="idm47511685090944"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>__page</code></em></span></dt><dd><p>
the address of page
</p></dd><dt><span class="term"><em class="parameter"><code>page_flag</code></em></span></dt><dd><p>
page flags
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123239136"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685085744"></a><h2>Description</h2><p>
This probe attaches to the generic __set_page_dirty_nobuffers function.
Thus, this probe is going to fire on many other file systems in
addition to the NFS client.
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.aop.write_begin</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-aop-set-page-dirty.html" title="probe::nfs.aop.set_page_dirty"><link rel="next" href="API-nfs-aop-write-end.html" title="probe::nfs.aop.write_end"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.aop.write_begin</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-aop-set-page-dirty.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-aop-write-end.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-aop-write-begin"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.aop.write_begin —
NFS client begin to write data
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.aop.write_begin </pre></div><div class="refsect1"><a name="idm47245123231008"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- write bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>page_index</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.aop.write_begin </pre></div><div class="refsect1"><a name="idm47511685077664"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>page_index</code></em></span></dt><dd><p>
offset within mapping, can used a page identifier
and position identifier in the page frame
- </p></dd><dt><span class="term"><em class="parameter"><code>to</code></em></span></dt><dd><p>
- end address of this write operation
- </p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
- start address of this write operation
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ write bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
+ device identifier
</p></dd><dt><span class="term"><em class="parameter"><code>__page</code></em></span></dt><dd><p>
the address of page
+ </p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
+ start address of this write operation
+ </p></dd><dt><span class="term"><em class="parameter"><code>to</code></em></span></dt><dd><p>
+ end address of this write operation
</p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
inode number
- </p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
- device identifier
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123215712"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685062368"></a><h2>Description</h2><p>
Occurs when write operation occurs on nfs. It prepare a page for writing,
look for a request corresponding to the page. If there
is one, and it belongs to another file, it flush it out
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.aop.write_end</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-aop-write-begin.html" title="probe::nfs.aop.write_begin"><link rel="next" href="API-nfs-aop-writepage.html" title="probe::nfs.aop.writepage"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.aop.write_end</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-aop-write-begin.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-aop-writepage.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-aop-write-end"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.aop.write_end —
NFS client complete writing data
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.aop.write_end </pre></div><div class="refsect1"><a name="idm47245123207424"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>page_index</code></em></span></dt><dd><p>
- offset within mapping, can used a page identifier and position identifier in the page frame
- </p></dd><dt><span class="term"><em class="parameter"><code>i_size</code></em></span></dt><dd><p>
- file length in bytes
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.aop.write_end </pre></div><div class="refsect1"><a name="idm47511685054080"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>__page</code></em></span></dt><dd><p>
+ the address of page
+ </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
+ inode number
</p></dd><dt><span class="term"><em class="parameter"><code>to</code></em></span></dt><dd><p>
end address of this write operation
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- write bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
+ start address of this write operation
+ </p></dd><dt><span class="term"><em class="parameter"><code>sb_flag</code></em></span></dt><dd><p>
+ super block flags
</p></dd><dt><span class="term"><em class="parameter"><code>i_flag</code></em></span></dt><dd><p>
file flags
+ </p></dd><dt><span class="term"><em class="parameter"><code>page_index</code></em></span></dt><dd><p>
+ offset within mapping, can used a page identifier and position identifier in the page frame
+ </p></dd><dt><span class="term"><em class="parameter"><code>i_size</code></em></span></dt><dd><p>
+ file length in bytes
</p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
device identifier
- </p></dd><dt><span class="term"><em class="parameter"><code>sb_flag</code></em></span></dt><dd><p>
- super block flags
- </p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
- start address of this write operation
- </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
- inode number
- </p></dd><dt><span class="term"><em class="parameter"><code>__page</code></em></span></dt><dd><p>
- the address of page
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123186128"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ write bytes
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685032784"></a><h2>Description</h2><p>
Fires when do a write operation on nfs,
often after prepare_write
</p><p>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.aop.writepage</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-aop-write-end.html" title="probe::nfs.aop.write_end"><link rel="next" href="API-nfs-aop-writepages.html" title="probe::nfs.aop.writepages"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.aop.writepage</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-aop-write-end.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-aop-writepages.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-aop-writepage"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.aop.writepage —
NFS client writing a mapped page to the NFS server
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.aop.writepage </pre></div><div class="refsect1"><a name="idm47245123177728"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
- inode number
- </p></dd><dt><span class="term"><em class="parameter"><code>__page</code></em></span></dt><dd><p>
- the address of page
- </p></dd><dt><span class="term"><em class="parameter"><code>sb_flag</code></em></span></dt><dd><p>
- super block flags
- </p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
- device identifier
- </p></dd><dt><span class="term"><em class="parameter"><code>wsize</code></em></span></dt><dd><p>
- write size
- </p></dd><dt><span class="term"><em class="parameter"><code>for_reclaim</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.aop.writepage </pre></div><div class="refsect1"><a name="idm47511685024384"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>for_reclaim</code></em></span></dt><dd><p>
a flag of writeback_control,
indicates if it's invoked from the page allocator
+ </p></dd><dt><span class="term"><em class="parameter"><code>__page</code></em></span></dt><dd><p>
+ the address of page
</p></dd><dt><span class="term"><em class="parameter"><code>i_state</code></em></span></dt><dd><p>
inode state flags
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- number of pages to be written in this execution
+ </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
+ inode number
+ </p></dd><dt><span class="term"><em class="parameter"><code>sb_flag</code></em></span></dt><dd><p>
+ super block flags
+ </p></dd><dt><span class="term"><em class="parameter"><code>i_flag</code></em></span></dt><dd><p>
+ file flags
</p></dd><dt><span class="term"><em class="parameter"><code>page_index</code></em></span></dt><dd><p>
offset within mapping,
can used a page identifier and position identifier in the page frame
</p></dd><dt><span class="term"><em class="parameter"><code>for_kupdate</code></em></span></dt><dd><p>
a flag of writeback_control,
indicates if it's a kupdate writeback
- </p></dd><dt><span class="term"><em class="parameter"><code>i_flag</code></em></span></dt><dd><p>
- file flags
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123152224"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>wsize</code></em></span></dt><dd><p>
+ write size
+ </p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
+ device identifier
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ number of pages to be written in this execution
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511684998880"></a><h2>Description</h2><p>
The priority of wb is decided by the flags
<em class="parameter"><code>for_reclaim</code></em> and <em class="parameter"><code>for_kupdate</code></em>.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-aop-write-end.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-aop-writepages.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.aop.write_end</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.aop.writepages</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.aop.writepages</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-aop-writepage.html" title="probe::nfs.aop.writepage"><link rel="next" href="API-nfs-fop-aio-read.html" title="probe::nfs.fop.aio_read"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.aop.writepages</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-aop-writepage.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-fop-aio-read.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-aop-writepages"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.aop.writepages —
NFS client writing several dirty pages to the NFS server
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.aop.writepages </pre></div><div class="refsect1"><a name="idm47245123142784"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>nr_to_write</code></em></span></dt><dd><p>
- number of pages attempted to be written in this execution
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.aop.writepages </pre></div><div class="refsect1"><a name="idm47511684989440"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
+ inode number
+ </p></dd><dt><span class="term"><em class="parameter"><code>wpages</code></em></span></dt><dd><p>
+ write size (in pages)
</p></dd><dt><span class="term"><em class="parameter"><code>for_reclaim</code></em></span></dt><dd><p>
a flag of writeback_control,
indicates if it's invoked from the page allocator
- </p></dd><dt><span class="term"><em class="parameter"><code>wsize</code></em></span></dt><dd><p>
- write size
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ number of pages attempted to be written in this execution
</p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
device identifier
- </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
- inode number
+ </p></dd><dt><span class="term"><em class="parameter"><code>nr_to_write</code></em></span></dt><dd><p>
+ number of pages attempted to be written in this execution
+ </p></dd><dt><span class="term"><em class="parameter"><code>wsize</code></em></span></dt><dd><p>
+ write size
</p></dd><dt><span class="term"><em class="parameter"><code>for_kupdate</code></em></span></dt><dd><p>
a flag of writeback_control,
indicates if it's a kupdate writeback
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- number of pages attempted to be written in this execution
- </p></dd><dt><span class="term"><em class="parameter"><code>wpages</code></em></span></dt><dd><p>
- write size (in pages)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123125392"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511684972048"></a><h2>Description</h2><p>
The priority of wb is decided by the flags
<em class="parameter"><code>for_reclaim</code></em> and <em class="parameter"><code>for_kupdate</code></em>.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-aop-writepage.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-fop-aio-read.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.aop.writepage</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.fop.aio_read</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.fop.aio_read</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-aop-writepages.html" title="probe::nfs.aop.writepages"><link rel="next" href="API-nfs-fop-aio-write.html" title="probe::nfs.fop.aio_write"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.fop.aio_read</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-aop-writepages.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-fop-aio-write.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-fop-aio-read"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.fop.aio_read —
NFS client aio_read file operation
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.aio_read </pre></div><div class="refsect1"><a name="idm47245123116048"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>buf</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.aio_read </pre></div><div class="refsect1"><a name="idm47511684962656"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>buf</code></em></span></dt><dd><p>
the address of buf in user space
</p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
read bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>file_name</code></em></span></dt><dd><p>
- file name
- </p></dd><dt><span class="term"><em class="parameter"><code>parent_name</code></em></span></dt><dd><p>
- parent dir name
- </p></dd><dt><span class="term"><em class="parameter"><code>cache_time</code></em></span></dt><dd><p>
- when we started read-caching this inode
- </p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
- device identifier
</p></dd><dt><span class="term"><em class="parameter"><code>attrtimeo</code></em></span></dt><dd><p>
how long the cached information is assumed to be valid.
We need to revalidate the cached attrs for this inode
if jiffies - read_cache_jiffies > attrtimeo.
- </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
- inode number
- </p></dd><dt><span class="term"><em class="parameter"><code>pos</code></em></span></dt><dd><p>
- current position of file
</p></dd><dt><span class="term"><em class="parameter"><code>cache_valid</code></em></span></dt><dd><p>
cache related bit mask flag
+ </p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
+ device identifier
+ </p></dd><dt><span class="term"><em class="parameter"><code>parent_name</code></em></span></dt><dd><p>
+ parent dir name
+ </p></dd><dt><span class="term"><em class="parameter"><code>pos</code></em></span></dt><dd><p>
+ current position of file
+ </p></dd><dt><span class="term"><em class="parameter"><code>cache_time</code></em></span></dt><dd><p>
+ when we started read-caching this inode
+ </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
+ inode number
+ </p></dd><dt><span class="term"><em class="parameter"><code>file_name</code></em></span></dt><dd><p>
+ file name
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-aop-writepages.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-fop-aio-write.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.aop.writepages</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.fop.aio_write</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.fop.aio_write</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-fop-aio-read.html" title="probe::nfs.fop.aio_read"><link rel="next" href="API-nfs-fop-check-flags.html" title="probe::nfs.fop.check_flags"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.fop.aio_write</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-fop-aio-read.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-fop-check-flags.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-fop-aio-write"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.fop.aio_write —
NFS client aio_write file operation
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.aio_write </pre></div><div class="refsect1"><a name="idm47245123087824"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.aio_write </pre></div><div class="refsect1"><a name="idm47511684934384"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>buf</code></em></span></dt><dd><p>
+ the address of buf in user space
+ </p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
+ read bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
device identifier
- </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
- inode number
</p></dd><dt><span class="term"><em class="parameter"><code>pos</code></em></span></dt><dd><p>
offset of the file
</p></dd><dt><span class="term"><em class="parameter"><code>parent_name</code></em></span></dt><dd><p>
parent dir name
- </p></dd><dt><span class="term"><em class="parameter"><code>buf</code></em></span></dt><dd><p>
- the address of buf in user space
+ </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
+ inode number
</p></dd><dt><span class="term"><em class="parameter"><code>file_name</code></em></span></dt><dd><p>
file name
- </p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
- read bytes
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-fop-aio-read.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-fop-check-flags.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.fop.aio_read</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.fop.check_flags</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.fop.check_flags</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-fop-aio-write.html" title="probe::nfs.fop.aio_write"><link rel="next" href="API-nfs-fop-flush.html" title="probe::nfs.fop.flush"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.fop.check_flags</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-fop-aio-write.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-fop-flush.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-fop-check-flags"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.fop.check_flags —
NFS client checking flag operation
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.check_flags </pre></div><div class="refsect1"><a name="idm47245123065952"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>flag</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.check_flags </pre></div><div class="refsect1"><a name="idm47511684912512"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>flag</code></em></span></dt><dd><p>
file flag
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-fop-aio-write.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-fop-flush.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.fop.aio_write</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.fop.flush</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.fop.flush</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-fop-check-flags.html" title="probe::nfs.fop.check_flags"><link rel="next" href="API-nfs-fop-fsync.html" title="probe::nfs.fop.fsync"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.fop.flush</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-fop-check-flags.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-fop-fsync.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-fop-flush"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.fop.flush —
NFS client flush file operation
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.flush </pre></div><div class="refsect1"><a name="idm47245123056048"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mode</code></em></span></dt><dd><p>
- file mode
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.flush </pre></div><div class="refsect1"><a name="idm47511684902656"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
+ device identifier
</p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
inode number
- </p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
- device identifier
</p></dd><dt><span class="term"><em class="parameter"><code>ndirty</code></em></span></dt><dd><p>
number of dirty page
+ </p></dd><dt><span class="term"><em class="parameter"><code>mode</code></em></span></dt><dd><p>
+ file mode
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-fop-check-flags.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-fop-fsync.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.fop.check_flags</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.fop.fsync</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.fop.fsync</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-fop-flush.html" title="probe::nfs.fop.flush"><link rel="next" href="API-nfs-fop-llseek.html" title="probe::nfs.fop.llseek"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.fop.fsync</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-fop-flush.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-fop-llseek.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-fop-fsync"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.fop.fsync —
NFS client fsync operation
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.fsync </pre></div><div class="refsect1"><a name="idm47245123040176"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.fsync </pre></div><div class="refsect1"><a name="idm47511684886832"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ndirty</code></em></span></dt><dd><p>
+ number of dirty pages
+ </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
inode number
</p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
device identifier
- </p></dd><dt><span class="term"><em class="parameter"><code>ndirty</code></em></span></dt><dd><p>
- number of dirty pages
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-fop-flush.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-fop-llseek.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.fop.flush</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.fop.llseek</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.fop.llseek</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-fop-fsync.html" title="probe::nfs.fop.fsync"><link rel="next" href="API-nfs-fop-lock.html" title="probe::nfs.fop.lock"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.fop.llseek</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-fop-fsync.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-fop-lock.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-fop-llseek"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.fop.llseek —
NFS client llseek operation
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.llseek </pre></div><div class="refsect1"><a name="idm47245123026304"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.llseek </pre></div><div class="refsect1"><a name="idm47511684873008"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>whence_str</code></em></span></dt><dd><p>
+ symbolic string representation of the position to seek from
+ </p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
+ the offset of the file will be repositioned
+ </p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
device identifier
- </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
- inode number
</p></dd><dt><span class="term"><em class="parameter"><code>whence</code></em></span></dt><dd><p>
the position to seek from
- </p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
- the offset of the file will be repositioned
- </p></dd><dt><span class="term"><em class="parameter"><code>whence_str</code></em></span></dt><dd><p>
- symbolic string representation of the position to seek from
+ </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
+ inode number
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-fop-fsync.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-fop-lock.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.fop.fsync</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.fop.lock</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.fop.lock</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-fop-llseek.html" title="probe::nfs.fop.llseek"><link rel="next" href="API-nfs-fop-mmap.html" title="probe::nfs.fop.mmap"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.fop.lock</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-fop-llseek.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-fop-mmap.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-fop-lock"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.fop.lock —
NFS client file lock operation
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.lock </pre></div><div class="refsect1"><a name="idm47245123008400"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.lock </pre></div><div class="refsect1"><a name="idm47511684855104"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>i_mode</code></em></span></dt><dd><p>
+ file type and access rights
+ </p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
device identifier
- </p></dd><dt><span class="term"><em class="parameter"><code>cmd</code></em></span></dt><dd><p>
- cmd arguments
- </p></dd><dt><span class="term"><em class="parameter"><code>fl_end</code></em></span></dt><dd><p>
- ending offset of locked region
- </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
- inode number
</p></dd><dt><span class="term"><em class="parameter"><code>fl_type</code></em></span></dt><dd><p>
lock type
- </p></dd><dt><span class="term"><em class="parameter"><code>fl_start</code></em></span></dt><dd><p>
- starting offset of locked region
- </p></dd><dt><span class="term"><em class="parameter"><code>i_mode</code></em></span></dt><dd><p>
- file type and access rights
+ </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
+ inode number
+ </p></dd><dt><span class="term"><em class="parameter"><code>fl_end</code></em></span></dt><dd><p>
+ ending offset of locked region
+ </p></dd><dt><span class="term"><em class="parameter"><code>cmd</code></em></span></dt><dd><p>
+ cmd arguments
</p></dd><dt><span class="term"><em class="parameter"><code>fl_flag</code></em></span></dt><dd><p>
lock flags
+ </p></dd><dt><span class="term"><em class="parameter"><code>fl_start</code></em></span></dt><dd><p>
+ starting offset of locked region
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-fop-llseek.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-fop-mmap.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.fop.llseek</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.fop.mmap</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.fop.mmap</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-fop-lock.html" title="probe::nfs.fop.lock"><link rel="next" href="API-nfs-fop-open.html" title="probe::nfs.fop.open"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.fop.mmap</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-fop-lock.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-fop-open.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-fop-mmap"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.fop.mmap —
NFS client mmap operation
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.mmap </pre></div><div class="refsect1"><a name="idm47245122984480"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>vm_start</code></em></span></dt><dd><p>
- start address within vm_mm
- </p></dd><dt><span class="term"><em class="parameter"><code>vm_flag</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.mmap </pre></div><div class="refsect1"><a name="idm47511684831232"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>vm_flag</code></em></span></dt><dd><p>
vm flags
- </p></dd><dt><span class="term"><em class="parameter"><code>cache_valid</code></em></span></dt><dd><p>
- cache related bit mask flag
- </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
- inode number
- </p></dd><dt><span class="term"><em class="parameter"><code>cache_time</code></em></span></dt><dd><p>
- when we started read-caching this inode
</p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
device identifier
+ </p></dd><dt><span class="term"><em class="parameter"><code>buf</code></em></span></dt><dd><p>
+ the address of buf in user space
</p></dd><dt><span class="term"><em class="parameter"><code>attrtimeo</code></em></span></dt><dd><p>
how long the cached information is assumed to be valid.
We need to revalidate the cached attrs for this inode
if jiffies - read_cache_jiffies > attrtimeo.
- </p></dd><dt><span class="term"><em class="parameter"><code>parent_name</code></em></span></dt><dd><p>
- parent dir name
+ </p></dd><dt><span class="term"><em class="parameter"><code>cache_valid</code></em></span></dt><dd><p>
+ cache related bit mask flag
</p></dd><dt><span class="term"><em class="parameter"><code>vm_end</code></em></span></dt><dd><p>
the first byte after end address within vm_mm
+ </p></dd><dt><span class="term"><em class="parameter"><code>cache_time</code></em></span></dt><dd><p>
+ when we started read-caching this inode
</p></dd><dt><span class="term"><em class="parameter"><code>file_name</code></em></span></dt><dd><p>
file name
- </p></dd><dt><span class="term"><em class="parameter"><code>buf</code></em></span></dt><dd><p>
- the address of buf in user space
+ </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
+ inode number
+ </p></dd><dt><span class="term"><em class="parameter"><code>parent_name</code></em></span></dt><dd><p>
+ parent dir name
+ </p></dd><dt><span class="term"><em class="parameter"><code>vm_start</code></em></span></dt><dd><p>
+ start address within vm_mm
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-fop-lock.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-fop-open.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.fop.lock</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.fop.open</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.fop.open</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-fop-mmap.html" title="probe::nfs.fop.mmap"><link rel="next" href="API-nfs-fop-read.html" title="probe::nfs.fop.read"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.fop.open</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-fop-mmap.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-fop-read.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-fop-open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.fop.open —
NFS client file open operation
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.open </pre></div><div class="refsect1"><a name="idm47245122954176"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>file_name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.open </pre></div><div class="refsect1"><a name="idm47511684800976"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>file_name</code></em></span></dt><dd><p>
file name
- </p></dd><dt><span class="term"><em class="parameter"><code>i_size</code></em></span></dt><dd><p>
- file length in bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>flag</code></em></span></dt><dd><p>
- file flag
</p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
inode number
+ </p></dd><dt><span class="term"><em class="parameter"><code>flag</code></em></span></dt><dd><p>
+ file flag
+ </p></dd><dt><span class="term"><em class="parameter"><code>i_size</code></em></span></dt><dd><p>
+ file length in bytes
</p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
device identifier
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-fop-mmap.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-fop-read.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.fop.mmap</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.fop.read</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.fop.read_iter</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-fop-read.html" title="probe::nfs.fop.read"><link rel="next" href="API-nfs-fop-release.html" title="probe::nfs.fop.release"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.fop.read_iter</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-fop-read.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-fop-release.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-fop-read-iter"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.fop.read_iter —
NFS client read_iter file operation
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.read_iter </pre></div><div class="refsect1"><a name="idm47245122925024"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>parent_name</code></em></span></dt><dd><p>
- parent dir name
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.read_iter </pre></div><div class="refsect1"><a name="idm47511684771824"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cache_time</code></em></span></dt><dd><p>
+ when we started read-caching this inode
</p></dd><dt><span class="term"><em class="parameter"><code>file_name</code></em></span></dt><dd><p>
file name
+ </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
+ inode number
+ </p></dd><dt><span class="term"><em class="parameter"><code>pos</code></em></span></dt><dd><p>
+ current position of file
+ </p></dd><dt><span class="term"><em class="parameter"><code>parent_name</code></em></span></dt><dd><p>
+ parent dir name
+ </p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
+ device identifier
</p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
read bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>cache_valid</code></em></span></dt><dd><p>
- cache related bit mask flag
</p></dd><dt><span class="term"><em class="parameter"><code>attrtimeo</code></em></span></dt><dd><p>
how long the cached information is assumed to be valid.
We need to revalidate the cached attrs for this inode
if jiffies - read_cache_jiffies > attrtimeo.
- </p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
- device identifier
- </p></dd><dt><span class="term"><em class="parameter"><code>cache_time</code></em></span></dt><dd><p>
- when we started read-caching this inode
- </p></dd><dt><span class="term"><em class="parameter"><code>pos</code></em></span></dt><dd><p>
- current position of file
- </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
- inode number
+ </p></dd><dt><span class="term"><em class="parameter"><code>cache_valid</code></em></span></dt><dd><p>
+ cache related bit mask flag
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-fop-read.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-fop-release.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.fop.read</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.fop.release</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.fop.read</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-fop-open.html" title="probe::nfs.fop.open"><link rel="next" href="API-nfs-fop-read-iter.html" title="probe::nfs.fop.read_iter"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.fop.read</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-fop-open.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-fop-read-iter.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-fop-read"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.fop.read —
NFS client read operation
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.read </pre></div><div class="refsect1"><a name="idm47245122936352"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>devname</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.read </pre></div><div class="refsect1"><a name="idm47511684783104"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>devname</code></em></span></dt><dd><p>
block device name
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245122933152"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511684779904"></a><h2>Description</h2><p>
SystemTap uses the vfs.do_sync_read probe to implement this probe
and as a result will get operations other than the NFS client read
operations.
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.fop.release</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-fop-read-iter.html" title="probe::nfs.fop.read_iter"><link rel="next" href="API-nfs-fop-sendfile.html" title="probe::nfs.fop.sendfile"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.fop.release</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-fop-read-iter.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-fop-sendfile.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-fop-release"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.fop.release —
NFS client release page operation
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.release </pre></div><div class="refsect1"><a name="idm47245122898832"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mode</code></em></span></dt><dd><p>
- file mode
- </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.release </pre></div><div class="refsect1"><a name="idm47511684745584"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
inode number
+ </p></dd><dt><span class="term"><em class="parameter"><code>mode</code></em></span></dt><dd><p>
+ file mode
</p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
device identifier
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-fop-read-iter.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-fop-sendfile.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.fop.read_iter</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.fop.sendfile</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.fop.sendfile</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-fop-release.html" title="probe::nfs.fop.release"><link rel="next" href="API-nfs-fop-write.html" title="probe::nfs.fop.write"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.fop.sendfile</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-fop-release.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-fop-write.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-fop-sendfile"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.fop.sendfile —
NFS client send file operation
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.sendfile </pre></div><div class="refsect1"><a name="idm47245122884976"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
- read bytes
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.sendfile </pre></div><div class="refsect1"><a name="idm47511684731728"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cache_time</code></em></span></dt><dd><p>
+ when we started read-caching this inode
</p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
inode number
+ </p></dd><dt><span class="term"><em class="parameter"><code>ppos</code></em></span></dt><dd><p>
+ current position of file
+ </p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
+ read bytes
</p></dd><dt><span class="term"><em class="parameter"><code>attrtimeo</code></em></span></dt><dd><p>
how long the cached information is assumed to be valid.
We need to revalidate the cached attrs for this inode
if jiffies - read_cache_jiffies > attrtimeo.
- </p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
- device identifier
- </p></dd><dt><span class="term"><em class="parameter"><code>cache_time</code></em></span></dt><dd><p>
- when we started read-caching this inode
</p></dd><dt><span class="term"><em class="parameter"><code>cache_valid</code></em></span></dt><dd><p>
cache related bit mask flag
- </p></dd><dt><span class="term"><em class="parameter"><code>ppos</code></em></span></dt><dd><p>
- current position of file
+ </p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
+ device identifier
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-fop-release.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-fop-write.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.fop.release</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.fop.write</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.fop.write_iter</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-fop-write.html" title="probe::nfs.fop.write"><link rel="next" href="API-nfs-proc-commit.html" title="probe::nfs.proc.commit"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.fop.write_iter</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-fop-write.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-proc-commit.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-fop-write-iter"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.fop.write_iter —
NFS client write_iter file operation
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.write_iter </pre></div><div class="refsect1"><a name="idm47245122851472"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>parent_name</code></em></span></dt><dd><p>
- parent dir name
- </p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.write_iter </pre></div><div class="refsect1"><a name="idm47511684698176"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
read bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>file_name</code></em></span></dt><dd><p>
- file name
- </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
- inode number
- </p></dd><dt><span class="term"><em class="parameter"><code>pos</code></em></span></dt><dd><p>
- offset of the file
</p></dd><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
device identifier
+ </p></dd><dt><span class="term"><em class="parameter"><code>pos</code></em></span></dt><dd><p>
+ offset of the file
+ </p></dd><dt><span class="term"><em class="parameter"><code>parent_name</code></em></span></dt><dd><p>
+ parent dir name
+ </p></dd><dt><span class="term"><em class="parameter"><code>ino</code></em></span></dt><dd><p>
+ inode number
+ </p></dd><dt><span class="term"><em class="parameter"><code>file_name</code></em></span></dt><dd><p>
+ file name
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-fop-write.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-proc-commit.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.fop.write</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.proc.commit</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.fop.write</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-fop-sendfile.html" title="probe::nfs.fop.sendfile"><link rel="next" href="API-nfs-fop-write-iter.html" title="probe::nfs.fop.write_iter"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.fop.write</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-fop-sendfile.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-fop-write-iter.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-fop-write"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.fop.write —
NFS client write operation
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.write </pre></div><div class="refsect1"><a name="idm47245122862800"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>devname</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.fop.write </pre></div><div class="refsect1"><a name="idm47511684709504"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>devname</code></em></span></dt><dd><p>
block device name
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245122859600"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511684706304"></a><h2>Description</h2><p>
SystemTap uses the vfs.do_sync_write probe to implement this probe
and as a result will get operations other than the NFS client write
operations.
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.proc.commit_done</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-proc-commit.html" title="probe::nfs.proc.commit"><link rel="next" href="API-nfs-proc-commit-setup.html" title="probe::nfs.proc.commit_setup"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.proc.commit_done</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-proc-commit.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-proc-commit-setup.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-proc-commit-done"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.proc.commit_done —
NFS client response to a commit RPC task
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.commit_done </pre></div><div class="refsect1"><a name="idm47245122807568"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.commit_done </pre></div><div class="refsect1"><a name="idm47511684654224"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
+ NFS version
+ </p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
+ IP address of server
+ </p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
number of bytes committed
- </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
- transfer protocol
- </p></dd><dt><span class="term"><em class="parameter"><code>valid</code></em></span></dt><dd><p>
- fattr->valid, indicates which fields are valid
</p></dd><dt><span class="term"><em class="parameter"><code>status</code></em></span></dt><dd><p>
result of last operation
- </p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
- IP address of server
+ </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
+ transfer protocol
</p></dd><dt><span class="term"><em class="parameter"><code>timestamp</code></em></span></dt><dd><p>
V4 timestamp, which is used for lease renewal
- </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
- NFS version
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245122792144"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>valid</code></em></span></dt><dd><p>
+ fattr->valid, indicates which fields are valid
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511684638800"></a><h2>Description</h2><p>
Fires when a reply to a commit RPC task is received
or some commit operation error occur (timeout or socket shutdown).
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-proc-commit.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-proc-commit-setup.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.proc.commit</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.proc.commit_setup</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.proc.commit_setup</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-proc-commit-done.html" title="probe::nfs.proc.commit_done"><link rel="next" href="API-nfs-proc-create.html" title="probe::nfs.proc.create"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.proc.commit_setup</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-proc-commit-done.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-proc-create.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-proc-commit-setup"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.proc.commit_setup —
NFS client setting up a commit RPC task
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.commit_setup </pre></div><div class="refsect1"><a name="idm47245122784064"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>bitmask1</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.commit_setup </pre></div><div class="refsect1"><a name="idm47511684630672"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
+ the file offset
+ </p></dd><dt><span class="term"><em class="parameter"><code>bitmask1</code></em></span></dt><dd><p>
V4 bitmask representing the set of attributes supported
on this filesystem
- </p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
- the file offset
- </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
- transfer protocol
</p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
bytes in this commit
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- bytes in this commit
</p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
NFS version
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ bytes in this commit
+ </p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
+ IP address of server
</p></dd><dt><span class="term"><em class="parameter"><code>bitmask0</code></em></span></dt><dd><p>
V4 bitmask representing the set of attributes supported
on this filesystem
- </p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
- IP address of server
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245122766640"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
+ transfer protocol
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511684613248"></a><h2>Description</h2><p>
The commit_setup function is used to setup a commit RPC task.
Is is not doing the actual commit operation.
It does not exist in NFSv2.
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.proc.commit</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-fop-write-iter.html" title="probe::nfs.fop.write_iter"><link rel="next" href="API-nfs-proc-commit-done.html" title="probe::nfs.proc.commit_done"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.proc.commit</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-fop-write-iter.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-proc-commit-done.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-proc-commit"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.proc.commit —
NFS client committing data on server
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.commit </pre></div><div class="refsect1"><a name="idm47245122831584"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
- transfer protocol
- </p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
- the file offset
- </p></dd><dt><span class="term"><em class="parameter"><code>bitmask1</code></em></span></dt><dd><p>
- V4 bitmask representing the set of attributes supported
- on this filesystem
- </p></dd><dt><span class="term"><em class="parameter"><code>bitmask0</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.commit </pre></div><div class="refsect1"><a name="idm47511684678288"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>bitmask0</code></em></span></dt><dd><p>
V4 bitmask representing the set of attributes supported
on this filesystem
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ read bytes in this execution
</p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
IP address of server
</p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
NFS version
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- read bytes in this execution
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245122816176"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
+ transfer protocol
+ </p></dd><dt><span class="term"><em class="parameter"><code>bitmask1</code></em></span></dt><dd><p>
+ V4 bitmask representing the set of attributes supported
+ on this filesystem
+ </p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
+ the file offset
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511684662880"></a><h2>Description</h2><p>
All the nfs.proc.commit kernel functions were removed in kernel
commit 200baa in December 2006, so these probes do not exist on Linux
2.6.21 and newer kernels.
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.proc.create</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-proc-commit-setup.html" title="probe::nfs.proc.commit_setup"><link rel="next" href="API-nfs-proc-handle-exception.html" title="probe::nfs.proc.handle_exception"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.proc.create</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-proc-commit-setup.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-proc-handle-exception.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-proc-create"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.proc.create —
NFS client creating file on server
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.create </pre></div><div class="refsect1"><a name="idm47245122758560"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>filelen</code></em></span></dt><dd><p>
- length of file name
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.create </pre></div><div class="refsect1"><a name="idm47511684605168"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
+ file handle of parent dir
</p></dd><dt><span class="term"><em class="parameter"><code>flag</code></em></span></dt><dd><p>
indicates create mode (only for NFSv3 and NFSv4)
- </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
- NFS version (the function is used for all NFS version)
</p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
IP address of server
- </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
- transfer protocol
+ </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
+ NFS version (the function is used for all NFS version)
</p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
file name
- </p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
- file handle of parent dir
+ </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
+ transfer protocol
+ </p></dd><dt><span class="term"><em class="parameter"><code>filelen</code></em></span></dt><dd><p>
+ length of file name
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-proc-commit-setup.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-proc-handle-exception.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.proc.commit_setup</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.proc.handle_exception</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.proc.handle_exception</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-proc-create.html" title="probe::nfs.proc.create"><link rel="next" href="API-nfs-proc-lookup.html" title="probe::nfs.proc.lookup"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.proc.handle_exception</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-proc-create.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-proc-lookup.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-proc-handle-exception"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.proc.handle_exception —
NFS client handling an NFSv4 exception
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.handle_exception </pre></div><div class="refsect1"><a name="idm47245122736384"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>errorcode</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.handle_exception </pre></div><div class="refsect1"><a name="idm47511684583040"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>errorcode</code></em></span></dt><dd><p>
indicates the type of error
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245122733184"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511684579840"></a><h2>Description</h2><p>
This is the error handling routine for processes for NFSv4.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-proc-create.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-proc-lookup.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.proc.create</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.proc.lookup</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.proc.lookup</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-proc-handle-exception.html" title="probe::nfs.proc.handle_exception"><link rel="next" href="API-nfs-proc-open.html" title="probe::nfs.proc.open"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.proc.lookup</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-proc-handle-exception.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-proc-open.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-proc-lookup"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.proc.lookup —
NFS client opens/searches a file on server
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.lookup </pre></div><div class="refsect1"><a name="idm47245122725184"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name_len</code></em></span></dt><dd><p>
- the length of file name
- </p></dd><dt><span class="term"><em class="parameter"><code>bitmask0</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.lookup </pre></div><div class="refsect1"><a name="idm47511684571888"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>bitmask1</code></em></span></dt><dd><p>
V4 bitmask representing the set of attributes supported
on this filesystem
- </p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
- IP address of server
- </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
- transfer protocol
</p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
the name of file which client opens/searches on server
</p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
NFS version
- </p></dd><dt><span class="term"><em class="parameter"><code>bitmask1</code></em></span></dt><dd><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>name_len</code></em></span></dt><dd><p>
+ the length of file name
+ </p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
+ IP address of server
+ </p></dd><dt><span class="term"><em class="parameter"><code>bitmask0</code></em></span></dt><dd><p>
V4 bitmask representing the set of attributes supported
on this filesystem
+ </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
+ transfer protocol
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-proc-handle-exception.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-proc-open.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.proc.handle_exception</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.proc.open</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.proc.open</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-proc-lookup.html" title="probe::nfs.proc.lookup"><link rel="next" href="API-nfs-proc-read.html" title="probe::nfs.proc.read"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.proc.open</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-proc-lookup.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-proc-read.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-proc-open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.proc.open —
NFS client allocates file read/write context information
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.open </pre></div><div class="refsect1"><a name="idm47245122702992"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
- transfer protocol
- </p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
- file name
- </p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
- IP address of server
- </p></dd><dt><span class="term"><em class="parameter"><code>mode</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.open </pre></div><div class="refsect1"><a name="idm47511684549696"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mode</code></em></span></dt><dd><p>
file mode
- </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
- NFS version (the function is used for all NFS version)
</p></dd><dt><span class="term"><em class="parameter"><code>flag</code></em></span></dt><dd><p>
file flag
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245122689728"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
+ NFS version (the function is used for all NFS version)
+ </p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
+ IP address of server
+ </p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
+ file name
+ </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
+ transfer protocol
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511684536432"></a><h2>Description</h2><p>
Allocate file read/write context information
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-proc-lookup.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-proc-read.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.proc.lookup</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.proc.read</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.proc.read_done</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-proc-read.html" title="probe::nfs.proc.read"><link rel="next" href="API-nfs-proc-read-setup.html" title="probe::nfs.proc.read_setup"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.proc.read_done</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-proc-read.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-proc-read-setup.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-proc-read-done"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.proc.read_done —
NFS client response to a read RPC task
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.read_done </pre></div><div class="refsect1"><a name="idm47245122660192"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
- number of bytes read
- </p></dd><dt><span class="term"><em class="parameter"><code>status</code></em></span></dt><dd><p>
- result of last operation
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.read_done </pre></div><div class="refsect1"><a name="idm47511684506896"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>timestamp</code></em></span></dt><dd><p>
+ V4 timestamp, which is used for lease renewal
</p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
transfer protocol
- </p></dd><dt><span class="term"><em class="parameter"><code>timestamp</code></em></span></dt><dd><p>
- V4 timestamp, which is used for lease renewal
+ </p></dd><dt><span class="term"><em class="parameter"><code>status</code></em></span></dt><dd><p>
+ result of last operation
</p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
IP address of server
</p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
NFS version
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245122646896"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
+ number of bytes read
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511684493600"></a><h2>Description</h2><p>
Fires when a reply to a read RPC task is received or some read error occurs
(timeout or socket shutdown).
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-proc-read.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-proc-read-setup.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.proc.read</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.proc.read_setup</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.proc.read_setup</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-proc-read-done.html" title="probe::nfs.proc.read_done"><link rel="next" href="API-nfs-proc-release.html" title="probe::nfs.proc.release"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.proc.read_setup</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-proc-read-done.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-proc-release.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-proc-read-setup"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.proc.read_setup —
NFS client setting up a read RPC task
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.read_setup </pre></div><div class="refsect1"><a name="idm47245122638816"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
- read bytes in this execution
- </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
- transfer protocol
- </p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.read_setup </pre></div><div class="refsect1"><a name="idm47511684485520"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
the file offset
+ </p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
+ read bytes in this execution
</p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
IP address of server
- </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
- NFS version
</p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
read bytes in this execution
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245122625552"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
+ NFS version
+ </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
+ transfer protocol
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511684472256"></a><h2>Description</h2><p>
The read_setup function is used to setup a read RPC task.
It is not doing the actual read operation.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-proc-read-done.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-proc-release.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.proc.read_done</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.proc.release</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.proc.read</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-proc-open.html" title="probe::nfs.proc.open"><link rel="next" href="API-nfs-proc-read-done.html" title="probe::nfs.proc.read_done"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.proc.read</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-proc-open.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-proc-read-done.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-proc-read"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.proc.read —
NFS client synchronously reads file from server
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.read </pre></div><div class="refsect1"><a name="idm47245122681744"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.read </pre></div><div class="refsect1"><a name="idm47511684528448"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
+ NFS version
+ </p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
IP address of server
+ </p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
+ the file offset
</p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
read bytes in this execution
- </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
- NFS version
</p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
transfer protocol
</p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
used to set task->tk_flags in rpc_init_task function
- </p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
- the file offset
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245122668336"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511684515040"></a><h2>Description</h2><p>
All the nfs.proc.read kernel functions were removed in kernel commit
8e0969 in December 2006, so these probes do not exist on Linux
2.6.21 and newer kernels.
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.proc.release</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-proc-read-setup.html" title="probe::nfs.proc.read_setup"><link rel="next" href="API-nfs-proc-remove.html" title="probe::nfs.proc.remove"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.proc.release</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-proc-read-setup.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-proc-remove.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-proc-release"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.proc.release —
NFS client releases file read/write context information
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.release </pre></div><div class="refsect1"><a name="idm47245122617536"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
- file name
- </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
- transfer protocol
- </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
- NFS version (the function is used for all NFS version)
- </p></dd><dt><span class="term"><em class="parameter"><code>flag</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.release </pre></div><div class="refsect1"><a name="idm47511684464304"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>flag</code></em></span></dt><dd><p>
file flag
</p></dd><dt><span class="term"><em class="parameter"><code>mode</code></em></span></dt><dd><p>
file mode
+ </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
+ transfer protocol
+ </p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
+ file name
</p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
IP address of server
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245122604272"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
+ NFS version (the function is used for all NFS version)
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511684451040"></a><h2>Description</h2><p>
Release file read/write context information
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-proc-read-setup.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-proc-remove.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.proc.read_setup</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.proc.remove</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.proc.remove</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-proc-release.html" title="probe::nfs.proc.release"><link rel="next" href="API-nfs-proc-rename.html" title="probe::nfs.proc.rename"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.proc.remove</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-proc-release.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-proc-rename.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-proc-remove"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.proc.remove —
NFS client removes a file on server
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.remove </pre></div><div class="refsect1"><a name="idm47245122596288"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
- IP address of server
- </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
- NFS version (the function is used for all NFS version)
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.remove </pre></div><div class="refsect1"><a name="idm47511684443056"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
+ transfer protocol
</p></dd><dt><span class="term"><em class="parameter"><code>filelen</code></em></span></dt><dd><p>
length of file name
- </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
- transfer protocol
+ </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
+ NFS version (the function is used for all NFS version)
+ </p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
+ IP address of server
</p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
file name
</p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.proc.rename_done</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-proc-rename.html" title="probe::nfs.proc.rename"><link rel="next" href="API-nfs-proc-rename-setup.html" title="probe::nfs.proc.rename_setup"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.proc.rename_done</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-proc-rename.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-proc-rename-setup.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-proc-rename-done"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.proc.rename_done —
NFS client response to a rename RPC task
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.rename_done </pre></div><div class="refsect1"><a name="idm47245122550144"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.rename_done </pre></div><div class="refsect1"><a name="idm47511684396864"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
transfer protocol
+ </p></dd><dt><span class="term"><em class="parameter"><code>timestamp</code></em></span></dt><dd><p>
+ V4 timestamp, which is used for lease renewal
+ </p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
+ IP address of server
+ </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
+ NFS version
</p></dd><dt><span class="term"><em class="parameter"><code>status</code></em></span></dt><dd><p>
result of last operation
</p></dd><dt><span class="term"><em class="parameter"><code>old_fh</code></em></span></dt><dd><p>
file handle of old parent dir
- </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
- NFS version
</p></dd><dt><span class="term"><em class="parameter"><code>new_fh</code></em></span></dt><dd><p>
file handle of new parent dir
- </p></dd><dt><span class="term"><em class="parameter"><code>timestamp</code></em></span></dt><dd><p>
- V4 timestamp, which is used for lease renewal
- </p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
- IP address of server
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245122534800"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511684381520"></a><h2>Description</h2><p>
Fires when a reply to a rename RPC task is received or some rename
error occurs (timeout or socket shutdown).
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-proc-rename.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-proc-rename-setup.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.proc.rename</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.proc.rename_setup</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.proc.rename_setup</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-proc-rename-done.html" title="probe::nfs.proc.rename_done"><link rel="next" href="API-nfs-proc-write.html" title="probe::nfs.proc.write"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.proc.rename_setup</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-proc-rename-done.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-proc-write.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-proc-rename-setup"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.proc.rename_setup —
NFS client setting up a rename RPC task
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.rename_setup </pre></div><div class="refsect1"><a name="idm47245122526688"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.rename_setup </pre></div><div class="refsect1"><a name="idm47511684373408"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
file handle of parent dir
- </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
- transfer protocol
</p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
IP address of server
</p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
NFS version
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245122517488"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
+ transfer protocol
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511684364208"></a><h2>Description</h2><p>
The rename_setup function is used to setup a rename RPC task.
Is is not doing the actual rename operation.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-proc-rename-done.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-proc-write.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.proc.rename_done</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.proc.write</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.proc.rename</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-proc-remove.html" title="probe::nfs.proc.remove"><link rel="next" href="API-nfs-proc-rename-done.html" title="probe::nfs.proc.rename_done"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.proc.rename</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-proc-remove.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-proc-rename-done.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-proc-rename"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.proc.rename —
NFS client renames a file on server
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.rename </pre></div><div class="refsect1"><a name="idm47245122576336"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>old_filelen</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.rename </pre></div><div class="refsect1"><a name="idm47511684423056"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>old_name</code></em></span></dt><dd><p>
+ old file name
+ </p></dd><dt><span class="term"><em class="parameter"><code>old_filelen</code></em></span></dt><dd><p>
length of old file name
</p></dd><dt><span class="term"><em class="parameter"><code>old_fh</code></em></span></dt><dd><p>
file handle of old parent dir
- </p></dd><dt><span class="term"><em class="parameter"><code>new_filelen</code></em></span></dt><dd><p>
- length of new file name
+ </p></dd><dt><span class="term"><em class="parameter"><code>new_fh</code></em></span></dt><dd><p>
+ file handle of new parent dir
+ </p></dd><dt><span class="term"><em class="parameter"><code>new_name</code></em></span></dt><dd><p>
+ new file name
</p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
transfer protocol
</p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
IP address of server
- </p></dd><dt><span class="term"><em class="parameter"><code>new_name</code></em></span></dt><dd><p>
- new file name
- </p></dd><dt><span class="term"><em class="parameter"><code>new_fh</code></em></span></dt><dd><p>
- file handle of new parent dir
</p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
NFS version (the function is used for all NFS version)
- </p></dd><dt><span class="term"><em class="parameter"><code>old_name</code></em></span></dt><dd><p>
- old file name
+ </p></dd><dt><span class="term"><em class="parameter"><code>new_filelen</code></em></span></dt><dd><p>
+ length of new file name
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-proc-remove.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-proc-rename-done.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.proc.remove</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.proc.rename_done</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.proc.write_done</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-proc-write.html" title="probe::nfs.proc.write"><link rel="next" href="API-nfs-proc-write-setup.html" title="probe::nfs.proc.write_setup"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.proc.write_done</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-proc-write.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-proc-write-setup.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-proc-write-done"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.proc.write_done —
NFS client response to a write RPC task
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.write_done </pre></div><div class="refsect1"><a name="idm47245122483776"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
- NFS version
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.write_done </pre></div><div class="refsect1"><a name="idm47511684330560"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>status</code></em></span></dt><dd><p>
+ result of last operation
+ </p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
+ number of bytes written
</p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
IP address of server
+ </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
+ NFS version
+ </p></dd><dt><span class="term"><em class="parameter"><code>valid</code></em></span></dt><dd><p>
+ fattr->valid, indicates which fields are valid
</p></dd><dt><span class="term"><em class="parameter"><code>timestamp</code></em></span></dt><dd><p>
V4 timestamp, which is used for lease renewal
</p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
transfer protocol
- </p></dd><dt><span class="term"><em class="parameter"><code>valid</code></em></span></dt><dd><p>
- fattr->valid, indicates which fields are valid
- </p></dd><dt><span class="term"><em class="parameter"><code>status</code></em></span></dt><dd><p>
- result of last operation
- </p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
- number of bytes written
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245122468352"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511684315136"></a><h2>Description</h2><p>
Fires when a reply to a write RPC task is received or some write error occurs
(timeout or socket shutdown).
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-proc-write.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-proc-write-setup.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.proc.write</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.proc.write_setup</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.proc.write_setup</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-proc-write-done.html" title="probe::nfs.proc.write_done"><link rel="next" href="API-nfsd-close.html" title="probe::nfsd.close"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.proc.write_setup</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-proc-write-done.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfsd-close.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-proc-write-setup"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.proc.write_setup —
NFS client setting up a write RPC task
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.write_setup </pre></div><div class="refsect1"><a name="idm47245122460288"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
- NFS version
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- bytes written in this execution
- </p></dd><dt><span class="term"><em class="parameter"><code>bitmask0</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.write_setup </pre></div><div class="refsect1"><a name="idm47511684307072"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>bitmask0</code></em></span></dt><dd><p>
V4 bitmask representing the set of attributes supported
on this filesystem
+ </p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
+ bytes written in this execution
+ </p></dd><dt><span class="term"><em class="parameter"><code>how</code></em></span></dt><dd><p>
+ used to set args.stable. The stable value could be:
+ NFS_UNSTABLE,NFS_DATA_SYNC,NFS_FILE_SYNC
+ (in nfs.proc3.write_setup and nfs.proc4.write_setup)
</p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
IP address of server
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ bytes written in this execution
+ </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
+ NFS version
+ </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
+ transfer protocol
</p></dd><dt><span class="term"><em class="parameter"><code>bitmask1</code></em></span></dt><dd><p>
V4 bitmask representing the set of attributes supported
on this filesystem
- </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
- transfer protocol
</p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
the file offset
- </p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
- bytes written in this execution
- </p></dd><dt><span class="term"><em class="parameter"><code>how</code></em></span></dt><dd><p>
- used to set args.stable. The stable value could be:
- NFS_UNSTABLE,NFS_DATA_SYNC,NFS_FILE_SYNC
- (in nfs.proc3.write_setup and nfs.proc4.write_setup)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245122440720"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511684287504"></a><h2>Description</h2><p>
The write_setup function is used to setup a write RPC task.
It is not doing the actual write operation.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-proc-write-done.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfsd-close.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.proc.write_done</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfsd.close</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfs.proc.write</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-proc-rename-setup.html" title="probe::nfs.proc.rename_setup"><link rel="next" href="API-nfs-proc-write-done.html" title="probe::nfs.proc.write_done"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfs.proc.write</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-proc-rename-setup.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfs-proc-write-done.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfs-proc-write"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfs.proc.write —
NFS client synchronously writes file to server
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.write </pre></div><div class="refsect1"><a name="idm47245122509440"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- read bytes in this execution
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfs.proc.write </pre></div><div class="refsect1"><a name="idm47511684356208"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
+ used to set task->tk_flags in rpc_init_task function
+ </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
+ transfer protocol
</p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
NFS version
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ read bytes in this execution
</p></dd><dt><span class="term"><em class="parameter"><code>server_ip</code></em></span></dt><dd><p>
IP address of server
</p></dd><dt><span class="term"><em class="parameter"><code>bitmask0</code></em></span></dt><dd><p>
</p></dd><dt><span class="term"><em class="parameter"><code>bitmask1</code></em></span></dt><dd><p>
V4 bitmask representing the set of attributes supported
on this filesystem
- </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
- used to set task->tk_flags in rpc_init_task function
</p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
the file offset
- </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
- transfer protocol
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245122491872"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511684338640"></a><h2>Description</h2><p>
All the nfs.proc.write kernel functions were removed in kernel commit
200baa in December 2006, so these probes do not exist on Linux
2.6.21 and newer kernels.
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfsd.close</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfs-proc-write-setup.html" title="probe::nfs.proc.write_setup"><link rel="next" href="API-nfsd-commit.html" title="probe::nfsd.commit"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfsd.close</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfs-proc-write-setup.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfsd-commit.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfsd-close"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfsd.close —
NFS server closing a file for client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.close </pre></div><div class="refsect1"><a name="idm47245122432672"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.close </pre></div><div class="refsect1"><a name="idm47511684279456"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
file name
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfs-proc-write-setup.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfsd-commit.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfs.proc.write_setup</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfsd.commit</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfsd.commit</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfsd-close.html" title="probe::nfsd.close"><link rel="next" href="API-nfsd-create.html" title="probe::nfsd.create"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfsd.commit</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfsd-close.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfsd-create.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfsd-commit"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfsd.commit —
NFS server committing all pending writes to stable storage
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.commit </pre></div><div class="refsect1"><a name="idm47245122422784"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
- the offset of file
- </p></dd><dt><span class="term"><em class="parameter"><code>flag</code></em></span></dt><dd><p>
- indicates whether this execution is a sync operation
- </p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.commit </pre></div><div class="refsect1"><a name="idm47511684269568"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
read bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
- the ip address of client
+ </p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
+ the offset of file
</p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
read bytes
</p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
file handle (the first part is the length of the file handle)
+ </p></dd><dt><span class="term"><em class="parameter"><code>flag</code></em></span></dt><dd><p>
+ indicates whether this execution is a sync operation
+ </p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
+ the ip address of client
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfsd-close.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfsd-create.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfsd.close</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfsd.create</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfsd.create</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfsd-commit.html" title="probe::nfsd.commit"><link rel="next" href="API-nfsd-createv3.html" title="probe::nfsd.createv3"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfsd.create</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfsd-commit.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfsd-createv3.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfsd-create"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfsd.create —
NFS server creating a file(regular,dir,device,fifo) for client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.create </pre></div><div class="refsect1"><a name="idm47245122402736"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>filelen</code></em></span></dt><dd><p>
- the length of file name
- </p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
- file handle (the first part is the length of the file handle)
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.create </pre></div><div class="refsect1"><a name="idm47511684249520"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
+ file type(regular,dir,device,fifo ...)
+ </p></dd><dt><span class="term"><em class="parameter"><code>iap_valid</code></em></span></dt><dd><p>
+ Attribute flags
</p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
the ip address of client
</p></dd><dt><span class="term"><em class="parameter"><code>iap_mode</code></em></span></dt><dd><p>
file access mode
- </p></dd><dt><span class="term"><em class="parameter"><code>iap_valid</code></em></span></dt><dd><p>
- Attribute flags
- </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
- file type(regular,dir,device,fifo ...)
+ </p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
+ file handle (the first part is the length of the file handle)
</p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
file name
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245122387424"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>filelen</code></em></span></dt><dd><p>
+ the length of file name
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511684234208"></a><h2>Description</h2><p>
Sometimes nfsd will call nfsd_create_v3 instead of this this probe point.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfsd-commit.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfsd-createv3.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfsd.commit</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfsd.createv3</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfsd.createv3</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfsd-create.html" title="probe::nfsd.create"><link rel="next" href="API-nfsd-dispatch.html" title="probe::nfsd.dispatch"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfsd.createv3</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfsd-create.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfsd-dispatch.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfsd-createv3"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfsd.createv3 —
NFS server creating a regular file or set file attributes for client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.createv3 </pre></div><div class="refsect1"><a name="idm47245122379424"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>truncp</code></em></span></dt><dd><p>
- trunp arguments, indicates if the file shouldbe truncate
- </p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
- file name
- </p></dd><dt><span class="term"><em class="parameter"><code>verifier</code></em></span></dt><dd><p>
- file attributes (atime,mtime,mode). It's used to reset file attributes for CREATE_EXCLUSIVE
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.createv3 </pre></div><div class="refsect1"><a name="idm47511684226160"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>createmode</code></em></span></dt><dd><p>
+ create mode .The possible values could be: NFS3_CREATE_EXCLUSIVE, NFS3_CREATE_UNCHECKED, or NFS3_CREATE_GUARDED
</p></dd><dt><span class="term"><em class="parameter"><code>iap_valid</code></em></span></dt><dd><p>
Attribute flags
</p></dd><dt><span class="term"><em class="parameter"><code>iap_mode</code></em></span></dt><dd><p>
the ip address of client
</p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
file handle (the first part is the length of the file handle)
- </p></dd><dt><span class="term"><em class="parameter"><code>createmode</code></em></span></dt><dd><p>
- create mode .The possible values could be: NFS3_CREATE_EXCLUSIVE, NFS3_CREATE_UNCHECKED, or NFS3_CREATE_GUARDED
+ </p></dd><dt><span class="term"><em class="parameter"><code>verifier</code></em></span></dt><dd><p>
+ file attributes (atime,mtime,mode). It's used to reset file attributes for CREATE_EXCLUSIVE
+ </p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
+ file name
</p></dd><dt><span class="term"><em class="parameter"><code>filelen</code></em></span></dt><dd><p>
the length of file name
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245122359904"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>truncp</code></em></span></dt><dd><p>
+ trunp arguments, indicates if the file shouldbe truncate
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511684206640"></a><h2>Description</h2><p>
This probepoints is only called by nfsd3_proc_create and
nfsd4_open when op_claim_type is NFS4_OPEN_CLAIM_NULL.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfsd-create.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfsd-dispatch.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfsd.create</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfsd.dispatch</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfsd.dispatch</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfsd-createv3.html" title="probe::nfsd.createv3"><link rel="next" href="API-nfsd-lookup.html" title="probe::nfsd.lookup"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfsd.dispatch</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfsd-createv3.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfsd-lookup.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfsd-dispatch"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfsd.dispatch —
NFS server receives an operation from client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.dispatch </pre></div><div class="refsect1"><a name="idm47245122351904"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>proto</code></em></span></dt><dd><p>
- transfer protocol
- </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
- nfs version
- </p></dd><dt><span class="term"><em class="parameter"><code>xid</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.dispatch </pre></div><div class="refsect1"><a name="idm47511684198592"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>xid</code></em></span></dt><dd><p>
transmission id
</p></dd><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
program number
+ </p></dd><dt><span class="term"><em class="parameter"><code>proto</code></em></span></dt><dd><p>
+ transfer protocol
</p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
the ip address of client
</p></dd><dt><span class="term"><em class="parameter"><code>proc</code></em></span></dt><dd><p>
procedure number
+ </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
+ nfs version
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfsd-createv3.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfsd-lookup.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfsd.createv3</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfsd.lookup</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfsd.lookup</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfsd-dispatch.html" title="probe::nfsd.dispatch"><link rel="next" href="API-nfsd-open.html" title="probe::nfsd.open"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfsd.lookup</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfsd-dispatch.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfsd-open.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfsd-lookup"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfsd.lookup —
NFS server opening or searching file for a file for client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.lookup </pre></div><div class="refsect1"><a name="idm47245122331920"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.lookup </pre></div><div class="refsect1"><a name="idm47511684178608"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>filelen</code></em></span></dt><dd><p>
+ the length of file name
+ </p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
file name
- </p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
- the ip address of client
</p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
file handle of parent dir(the first part is the length of the file handle)
- </p></dd><dt><span class="term"><em class="parameter"><code>filelen</code></em></span></dt><dd><p>
- the length of file name
+ </p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
+ the ip address of client
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfsd-dispatch.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfsd-open.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfsd.dispatch</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfsd.open</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfsd.open</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfsd-lookup.html" title="probe::nfsd.lookup"><link rel="next" href="API-nfsd-proc-commit.html" title="probe::nfsd.proc.commit"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfsd.open</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfsd-lookup.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfsd-proc-commit.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfsd-open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfsd.open —
NFS server opening a file for client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.open </pre></div><div class="refsect1"><a name="idm47245122315984"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.open </pre></div><div class="refsect1"><a name="idm47511684162624"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
type of file (regular file or dir)
</p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
file handle (the first part is the length of the file handle)
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfsd.proc.commit</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfsd-open.html" title="probe::nfsd.open"><link rel="next" href="API-nfsd-proc-create.html" title="probe::nfsd.proc.create"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfsd.proc.commit</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfsd-open.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfsd-proc-create.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfsd-proc-commit"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfsd.proc.commit —
NFS server performing a commit operation for client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.proc.commit </pre></div><div class="refsect1"><a name="idm47245122299920"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>uid</code></em></span></dt><dd><p>
- requester's user id
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- read bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.proc.commit </pre></div><div class="refsect1"><a name="idm47511684146672"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
file handle (the first part is the length of the file handle)
</p></dd><dt><span class="term"><em class="parameter"><code>proto</code></em></span></dt><dd><p>
transfer protocol
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ read bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>gid</code></em></span></dt><dd><p>
+ requester's group id
+ </p></dd><dt><span class="term"><em class="parameter"><code>uid</code></em></span></dt><dd><p>
+ requester's user id
</p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
the ip address of client
- </p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
- read bytes
</p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
nfs version
+ </p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
+ read bytes
</p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
the offset of file
- </p></dd><dt><span class="term"><em class="parameter"><code>gid</code></em></span></dt><dd><p>
- requester's group id
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfsd-open.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfsd-proc-create.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfsd.open</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfsd.proc.create</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfsd.proc.create</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfsd-proc-commit.html" title="probe::nfsd.proc.commit"><link rel="next" href="API-nfsd-proc-lookup.html" title="probe::nfsd.proc.lookup"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfsd.proc.create</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfsd-proc-commit.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfsd-proc-lookup.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfsd-proc-create"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfsd.proc.create —
NFS server creating a file for client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.proc.create </pre></div><div class="refsect1"><a name="idm47245122273904"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>gid</code></em></span></dt><dd><p>
- requester's group id
- </p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
- file name
- </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.proc.create </pre></div><div class="refsect1"><a name="idm47511684120608"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
nfs version
</p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
the ip address of client
- </p></dd><dt><span class="term"><em class="parameter"><code>filelen</code></em></span></dt><dd><p>
- length of file name
</p></dd><dt><span class="term"><em class="parameter"><code>uid</code></em></span></dt><dd><p>
requester's user id
+ </p></dd><dt><span class="term"><em class="parameter"><code>filelen</code></em></span></dt><dd><p>
+ length of file name
+ </p></dd><dt><span class="term"><em class="parameter"><code>gid</code></em></span></dt><dd><p>
+ requester's group id
+ </p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
+ file name
</p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
file handle (the first part is the length of the file handle)
</p></dd><dt><span class="term"><em class="parameter"><code>proto</code></em></span></dt><dd><p>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfsd.proc.lookup</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfsd-proc-create.html" title="probe::nfsd.proc.create"><link rel="next" href="API-nfsd-proc-read.html" title="probe::nfsd.proc.read"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfsd.proc.lookup</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfsd-proc-create.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfsd-proc-read.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfsd-proc-lookup"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfsd.proc.lookup —
NFS server opening or searching for a file for client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.proc.lookup </pre></div><div class="refsect1"><a name="idm47245122249920"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>proto</code></em></span></dt><dd><p>
- transfer protocol
- </p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
- file handle of parent dir (the first part is the length of the file handle)
- </p></dd><dt><span class="term"><em class="parameter"><code>uid</code></em></span></dt><dd><p>
- requester's user id
- </p></dd><dt><span class="term"><em class="parameter"><code>filelen</code></em></span></dt><dd><p>
- the length of file name
- </p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.proc.lookup </pre></div><div class="refsect1"><a name="idm47511684096672"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
the ip address of client
</p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
nfs version
</p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
file name
+ </p></dd><dt><span class="term"><em class="parameter"><code>proto</code></em></span></dt><dd><p>
+ transfer protocol
+ </p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
+ file handle of parent dir (the first part is the length of the file handle)
</p></dd><dt><span class="term"><em class="parameter"><code>gid</code></em></span></dt><dd><p>
requester's group id
+ </p></dd><dt><span class="term"><em class="parameter"><code>filelen</code></em></span></dt><dd><p>
+ the length of file name
+ </p></dd><dt><span class="term"><em class="parameter"><code>uid</code></em></span></dt><dd><p>
+ requester's user id
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfsd-proc-create.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfsd-proc-read.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfsd.proc.create</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfsd.proc.read</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfsd.proc.read</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfsd-proc-lookup.html" title="probe::nfsd.proc.lookup"><link rel="next" href="API-nfsd-proc-remove.html" title="probe::nfsd.proc.remove"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfsd.proc.read</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfsd-proc-lookup.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfsd-proc-remove.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfsd-proc-read"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfsd.proc.read —
NFS server reading file for client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.proc.read </pre></div><div class="refsect1"><a name="idm47245122225952"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>proto</code></em></span></dt><dd><p>
- transfer protocol
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.proc.read </pre></div><div class="refsect1"><a name="idm47511684072704"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
+ read bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>vlen</code></em></span></dt><dd><p>
+ read blocks
+ </p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
+ the offset of file
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ read bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>gid</code></em></span></dt><dd><p>
+ requester's group id
</p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
file handle (the first part is the length of the file handle)
+ </p></dd><dt><span class="term"><em class="parameter"><code>proto</code></em></span></dt><dd><p>
+ transfer protocol
+ </p></dd><dt><span class="term"><em class="parameter"><code>vec</code></em></span></dt><dd><p>
+ struct kvec, includes buf address in kernel address and length of each buffer
</p></dd><dt><span class="term"><em class="parameter"><code>uid</code></em></span></dt><dd><p>
requester's user id
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- read bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
- the ip address of client
</p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
nfs version
- </p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
- read bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>vec</code></em></span></dt><dd><p>
- struct kvec, includes buf address in kernel address and length of each buffer
- </p></dd><dt><span class="term"><em class="parameter"><code>gid</code></em></span></dt><dd><p>
- requester's group id
- </p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
- the offset of file
- </p></dd><dt><span class="term"><em class="parameter"><code>vlen</code></em></span></dt><dd><p>
- read blocks
+ </p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
+ the ip address of client
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfsd-proc-lookup.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfsd-proc-remove.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfsd.proc.lookup</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfsd.proc.remove</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfsd.proc.remove</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfsd-proc-read.html" title="probe::nfsd.proc.read"><link rel="next" href="API-nfsd-proc-rename.html" title="probe::nfsd.proc.rename"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfsd.proc.remove</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfsd-proc-read.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfsd-proc-rename.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfsd-proc-remove"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfsd.proc.remove —
NFS server removing a file for client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.proc.remove </pre></div><div class="refsect1"><a name="idm47245122195936"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>gid</code></em></span></dt><dd><p>
- requester's group id
- </p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
- file name
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.proc.remove </pre></div><div class="refsect1"><a name="idm47511684042688"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
+ the ip address of client
</p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
nfs version
- </p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
- the ip address of client
</p></dd><dt><span class="term"><em class="parameter"><code>filelen</code></em></span></dt><dd><p>
length of file name
</p></dd><dt><span class="term"><em class="parameter"><code>uid</code></em></span></dt><dd><p>
requester's user id
- </p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
- file handle (the first part is the length of the file handle)
+ </p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
+ file name
</p></dd><dt><span class="term"><em class="parameter"><code>proto</code></em></span></dt><dd><p>
transfer protocol
+ </p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
+ file handle (the first part is the length of the file handle)
+ </p></dd><dt><span class="term"><em class="parameter"><code>gid</code></em></span></dt><dd><p>
+ requester's group id
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfsd-proc-read.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfsd-proc-rename.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfsd.proc.read</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfsd.proc.rename</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfsd.proc.rename</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfsd-proc-remove.html" title="probe::nfsd.proc.remove"><link rel="next" href="API-nfsd-proc-write.html" title="probe::nfsd.proc.write"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfsd.proc.rename</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfsd-proc-remove.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfsd-proc-write.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfsd-proc-rename"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfsd.proc.rename —
NFS Server renaming a file for client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.proc.rename </pre></div><div class="refsect1"><a name="idm47245122171968"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>uid</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.proc.rename </pre></div><div class="refsect1"><a name="idm47511684018768"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>flen</code></em></span></dt><dd><p>
+ length of old file name
+ </p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
+ the ip address of client
+ </p></dd><dt><span class="term"><em class="parameter"><code>uid</code></em></span></dt><dd><p>
requester's user id
- </p></dd><dt><span class="term"><em class="parameter"><code>tlen</code></em></span></dt><dd><p>
- length of new file name
+ </p></dd><dt><span class="term"><em class="parameter"><code>gid</code></em></span></dt><dd><p>
+ requester's group id
</p></dd><dt><span class="term"><em class="parameter"><code>tname</code></em></span></dt><dd><p>
new file name
+ </p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
+ old file name
+ </p></dd><dt><span class="term"><em class="parameter"><code>tlen</code></em></span></dt><dd><p>
+ length of new file name
</p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
file handler of old path
- </p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
- the ip address of client
</p></dd><dt><span class="term"><em class="parameter"><code>tfh</code></em></span></dt><dd><p>
file handler of new path
- </p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
- old file name
- </p></dd><dt><span class="term"><em class="parameter"><code>flen</code></em></span></dt><dd><p>
- length of old file name
- </p></dd><dt><span class="term"><em class="parameter"><code>gid</code></em></span></dt><dd><p>
- requester's group id
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfsd-proc-remove.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfsd-proc-write.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfsd.proc.remove</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfsd.proc.write</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfsd.proc.write</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfsd-proc-rename.html" title="probe::nfsd.proc.rename"><link rel="next" href="API-nfsd-read.html" title="probe::nfsd.read"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfsd.proc.write</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfsd-proc-rename.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfsd-read.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfsd-proc-write"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfsd.proc.write —
NFS server writing data to file for client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.proc.write </pre></div><div class="refsect1"><a name="idm47245122145984"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
- the offset of file
- </p></dd><dt><span class="term"><em class="parameter"><code>gid</code></em></span></dt><dd><p>
- requester's group id
- </p></dd><dt><span class="term"><em class="parameter"><code>vlen</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.proc.write </pre></div><div class="refsect1"><a name="idm47511683992784"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>vlen</code></em></span></dt><dd><p>
read blocks
- </p></dd><dt><span class="term"><em class="parameter"><code>vec</code></em></span></dt><dd><p>
- struct kvec, includes buf address in kernel address and length of each buffer
</p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
read bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
- nfs version
- </p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
- the ip address of client
+ </p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
+ the offset of file
+ </p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
+ file handle (the first part is the length of the file handle)
+ </p></dd><dt><span class="term"><em class="parameter"><code>proto</code></em></span></dt><dd><p>
+ transfer protocol
</p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
read bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>gid</code></em></span></dt><dd><p>
+ requester's group id
+ </p></dd><dt><span class="term"><em class="parameter"><code>vec</code></em></span></dt><dd><p>
+ struct kvec, includes buf address in kernel address and length of each buffer
</p></dd><dt><span class="term"><em class="parameter"><code>uid</code></em></span></dt><dd><p>
requester's user id
- </p></dd><dt><span class="term"><em class="parameter"><code>proto</code></em></span></dt><dd><p>
- transfer protocol
- </p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
- file handle (the first part is the length of the file handle)
+ </p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
+ the ip address of client
+ </p></dd><dt><span class="term"><em class="parameter"><code>version</code></em></span></dt><dd><p>
+ nfs version
</p></dd><dt><span class="term"><em class="parameter"><code>stable</code></em></span></dt><dd><p>
argp->stable
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfsd-proc-rename.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfsd-read.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfsd.proc.rename</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfsd.read</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfsd.read</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfsd-proc-write.html" title="probe::nfsd.proc.write"><link rel="next" href="API-nfsd-rename.html" title="probe::nfsd.rename"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfsd.read</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfsd-proc-write.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfsd-rename.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfsd-read"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfsd.read —
NFS server reading data from a file for client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.read </pre></div><div class="refsect1"><a name="idm47245122114016"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.read </pre></div><div class="refsect1"><a name="idm47511683960800"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
+ the ip address of client
+ </p></dd><dt><span class="term"><em class="parameter"><code>vec</code></em></span></dt><dd><p>
+ struct kvec, includes buf address in kernel address and length of each buffer
+ </p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
+ file handle (the first part is the length of the file handle)
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ read bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
the offset of file
- </p></dd><dt><span class="term"><em class="parameter"><code>file</code></em></span></dt><dd><p>
- argument file, indicates if the file has been opened.
</p></dd><dt><span class="term"><em class="parameter"><code>vlen</code></em></span></dt><dd><p>
read blocks
- </p></dd><dt><span class="term"><em class="parameter"><code>vec</code></em></span></dt><dd><p>
- struct kvec, includes buf address in kernel address and length of each buffer
</p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
read bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
- the ip address of client
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- read bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
- file handle (the first part is the length of the file handle)
+ </p></dd><dt><span class="term"><em class="parameter"><code>file</code></em></span></dt><dd><p>
+ argument file, indicates if the file has been opened.
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfsd-proc-write.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfsd-rename.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfsd.proc.write</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfsd.rename</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfsd.rename</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfsd-read.html" title="probe::nfsd.read"><link rel="next" href="API-nfsd-unlink.html" title="probe::nfsd.unlink"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfsd.rename</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfsd-read.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfsd-unlink.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfsd-rename"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfsd.rename —
NFS server renaming a file for client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.rename </pre></div><div class="refsect1"><a name="idm47245122089936"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
- old file name
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.rename </pre></div><div class="refsect1"><a name="idm47511683936720"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>tfh</code></em></span></dt><dd><p>
+ file handler of new path
</p></dd><dt><span class="term"><em class="parameter"><code>flen</code></em></span></dt><dd><p>
length of old file name
- </p></dd><dt><span class="term"><em class="parameter"><code>tfh</code></em></span></dt><dd><p>
- file handler of new path
+ </p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
+ the ip address of client
</p></dd><dt><span class="term"><em class="parameter"><code>tname</code></em></span></dt><dd><p>
new file name
</p></dd><dt><span class="term"><em class="parameter"><code>tlen</code></em></span></dt><dd><p>
length of new file name
+ </p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
+ old file name
</p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
file handler of old path
- </p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
- the ip address of client
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfsd-read.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfsd-unlink.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfsd.read</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfsd.unlink</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfsd.unlink</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfsd-rename.html" title="probe::nfsd.rename"><link rel="next" href="API-nfsd-write.html" title="probe::nfsd.write"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfsd.unlink</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfsd-rename.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="API-nfsd-write.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfsd-unlink"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfsd.unlink —
NFS server removing a file or a directory for client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.unlink </pre></div><div class="refsect1"><a name="idm47245122068016"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.unlink </pre></div><div class="refsect1"><a name="idm47511683914736"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
file type (file or dir)
- </p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
- file name
+ </p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
+ the ip address of client
</p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
file handle (the first part is the length of the file handle)
+ </p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>
+ file name
</p></dd><dt><span class="term"><em class="parameter"><code>filelen</code></em></span></dt><dd><p>
the length of file name
- </p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
- the ip address of client
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfsd-rename.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfsd-write.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfsd.rename</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfsd.write</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::nfsd.write</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"><link rel="prev" href="API-nfsd-unlink.html" title="probe::nfsd.unlink"><link rel="next" href="speculation.stp.html" title="Chapter 32. Speculation"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::nfsd.write</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-nfsd-unlink.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Network File Storage Tapsets</th><td width="20%" align="right"> <a accesskey="n" href="speculation.stp.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-nfsd-write"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::nfsd.write —
NFS server writing data to a file for client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.write </pre></div><div class="refsect1"><a name="idm47245122050064"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">nfsd.write </pre></div><div class="refsect1"><a name="idm47511683896784"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
read bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
+ file handle (the first part is the length of the file handle)
+ </p></dd><dt><span class="term"><em class="parameter"><code>vec</code></em></span></dt><dd><p>
+ struct kvec, includes buf address in kernel address and length of each buffer
+ </p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
+ the ip address of client
</p></dd><dt><span class="term"><em class="parameter"><code>file</code></em></span></dt><dd><p>
argument file, indicates if the file has been opened.
+ </p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
+ read bytes
</p></dd><dt><span class="term"><em class="parameter"><code>vlen</code></em></span></dt><dd><p>
read blocks
</p></dd><dt><span class="term"><em class="parameter"><code>offset</code></em></span></dt><dd><p>
the offset of file
- </p></dd><dt><span class="term"><em class="parameter"><code>vec</code></em></span></dt><dd><p>
- struct kvec, includes buf address in kernel address and length of each buffer
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- read bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>fh</code></em></span></dt><dd><p>
- file handle (the first part is the length of the file handle)
- </p></dd><dt><span class="term"><em class="parameter"><code>client_ip</code></em></span></dt><dd><p>
- the ip address of client
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nfsd-unlink.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="speculation.stp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::nfsd.unlink</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 32. Speculation</td></tr></table></div></body></html>
Convert nfsd error number into string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
nfsderror:string(err:long)
-</pre></div><div class="refsect1"><a name="idm47245123327568"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>err</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685174080"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>err</code></em></span></dt><dd><p>
errnum
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123324416"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685170928"></a><h2>Description</h2><p>
This function returns a string for the error number
passed into the function.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="nfsd.stp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="nfsd.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-nfs-aop-readpage.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 31. Network File Storage Tapsets </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::nfs.aop.readpage</span></td></tr></table></div></body></html>
Human readable string for given nanoseconds
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
nsecs_to_string:string(nsecs:long)
-</pre></div><div class="refsect1"><a name="idm47245129722320"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>nsecs</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511691568032"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>nsecs</code></em></span></dt><dd><p>
Number of nanoseconds to translate.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129719104"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691564816"></a><h2>Description</h2><p>
Returns a string representing the number of
nanoseconds as a human readable string consisting of <span class="quote">“<span class="quote">XmY.ZZZZZZs</span>”</span>,
where X is the number of minutes, Y is the number of seconds and
Convert 32-bit long from network to host order
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ntohl:long(x:long)
-</pre></div><div class="refsect1"><a name="idm47245128463200"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511690309056"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>
Value to convert
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ip-ntop.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ntohll.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::ip_ntop</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::ntohll</span></td></tr></table></div></body></html>
Convert 64-bit long long from network to host order
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ntohll:long(x:long)
-</pre></div><div class="refsect1"><a name="idm47245128453328"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511690299120"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>
Value to convert
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ntohl.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ntohs.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::ntohl</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::ntohs</span></td></tr></table></div></body></html>
Convert 16-bit short from network to host order
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ntohs:long(x:long)
-</pre></div><div class="refsect1"><a name="idm47245128443456"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511690289264"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>
Value to convert
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ntohll.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-netdev-change-mac.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::ntohll</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::netdev.change_mac</span></td></tr></table></div></body></html>
Turns pages into a human readable string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
pages_to_string:string(pages:long)
-</pre></div><div class="refsect1"><a name="idm47245130145456"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pages</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511691988864"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pages</code></em></span></dt><dd><p>
Number of pages to translate.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130142400"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691985808"></a><h2>Description</h2><p>
Multiplies pages by <code class="function">page_size</code> to get the number of
bytes and returns the result of <code class="function">bytes_to_string</code>.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-mem-page-size.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="memory_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-proc-mem-data.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::mem_page_size</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::proc_mem_data</span></td></tr></table></div></body></html>
trigger a panic
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
panic(msg:string)
-</pre></div><div class="refsect1"><a name="idm47245124000320"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>msg</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685846640"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>msg</code></em></span></dt><dd><p>
message to pass to kernel's <code class="function">panic</code> function
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123996432"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685842752"></a><h2>Description</h2><p>
This function triggers an immediate panic of the running
kernel with a user-specified panic message.
It requires guru mode.
Returns the execname of a target process's parent process
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
pexecname:string()
-</pre></div><div class="refsect1"><a name="idm47245131280768"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693124176"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131279616"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693123024"></a><h2>Description</h2><p>
This function returns the execname of a target
process's parent procces.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-module-name.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-pgrp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::module_name</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::pgrp</span></td></tr></table></div></body></html>
Returns the process group ID of the current process
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
pgrp:long()
-</pre></div><div class="refsect1"><a name="idm47245131272192"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693115600"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131271040"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693114448"></a><h2>Description</h2><p>
This function returns the process group ID of the
current process.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-pexecname.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-pid.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::pexecname</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::pid</span></td></tr></table></div></body></html>
Returns the ID of a target process
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
pid:long()
-</pre></div><div class="refsect1"><a name="idm47245131263696"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693107104"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131262544"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693105952"></a><h2>Description</h2><p>
This function returns the ID of a target process.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-pgrp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-pid2execname.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::pgrp</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::pid2execname</span></td></tr></table></div></body></html>
The name of the given process identifier
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
pid2execname:string(pid:long)
-</pre></div><div class="refsect1"><a name="idm47245131255296"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511693098704"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
process identifier
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245131252240"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511693095648"></a><h2>Description</h2><p>
Return the name of the given process id.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-pid.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-pid2task.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::pid</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::pid2task</span></td></tr></table></div></body></html>
The task_struct of the given process identifier
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
pid2task:long(pid:long)
-</pre></div><div class="refsect1"><a name="idm47245131244992"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511693088400"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
process identifier
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245131241936"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511693085344"></a><h2>Description</h2><p>
Return the task struct of the given process id.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-pid2execname.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-pn.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::pid2execname</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::pn</span></td></tr></table></div></body></html>
Returns the active probe name
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
pn:string()
-</pre></div><div class="refsect1"><a name="idm47245131234688"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693078096"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131233536"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693076944"></a><h2>Description</h2><p>
This function returns the script-level probe point
associated with a currently running probe handler, including
wild-card expansion effects. Context: The current probe point.
Returns the label name parsed from the probe name
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
pnlabel:string()
-</pre></div><div class="refsect1"><a name="idm47245131226000"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693069408"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131224848"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693068256"></a><h2>Description</h2><p>
This returns the label name as parsed from the
script-level probe point. This function will only work if called
directly from the body of a '.label' probe point (i.e. no aliases).
-</p></div><div class="refsect1"><a name="idm47245131223488"></a><h2>Context</h2><p>
+</p></div><div class="refsect1"><a name="idm47511693066896"></a><h2>Context</h2><p>
The current probe point.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-pn.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-pointer-arg.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::pn</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::pointer_arg</span></td></tr></table></div></body></html>
Return function argument as pointer value
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
pointer_arg:long(n:long)
-</pre></div><div class="refsect1"><a name="idm47245131216240"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511693059648"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
index of argument to return
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245131213184"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511693056592"></a><h2>Description</h2><p>
Return the unsigned value of argument n, same as ulong_arg.
Can be used with any type of pointer.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-pnlabel.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-pp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::pnlabel</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::pp</span></td></tr></table></div></body></html>
Returns the active probe point
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
pp:string()
-</pre></div><div class="refsect1"><a name="idm47245131205808"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693049216"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131204656"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693048064"></a><h2>Description</h2><p>
This function returns the fully-resolved probe point
associated with a currently running probe handler, including alias
and wild-card expansion effects. Context: The current probe point.
Returns the function name parsed from <code class="function">pp</code>
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ppfunc:string()
-</pre></div><div class="refsect1"><a name="idm47245131196576"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693039984"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131195424"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693038832"></a><h2>Description</h2><p>
This returns the function name from the current <code class="function">pp</code>.
Not all <code class="function">pp</code> have functions in them, in which case "" is returned.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-pp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ppid.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::pp</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::ppid</span></td></tr></table></div></body></html>
Returns the process ID of a target process's parent process
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ppid:long()
-</pre></div><div class="refsect1"><a name="idm47245131186848"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693030256"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131185696"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693029104"></a><h2>Description</h2><p>
This function return the process ID of the target proccess's parent process.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ppfunc.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-print-backtrace.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::ppfunc</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::print_backtrace</span></td></tr></table></div></body></html>
Print kernel stack back trace
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
print_backtrace()
-</pre></div><div class="refsect1"><a name="idm47245131178352"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693021760"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131177200"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693020608"></a><h2>Description</h2><p>
This function is equivalent to print_stack(<code class="function">backtrace</code>),
except that deeper stack nesting may be supported. See print_ubacktrace
for user-space backtrace.
Print a register dump
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
print_regs()
-</pre></div><div class="refsect1"><a name="idm47245131169168"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511693012576"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131168016"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511693011424"></a><h2>Description</h2><p>
This function prints a register dump. Does nothing if no registers are available for the probe point.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-print-backtrace.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-print-stack.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::print_backtrace</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::print_stack</span></td></tr></table></div></body></html>
Print out kernel stack from string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
print_stack(stk:string)
-</pre></div><div class="refsect1"><a name="idm47245131160640"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stk</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511693004048"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stk</code></em></span></dt><dd><p>
String with list of hexadecimal addresses
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245131157584"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511693000992"></a><h2>Description</h2><p>
This function performs a symbolic lookup of the addresses
in the given string,
which is assumed to be the result of a prior call to
Print one line per address, including the address, the
name of the function containing the address, and an estimate of
its position within that function. Return nothing.
-</p></div><div class="refsect1"><a name="idm47245131155200"></a><h2>NOTE</h2><p>
+</p></div><div class="refsect1"><a name="idm47511692998608"></a><h2>NOTE</h2><p>
it is recommended to use <code class="function">print_syms</code> instead of this function.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-print-regs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-print-syms.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::print_regs</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::print_syms</span></td></tr></table></div></body></html>
Print out kernel stack from string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
print_syms(callers:string)
-</pre></div><div class="refsect1"><a name="idm47245131147328"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>callers</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692990736"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>callers</code></em></span></dt><dd><p>
String with list of hexadecimal (kernel) addresses
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245131144192"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692987600"></a><h2>Description</h2><p>
This function performs a symbolic lookup of the addresses
in the given string,
which are assumed to be the result of prior calls to <code class="function">stack</code>,
Print stack back trace for current user-space task.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
print_ubacktrace_brief()
-</pre></div><div class="refsect1"><a name="idm47245131122928"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692966336"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131121776"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692965184"></a><h2>Description</h2><p>
</p><p>
Equivalent to <code class="function">print_ubacktrace</code>, but output for each symbol is
shorter (just name and offset, or just the hex address of no symbol
could be found).
-</p></div><div class="refsect1"><a name="idm47245131119600"></a><h2>Note</h2><p>
+</p></div><div class="refsect1"><a name="idm47511692963008"></a><h2>Note</h2><p>
To get (full) backtraces for user space applications and shared
shared libraries not mentioned in the current script run stap with
-d /path/to/exe-or-so and/or add --ldd to load all needed unwind data.
Print stack back trace for current user-space task.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
print_ubacktrace()
-</pre></div><div class="refsect1"><a name="idm47245131134384"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692977792"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131133232"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692976640"></a><h2>Description</h2><p>
</p><p>
Equivalent to print_ustack(<code class="function">ubacktrace</code>), except that deeper stack
nesting may be supported. Returns nothing. See <code class="function">print_backtrace</code>
for kernel backtrace.
-</p></div><div class="refsect1"><a name="idm47245131130480"></a><h2>Note</h2><p>
+</p></div><div class="refsect1"><a name="idm47511692973888"></a><h2>Note</h2><p>
To get (full) backtraces for user space applications and shared
shared libraries not mentioned in the current script run stap with
-d /path/to/exe-or-so and/or add --ldd to load all needed unwind data.
Print out stack for the current task from string.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
print_ustack(stk:string)
-</pre></div><div class="refsect1"><a name="idm47245131112048"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stk</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692955456"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stk</code></em></span></dt><dd><p>
String with list of hexadecimal addresses for the current task.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245131108896"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692952304"></a><h2>Description</h2><p>
Perform a symbolic lookup of the addresses in the given string,
which is assumed to be the result of a prior call to
<code class="function">ubacktrace</code> for the current task.
Print one line per address, including the address, the
name of the function containing the address, and an estimate of
its position within that function. Return nothing.
-</p></div><div class="refsect1"><a name="idm47245131106528"></a><h2>NOTE</h2><p>
+</p></div><div class="refsect1"><a name="idm47511692949936"></a><h2>NOTE</h2><p>
it is recommended to use <code class="function">print_usyms</code> instead of this function.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-print-ubacktrace-brief.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-print-usyms.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::print_ubacktrace_brief</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::print_usyms</span></td></tr></table></div></body></html>
Print out user stack from string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
print_usyms(callers:string)
-</pre></div><div class="refsect1"><a name="idm47245131098656"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>callers</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692942064"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>callers</code></em></span></dt><dd><p>
String with list of hexadecimal (user) addresses
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245131095520"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692938928"></a><h2>Description</h2><p>
This function performs a symbolic lookup of the addresses
in the given string,
which are assumed to be the result of prior calls to <code class="function">ustack</code>,
Send a message to the kernel trace buffer
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
printk(level:long,msg:string)
-</pre></div><div class="refsect1"><a name="idm47245124893744"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>level</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686739744"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>level</code></em></span></dt><dd><p>
an integer for the severity level (0=KERN_EMERG ... 7=KERN_DEBUG)
</p></dd><dt><span class="term"><em class="parameter"><code>msg</code></em></span></dt><dd><p>
The formatted message string
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124888512"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686734512"></a><h2>Description</h2><p>
Print a line of text to the kernel dmesg/console with the
given severity. An implicit end-of-line is added. This function may
not be safely called from all kernel probe contexts, so is restricted
The low level probe handler type of the current probe.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
probe_type:string()
-</pre></div><div class="refsect1"><a name="idm47245131085712"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692929120"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131084560"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692927968"></a><h2>Description</h2><p>
Returns a short string describing the low level probe handler
type for the current probe point. This is for informational purposes only.
Depending on the low level probe handler different context functions can
Return the probe point's function name, if known
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
probefunc:string()
-</pre></div><div class="refsect1"><a name="idm47245131076704"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692920112"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131075552"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692918960"></a><h2>Description</h2><p>
This function returns the name of the function being probed
based on the current address, as computed by symname(<code class="function">addr</code>) or
usymname(<code class="function">uaddr</code>) depending on probe context (whether the probe is
a user probe or a kernel probe).
-</p></div><div class="refsect1"><a name="idm47245131072912"></a><h2>Please note</h2><p>
+</p></div><div class="refsect1"><a name="idm47511692916320"></a><h2>Please note</h2><p>
this function's behaviour differs between SystemTap 2.0
and earlier versions. Prior to 2.0, <code class="function">probefunc</code> obtained the function
name from the probe point string as returned by <code class="function">pp</code>, and used the
Return the probe point's kernel module name
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
probemod:string()
-</pre></div><div class="refsect1"><a name="idm47245131063328"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692906736"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131062176"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692905584"></a><h2>Description</h2><p>
This function returns the name of the kernel module
containing the probe point, if known.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-probefunc.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-pstrace.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::probefunc</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::pstrace</span></td></tr></table></div></body></html>
Program data size (data + stack) in pages
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
proc_mem_data_pid:long(pid:long)
-</pre></div><div class="refsect1"><a name="idm47245130125248"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511691968656"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
The pid of process to examine
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130122192"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691965600"></a><h2>Description</h2><p>
Returns the given process data size (data + stack)
in pages, or zero when the process doesn't exist or the number of
pages couldn't be retrieved.
Program data size (data + stack) in pages
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
proc_mem_data:long()
-</pre></div><div class="refsect1"><a name="idm47245130133824"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511691977232"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130132672"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511691976080"></a><h2>Description</h2><p>
Returns the current process data size (data + stack)
in pages, or zero when there is no current process or the number of
pages couldn't be retrieved.
Program resident set size in pages
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
proc_mem_rss_pid:long(pid:long)
-</pre></div><div class="refsect1"><a name="idm47245130106192"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511691949600"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
The pid of process to examine
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130103136"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691946544"></a><h2>Description</h2><p>
Returns the resident set size in pages of the given
process, or zero when the process doesn't exist or the number of
pages couldn't be retrieved.
Program resident set size in pages
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
proc_mem_rss:long()
-</pre></div><div class="refsect1"><a name="idm47245130114768"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511691958176"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130113616"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511691957024"></a><h2>Description</h2><p>
Returns the resident set size in pages of the current
process, or zero when there is no current process or the number of
pages couldn't be retrieved.
Program shared pages (from shared mappings)
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
proc_mem_shr_pid:long(pid:long)
-</pre></div><div class="refsect1"><a name="idm47245130087120"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511691930528"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
The pid of process to examine
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130084064"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691927472"></a><h2>Description</h2><p>
Returns the shared pages (from shared mappings) of the
given process, or zero when the process doesn't exist or the
number of pages couldn't be retrieved.
Program shared pages (from shared mappings)
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
proc_mem_shr:long()
-</pre></div><div class="refsect1"><a name="idm47245130095712"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511691939120"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130094560"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511691937968"></a><h2>Description</h2><p>
Returns the shared pages (from shared mappings) of the
current process, or zero when there is no current process or the
number of pages couldn't be retrieved.
Total program virtual memory size in pages
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
proc_mem_size_pid:long(pid:long)
-</pre></div><div class="refsect1"><a name="idm47245130068048"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511691911456"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
The pid of process to examine
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130064992"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691908400"></a><h2>Description</h2><p>
Returns the total virtual memory size in pages of the
given process, or zero when that process doesn't exist or the
number of pages couldn't be retrieved.
Total program virtual memory size in pages
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
proc_mem_size:long()
-</pre></div><div class="refsect1"><a name="idm47245130076640"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511691920048"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130075488"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511691918896"></a><h2>Description</h2><p>
Returns the total virtual memory size in pages of the
current process, or zero when there is no current process or the
number of pages couldn't be retrieved.
Human readable string of process memory usage
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
proc_mem_string_pid:string(pid:long)
-</pre></div><div class="refsect1"><a name="idm47245130048544"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511691891952"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
The pid of process to examine
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130045488"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691888896"></a><h2>Description</h2><p>
Returns a human readable string showing the size, rss,
shr, txt and data of the memory used by the given process.
For example <span class="quote">“<span class="quote">size: 301m, rss: 11m, shr: 8m, txt: 52k, data: 2248k</span>”</span>.
Human readable string of current proc memory usage
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
proc_mem_string:string()
-</pre></div><div class="refsect1"><a name="idm47245130057488"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511691900896"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130056336"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511691899744"></a><h2>Description</h2><p>
Returns a human readable string showing the size, rss,
shr, txt and data of the memory used by the current process.
For example <span class="quote">“<span class="quote">size: 301m, rss: 11m, shr: 8m, txt: 52k, data: 2248k</span>”</span>.
Program text (code) size in pages
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
proc_mem_txt_pid:long(pid:long)
-</pre></div><div class="refsect1"><a name="idm47245130029120"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511691872528"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
The pid of process to examine
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130026064"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691869472"></a><h2>Description</h2><p>
Returns the given process text (code) size in pages,
or zero when the process doesn't exist or the number of pages
couldn't be retrieved.
Program text (code) size in pages
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
proc_mem_txt:long()
-</pre></div><div class="refsect1"><a name="idm47245130037696"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511691881104"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130036544"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511691879952"></a><h2>Description</h2><p>
Returns the current process text (code) size in pages,
or zero when there is no current process or the number of pages
couldn't be retrieved.
Chain of processes and pids back to init(1)
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
pstrace:string(task:long)
-</pre></div><div class="refsect1"><a name="idm47245131054816"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692898224"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
Pointer to task struct of process
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245131051760"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692895168"></a><h2>Description</h2><p>
This function returns a string listing execname and pid for each
process starting from <em class="parameter"><code>task</code></em> back to the process ancestor
that init(1) spawned.
Function to record finishing request
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
qs_done(qname:string)
-</pre></div><div class="refsect1"><a name="idm47245124867712"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686713760"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
the name of the service that finished
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124864496"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686710544"></a><h2>Description</h2><p>
This function records that a request
originally from the given queue has completed being
serviced.
Function to record being moved from wait queue to being serviced
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
qs_run(qname:string)
-</pre></div><div class="refsect1"><a name="idm47245124856512"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686702512"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
the name of the service being moved and started
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124853280"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686699280"></a><h2>Description</h2><p>
This function records that the previous enqueued
request was removed from the given wait queue and is now
being serviced.
Function to record enqueue requests
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
qs_wait(qname:string)
-</pre></div><div class="refsect1"><a name="idm47245124845248"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686691200"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
the name of the queue requesting enqueue
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124842032"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686687984"></a><h2>Description</h2><p>
This function records that a new request
was enqueued for the given queue name.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-qs-run.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="queue_stats.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-qsq-blocked.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::qs_run</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::qsq_blocked</span></td></tr></table></div></body></html>
Returns the time reqest was on the wait queue
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
qsq_blocked:long(qname:string,scale:long)
-</pre></div><div class="refsect1"><a name="idm47245124833984"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686679936"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
queue name
</p></dd><dt><span class="term"><em class="parameter"><code>scale</code></em></span></dt><dd><p>
scale variable to take account for interval fraction
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124828752"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686674704"></a><h2>Description</h2><p>
This function returns the fraction of elapsed time during
which one or more requests were on the wait queue.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-qs-wait.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="queue_stats.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-qsq-print.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::qs_wait</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::qsq_print</span></td></tr></table></div></body></html>
Prints a line of statistics for the given queue
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
qsq_print(qname:string)
-</pre></div><div class="refsect1"><a name="idm47245124820688"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686666640"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
queue name
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124817504"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686663456"></a><h2>Description</h2><p>
This function prints a line containing the following
-</p></div><div class="refsect1"><a name="idm47245124816240"></a><h2>statistics for the given queue</h2><p>
+</p></div><div class="refsect1"><a name="idm47511686662192"></a><h2>statistics for the given queue</h2><p>
the queue name,
the average rate of requests per second,
the average wait queue length,
Amount of time per request service
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
qsq_service_time:long(qname:string,scale:long)
-</pre></div><div class="refsect1"><a name="idm47245124807984"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686653888"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
queue name
</p></dd><dt><span class="term"><em class="parameter"><code>scale</code></em></span></dt><dd><p>
scale variable to take account for interval fraction
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124802752"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686648656"></a><h2>Description</h2><p>
This function returns the average time in microseconds
required to service a request once it is removed from the wait queue.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-qsq-print.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="queue_stats.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-qsq-start.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::qsq_print</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::qsq_start</span></td></tr></table></div></body></html>
Function to reset the stats for a queue
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
qsq_start(qname:string)
-</pre></div><div class="refsect1"><a name="idm47245124794672"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686640688"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
the name of the service that finished
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124791456"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686637472"></a><h2>Description</h2><p>
This function resets the statistics counters for the given
queue, and restarts tracking from the moment the function was called.
This function is also used to create intialize a queue.
Number of requests served per unit time
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
qsq_throughput:long(qname:string,scale:long)
-</pre></div><div class="refsect1"><a name="idm47245124783264"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686629280"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
queue name
</p></dd><dt><span class="term"><em class="parameter"><code>scale</code></em></span></dt><dd><p>
scale variable to take account for interval fraction
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124778032"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686624048"></a><h2>Description</h2><p>
This function returns the average number or requests
served per microsecond.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-qsq-start.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="queue_stats.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-qsq-utilization.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::qsq_start</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::qsq_utilization</span></td></tr></table></div></body></html>
Fraction of time that any request was being serviced
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
qsq_utilization:long(qname:string,scale:long)
-</pre></div><div class="refsect1"><a name="idm47245124769936"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686616000"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
queue name
</p></dd><dt><span class="term"><em class="parameter"><code>scale</code></em></span></dt><dd><p>
scale variable to take account for interval fraction
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124764704"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686610768"></a><h2>Description</h2><p>
This function returns the average time in microseconds
that at least one request was being serviced.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-qsq-throughput.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="queue_stats.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-qsq-wait-queue-length.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::qsq_throughput</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::qsq_wait_queue_length</span></td></tr></table></div></body></html>
length of wait queue
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
qsq_wait_queue_length:long(qname:string,scale:long)
-</pre></div><div class="refsect1"><a name="idm47245124756608"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686602672"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
queue name
</p></dd><dt><span class="term"><em class="parameter"><code>scale</code></em></span></dt><dd><p>
scale variable to take account for interval fraction
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124751376"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686597440"></a><h2>Description</h2><p>
This function returns the average length of the wait queue
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-qsq-utilization.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="queue_stats.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-qsq-wait-time.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::qsq_utilization</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::qsq_wait_time</span></td></tr></table></div></body></html>
Amount of time in queue + service per request
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
qsq_wait_time:long(qname:string,scale:long)
-</pre></div><div class="refsect1"><a name="idm47245124743344"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686589456"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>qname</code></em></span></dt><dd><p>
queue name
</p></dd><dt><span class="term"><em class="parameter"><code>scale</code></em></span></dt><dd><p>
scale variable to take account for interval fraction
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124738112"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686584224"></a><h2>Description</h2><p>
This function returns the average time in microseconds
that it took for a request to be serviced (<code class="function">qs_wait</code> to <code class="function">qa_done</code>).
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-qsq-wait-queue-length.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="queue_stats.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="random.stp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::qsq_wait_queue_length</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 24. Random functions Tapset</td></tr></table></div></body></html>
raise a signal in the current thread
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
raise(signo:long)
-</pre></div><div class="refsect1"><a name="idm47245123988368"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>signo</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685834688"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>signo</code></em></span></dt><dd><p>
signal number
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123985168"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685831488"></a><h2>Description</h2><p>
This function calls the kernel send_sig routine on
the current thread, with the given raw unchecked signal number.
It may raise an error if <code class="function">send_sig</code> failed.
Return a random number between [0,n)
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
randint:long(n:long)
-</pre></div><div class="refsect1"><a name="idm47245124727280"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686573392"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
Number past upper limit of range, not larger than 2**20.
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="random.stp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="random.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="conversions.stp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 24. Random functions Tapset </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 25. String and data retrieving functions Tapset</td></tr></table></div></body></html>
Reads the time in milliseconds for a stopwatch
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
read_stopwatch_ms:long(name:string)
-</pre></div><div class="refsect1"><a name="idm47245130304128"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692147536"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
stopwatch name
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130301072"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692144480"></a><h2>Description</h2><p>
Returns time in milliseconds for stopwatch <em class="parameter"><code>name</code></em>.
Creates stopwatch <em class="parameter"><code>name</code></em> if it does not currently exist.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-local-clock-us.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="timestamp_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-read-stopwatch-ns.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::local_clock_us</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::read_stopwatch_ns</span></td></tr></table></div></body></html>
Reads the time in nanoseconds for a stopwatch
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
read_stopwatch_ns:long(name:string)
-</pre></div><div class="refsect1"><a name="idm47245130292576"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692135984"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
stopwatch name
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130289520"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692132928"></a><h2>Description</h2><p>
Returns time in nanoseconds for stopwatch <em class="parameter"><code>name</code></em>.
Creates stopwatch <em class="parameter"><code>name</code></em> if it does not currently exist.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-read-stopwatch-ms.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="timestamp_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-read-stopwatch-s.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::read_stopwatch_ms</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::read_stopwatch_s</span></td></tr></table></div></body></html>
Reads the time in seconds for a stopwatch
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
read_stopwatch_s:long(name:string)
-</pre></div><div class="refsect1"><a name="idm47245130281024"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692124432"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
stopwatch name
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130277968"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692121376"></a><h2>Description</h2><p>
Returns time in seconds for stopwatch <em class="parameter"><code>name</code></em>.
Creates stopwatch <em class="parameter"><code>name</code></em> if it does not currently exist.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-read-stopwatch-ns.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="timestamp_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-read-stopwatch-us.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::read_stopwatch_ns</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::read_stopwatch_us</span></td></tr></table></div></body></html>
Reads the time in microseconds for a stopwatch
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
read_stopwatch_us:long(name:string)
-</pre></div><div class="refsect1"><a name="idm47245130269472"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692112880"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
stopwatch name
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130266416"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692109824"></a><h2>Description</h2><p>
Returns time in microseconds for stopwatch <em class="parameter"><code>name</code></em>.
Creates stopwatch <em class="parameter"><code>name</code></em> if it does not currently exist.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-read-stopwatch-s.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="timestamp_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-start-stopwatch.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::read_stopwatch_s</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::start_stopwatch</span></td></tr></table></div></body></html>
get the 'struct mount' pointer
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
real_mount:long(vfsmnt:long)
-</pre></div><div class="refsect1"><a name="idm47245124978512"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>vfsmnt</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686824688"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>vfsmnt</code></em></span></dt><dd><p>
Pointer to 'struct vfsmount'
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124975312"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686821488"></a><h2>Description</h2><p>
</p><p>
Returns the 'struct mount' pointer value for a 'struct vfsmount'
Return the signed value of the named CPU register
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
register:long(name:string)
-</pre></div><div class="refsect1"><a name="idm47245131043776"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692887184"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the register to return
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245131040720"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692884128"></a><h2>Description</h2><p>
Return the value of the named CPU register,
as it was saved when the current probe point was hit.
If the register is 32 bits, it is sign-extended to 64 bits.
Determines validity of <code class="function">register</code> and <code class="function">u_register</code> in current context
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
registers_valid:long()
-</pre></div><div class="refsect1"><a name="idm47245131029616"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692873024"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131028464"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692871872"></a><h2>Description</h2><p>
This function returns 1 if <code class="function">register</code> and <code class="function">u_register</code>
can be used in the current context, or 0 otherwise.
For example, <code class="function">registers_valid</code> returns 0
Specify regparm value used to compile function
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
regparm(n:long)
-</pre></div><div class="refsect1"><a name="idm47245131019248"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692862656"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
original regparm value
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245131016192"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692859600"></a><h2>Description</h2><p>
Call this function with argument n before accessing function
arguments using the *_arg function is the function was build with the
gcc -mregparm=n option.
The index of this instance in a remote execution.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
remote_id:long()
-</pre></div><div class="refsect1"><a name="idm47245131008144"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692851552"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245131006992"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692850400"></a><h2>Description</h2><p>
This function returns a number 0..N, which is the unique
index of this particular script execution from a swarm of
<span class="quote">“<span class="quote">stap --remote A --remote B ...</span>”</span> runs, and is the same number
The name of this instance in a remote execution.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
remote_uri:string()
-</pre></div><div class="refsect1"><a name="idm47245130998192"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692841600"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130997040"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692840448"></a><h2>Description</h2><p>
This function returns the remote host used to invoke
this particular script execution from a swarm of <span class="quote">“<span class="quote">stap --remote</span>”</span> runs.
It may not be unique among the swarm.
Formats the return value as a string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
return_str:string(format:long,ret:long)
-</pre></div><div class="refsect1"><a name="idm47245125118816"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>format</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686965248"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>format</code></em></span></dt><dd><p>
Variable to determine return type base value
</p></dd><dt><span class="term"><em class="parameter"><code>ret</code></em></span></dt><dd><p>
Return value (typically <code class="envar">$return</code>)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125113168"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686959600"></a><h2>Description</h2><p>
This function is used by the syscall tapset, and
returns a string. Set format equal to 1 for a decimal,
2 for hex, 3 for octal.
Formats the return value as a string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
returnstr:string(format:long)
-</pre></div><div class="refsect1"><a name="idm47245125104112"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>format</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686950496"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>format</code></em></span></dt><dd><p>
Variable to determine return type base value
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125100896"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686947280"></a><h2>Description</h2><p>
This function is used by the nd_syscall tapset, and
returns a string. Set format equal to 1 for a decimal,
2 for hex, 3 for octal.
Possible return value of probed function
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
returnval:long()
-</pre></div><div class="refsect1"><a name="idm47245125091392"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511686937664"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245125090176"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511686936448"></a><h2>Description</h2><p>
Return the value of the register in which function values
are typically returned. Can be used in probes where <code class="envar">$return</code> isn't
available. This is only a guess of the actual return value and can be
get the full dirent path
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
reverse_path_walk:string(dentry:long)
-</pre></div><div class="refsect1"><a name="idm47245124966992"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dentry</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686813216"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dentry</code></em></span></dt><dd><p>
Pointer to dentry.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124963792"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686810016"></a><h2>Description</h2><p>
</p><p>
Returns the path name (partial path to mount point).
Symbolic string associated with resource limit code
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
rlimit_from_str:long(lim_str:string)
-</pre></div><div class="refsect1"><a name="idm47245125080016"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>lim_str</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686926288"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>lim_str</code></em></span></dt><dd><p>
The string representation of limit
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125076800"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686923072"></a><h2>Description</h2><p>
This function returns the number associated
with the given string, such as 0 for the string RLIMIT_CPU, or
-1 for an out-of-range value.
Return function argument as signed 32-bit value
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
s32_arg:long(n:long)
-</pre></div><div class="refsect1"><a name="idm47245130988752"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692832160"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
index of argument to return
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130985696"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692829104"></a><h2>Description</h2><p>
Return the signed 32-bit value of argument n,
same as int_arg.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-remote-uri.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-s64-arg.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::remote_uri</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::s64_arg</span></td></tr></table></div></body></html>
Return function argument as signed 64-bit value
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
s64_arg:long(n:long)
-</pre></div><div class="refsect1"><a name="idm47245130978368"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692821776"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
index of argument to return
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130975312"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692818720"></a><h2>Description</h2><p>
Return the signed 64-bit value of argument n,
same as longlong_arg.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-s32-arg.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sid.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::s32_arg</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::sid</span></td></tr></table></div></body></html>
Returns the string representation of sa_flags
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
sa_flags_str:string(sa_flags:long)
-</pre></div><div class="refsect1"><a name="idm47245125610896"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sa_flags</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511687457216"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sa_flags</code></em></span></dt><dd><p>
the set of flags to convert to string.
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-is-sig-blocked.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sa-handler-str.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::is_sig_blocked</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::sa_handler_str</span></td></tr></table></div></body></html>
Returns the string representation of an sa_handler
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
sa_handler_str(handler:)
-</pre></div><div class="refsect1"><a name="idm47245125600880"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>handler</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511687447200"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>handler</code></em></span></dt><dd><p>
the sa_handler to convert to string.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125597664"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687443984"></a><h2>Description</h2><p>
Returns the string representation of an sa_handler.
If it is not SIG_DFL, SIG_IGN or SIG_ERR, it will return the address
of the handler.
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scheduler.balance</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="sched.stp.html" title="Chapter 8. Scheduler Tapset"><link rel="prev" href="sched.stp.html" title="Chapter 8. Scheduler Tapset"><link rel="next" href="API-scheduler-cpu-off.html" title="probe::scheduler.cpu_off"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scheduler.balance</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="sched.stp.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Scheduler Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-scheduler-cpu-off.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scheduler-balance"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scheduler.balance —
A cpu attempting to find more work.
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.balance </pre></div><div class="refsect1"><a name="idm47245129623584"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.balance </pre></div><div class="refsect1"><a name="idm47511691469200"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
name of the probe point
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129620384"></a><h2>Context</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691466000"></a><h2>Context</h2><p>
The cpu looking for more work.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="sched.stp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="sched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-scheduler-cpu-off.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 8. Scheduler Tapset </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::scheduler.cpu_off</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scheduler.cpu_off</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="sched.stp.html" title="Chapter 8. Scheduler Tapset"><link rel="prev" href="API-scheduler-balance.html" title="probe::scheduler.balance"><link rel="next" href="API-scheduler-cpu-on.html" title="probe::scheduler.cpu_on"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scheduler.cpu_off</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-scheduler-balance.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Scheduler Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-scheduler-cpu-on.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scheduler-cpu-off"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scheduler.cpu_off —
Process is about to stop running on a cpu
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.cpu_off </pre></div><div class="refsect1"><a name="idm47245129612448"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task_prev</code></em></span></dt><dd><p>
- the process leaving the cpu (same as current)
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.cpu_off </pre></div><div class="refsect1"><a name="idm47511691458048"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task_next</code></em></span></dt><dd><p>
+ the process replacing current
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>task_next</code></em></span></dt><dd><p>
- the process replacing current
+ </p></dd><dt><span class="term"><em class="parameter"><code>task_prev</code></em></span></dt><dd><p>
+ the process leaving the cpu (same as current)
</p></dd><dt><span class="term"><em class="parameter"><code>idle</code></em></span></dt><dd><p>
boolean indicating whether current is the idle process
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129603120"></a><h2>Context</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691448720"></a><h2>Context</h2><p>
The process leaving the cpu.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-scheduler-balance.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="sched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-scheduler-cpu-on.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::scheduler.balance</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::scheduler.cpu_on</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scheduler.cpu_on</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="sched.stp.html" title="Chapter 8. Scheduler Tapset"><link rel="prev" href="API-scheduler-cpu-off.html" title="probe::scheduler.cpu_off"><link rel="next" href="API-scheduler-ctxswitch.html" title="probe::scheduler.ctxswitch"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scheduler.cpu_on</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-scheduler-cpu-off.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Scheduler Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-scheduler-ctxswitch.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scheduler-cpu-on"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scheduler.cpu_on —
Process is beginning execution on a cpu
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.cpu_on </pre></div><div class="refsect1"><a name="idm47245129595264"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>idle</code></em></span></dt><dd><p>
- - boolean indicating whether current is the idle process
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.cpu_on </pre></div><div class="refsect1"><a name="idm47511691440816"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
name of the probe point
</p></dd><dt><span class="term"><em class="parameter"><code>task_prev</code></em></span></dt><dd><p>
the process that was previously running on this cpu
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129587968"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>idle</code></em></span></dt><dd><p>
+ - boolean indicating whether current is the idle process
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691433520"></a><h2>Context</h2><p>
The resuming process.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-scheduler-cpu-off.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="sched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-scheduler-ctxswitch.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::scheduler.cpu_off</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::scheduler.ctxswitch</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scheduler.ctxswitch</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="sched.stp.html" title="Chapter 8. Scheduler Tapset"><link rel="prev" href="API-scheduler-cpu-on.html" title="probe::scheduler.cpu_on"><link rel="next" href="API-scheduler-kthread-stop.html" title="probe::scheduler.kthread_stop"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scheduler.ctxswitch</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-scheduler-cpu-on.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Scheduler Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-scheduler-kthread-stop.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scheduler-ctxswitch"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scheduler.ctxswitch —
A context switch is occuring.
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.ctxswitch </pre></div><div class="refsect1"><a name="idm47245129580048"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>prev_tid</code></em></span></dt><dd><p>
- The TID of the process to be switched out
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.ctxswitch </pre></div><div class="refsect1"><a name="idm47511691425600"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>next_pid</code></em></span></dt><dd><p>
+ The PID of the process to be switched in
+ </p></dd><dt><span class="term"><em class="parameter"><code>nexttsk_state</code></em></span></dt><dd><p>
+ the state of the process to be switched in
</p></dd><dt><span class="term"><em class="parameter"><code>prev_pid</code></em></span></dt><dd><p>
The PID of the process to be switched out
+ </p></dd><dt><span class="term"><em class="parameter"><code>prev_task_name</code></em></span></dt><dd><p>
+ The name of the process to be switched out
</p></dd><dt><span class="term"><em class="parameter"><code>prev_priority</code></em></span></dt><dd><p>
The priority of the process to be switched out
- </p></dd><dt><span class="term"><em class="parameter"><code>next_priority</code></em></span></dt><dd><p>
- The priority of the process to be switched in
- </p></dd><dt><span class="term"><em class="parameter"><code>next_pid</code></em></span></dt><dd><p>
- The PID of the process to be switched in
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>nexttsk_state</code></em></span></dt><dd><p>
- the state of the process to be switched in
</p></dd><dt><span class="term"><em class="parameter"><code>prevtsk_state</code></em></span></dt><dd><p>
the state of the process to be switched out
- </p></dd><dt><span class="term"><em class="parameter"><code>next_tid</code></em></span></dt><dd><p>
- The TID of the process to be switched in
+ </p></dd><dt><span class="term"><em class="parameter"><code>prev_tid</code></em></span></dt><dd><p>
+ The TID of the process to be switched out
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ name of the probe point
</p></dd><dt><span class="term"><em class="parameter"><code>next_task_name</code></em></span></dt><dd><p>
The name of the process to be switched in
- </p></dd><dt><span class="term"><em class="parameter"><code>prev_task_name</code></em></span></dt><dd><p>
- The name of the process to be switched out
+ </p></dd><dt><span class="term"><em class="parameter"><code>next_priority</code></em></span></dt><dd><p>
+ The priority of the process to be switched in
+ </p></dd><dt><span class="term"><em class="parameter"><code>next_tid</code></em></span></dt><dd><p>
+ The TID of the process to be switched in
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-scheduler-cpu-on.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="sched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-scheduler-kthread-stop.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::scheduler.cpu_on</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::scheduler.kthread_stop</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scheduler.kthread_stop.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="sched.stp.html" title="Chapter 8. Scheduler Tapset"><link rel="prev" href="API-scheduler-kthread-stop.html" title="probe::scheduler.kthread_stop"><link rel="next" href="API-scheduler-migrate.html" title="probe::scheduler.migrate"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scheduler.kthread_stop.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-scheduler-kthread-stop.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Scheduler Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-scheduler-migrate.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scheduler-kthread-stop-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scheduler.kthread_stop.return —
A kthread is stopped and gets the return value
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.kthread_stop.return </pre></div><div class="refsect1"><a name="idm47245129537760"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>return_value</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.kthread_stop.return </pre></div><div class="refsect1"><a name="idm47511691383344"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>return_value</code></em></span></dt><dd><p>
return value after stopping the thread
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ name of the probe point
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-scheduler-kthread-stop.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="sched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-scheduler-migrate.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::scheduler.kthread_stop</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::scheduler.migrate</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scheduler.kthread_stop</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="sched.stp.html" title="Chapter 8. Scheduler Tapset"><link rel="prev" href="API-scheduler-ctxswitch.html" title="probe::scheduler.ctxswitch"><link rel="next" href="API-scheduler-kthread-stop-return.html" title="probe::scheduler.kthread_stop.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scheduler.kthread_stop</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-scheduler-ctxswitch.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Scheduler Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-scheduler-kthread-stop-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scheduler-kthread-stop"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scheduler.kthread_stop —
A thread created by kthread_create is being stopped
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.kthread_stop </pre></div><div class="refsect1"><a name="idm47245129549744"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>thread_pid</code></em></span></dt><dd><p>
- PID of the thread being stopped
- </p></dd><dt><span class="term"><em class="parameter"><code>thread_priority</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.kthread_stop </pre></div><div class="refsect1"><a name="idm47511691395280"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>thread_priority</code></em></span></dt><dd><p>
priority of the thread
+ </p></dd><dt><span class="term"><em class="parameter"><code>thread_pid</code></em></span></dt><dd><p>
+ PID of the thread being stopped
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-scheduler-ctxswitch.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="sched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-scheduler-kthread-stop-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::scheduler.ctxswitch</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::scheduler.kthread_stop.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scheduler.migrate</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="sched.stp.html" title="Chapter 8. Scheduler Tapset"><link rel="prev" href="API-scheduler-kthread-stop-return.html" title="probe::scheduler.kthread_stop.return"><link rel="next" href="API-scheduler-process-exit.html" title="probe::scheduler.process_exit"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scheduler.migrate</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-scheduler-kthread-stop-return.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Scheduler Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-scheduler-process-exit.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scheduler-migrate"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scheduler.migrate —
Task migrating across cpus
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.migrate </pre></div><div class="refsect1"><a name="idm47245129525776"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cpu_from</code></em></span></dt><dd><p>
- the original cpu
- </p></dd><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
- the process that is being migrated
- </p></dd><dt><span class="term"><em class="parameter"><code>cpu_to</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.migrate </pre></div><div class="refsect1"><a name="idm47511691371360"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cpu_to</code></em></span></dt><dd><p>
the destination cpu
+ </p></dd><dt><span class="term"><em class="parameter"><code>cpu_from</code></em></span></dt><dd><p>
+ the original cpu
+ </p></dd><dt><span class="term"><em class="parameter"><code>priority</code></em></span></dt><dd><p>
+ priority of the task being migrated
</p></dd><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
PID of the task being migrated
+ </p></dd><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+ the process that is being migrated
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>priority</code></em></span></dt><dd><p>
- priority of the task being migrated
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-scheduler-kthread-stop-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="sched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-scheduler-process-exit.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::scheduler.kthread_stop.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::scheduler.process_exit</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scheduler.process_exit</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="sched.stp.html" title="Chapter 8. Scheduler Tapset"><link rel="prev" href="API-scheduler-migrate.html" title="probe::scheduler.migrate"><link rel="next" href="API-scheduler-process-fork.html" title="probe::scheduler.process_fork"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scheduler.process_exit</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-scheduler-migrate.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Scheduler Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-scheduler-process-fork.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scheduler-process-exit"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scheduler.process_exit —
Process exiting
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.process_exit </pre></div><div class="refsect1"><a name="idm47245129505760"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
- PID of the process exiting
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.process_exit </pre></div><div class="refsect1"><a name="idm47511691351296"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
name of the probe point
+ </p></dd><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
+ PID of the process exiting
</p></dd><dt><span class="term"><em class="parameter"><code>priority</code></em></span></dt><dd><p>
priority of the process exiting
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-scheduler-migrate.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="sched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-scheduler-process-fork.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::scheduler.migrate</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::scheduler.process_fork</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scheduler.process_fork</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="sched.stp.html" title="Chapter 8. Scheduler Tapset"><link rel="prev" href="API-scheduler-process-exit.html" title="probe::scheduler.process_exit"><link rel="next" href="API-scheduler-process-free.html" title="probe::scheduler.process_free"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scheduler.process_fork</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-scheduler-process-exit.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Scheduler Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-scheduler-process-free.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scheduler-process-fork"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scheduler.process_fork —
Process forked
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.process_fork </pre></div><div class="refsect1"><a name="idm47245129491824"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>child_pid</code></em></span></dt><dd><p>
- PID of the child process
- </p></dd><dt><span class="term"><em class="parameter"><code>parent_pid</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.process_fork </pre></div><div class="refsect1"><a name="idm47511691337376"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>parent_pid</code></em></span></dt><dd><p>
PID of the parent process
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
name of the probe point
+ </p></dd><dt><span class="term"><em class="parameter"><code>child_pid</code></em></span></dt><dd><p>
+ PID of the child process
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-scheduler-process-exit.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="sched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-scheduler-process-free.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::scheduler.process_exit</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::scheduler.process_free</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scheduler.process_free</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="sched.stp.html" title="Chapter 8. Scheduler Tapset"><link rel="prev" href="API-scheduler-process-fork.html" title="probe::scheduler.process_fork"><link rel="next" href="API-scheduler-process-wait.html" title="probe::scheduler.process_wait"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scheduler.process_free</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-scheduler-process-fork.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Scheduler Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-scheduler-process-wait.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scheduler-process-free"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scheduler.process_free —
Scheduler freeing a data structure for a process
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.process_free </pre></div><div class="refsect1"><a name="idm47245129477840"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.process_free </pre></div><div class="refsect1"><a name="idm47511691323328"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ name of the probe point
+ </p></dd><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
PID of the process getting freed
</p></dd><dt><span class="term"><em class="parameter"><code>priority</code></em></span></dt><dd><p>
priority of the process getting freed
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- name of the probe point
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-scheduler-process-fork.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="sched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-scheduler-process-wait.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::scheduler.process_fork</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::scheduler.process_wait</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scheduler.process_wait</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="sched.stp.html" title="Chapter 8. Scheduler Tapset"><link rel="prev" href="API-scheduler-process-free.html" title="probe::scheduler.process_free"><link rel="next" href="API-scheduler-signal-send.html" title="probe::scheduler.signal_send"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scheduler.process_wait</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-scheduler-process-free.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Scheduler Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-scheduler-signal-send.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scheduler-process-wait"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scheduler.process_wait —
Scheduler starting to wait on a process
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.process_wait </pre></div><div class="refsect1"><a name="idm47245129463808"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.process_wait </pre></div><div class="refsect1"><a name="idm47511691309296"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
name of the probe point
</p></dd><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
PID of the process scheduler is waiting on
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scheduler.signal_send</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="sched.stp.html" title="Chapter 8. Scheduler Tapset"><link rel="prev" href="API-scheduler-process-wait.html" title="probe::scheduler.process_wait"><link rel="next" href="API-scheduler-tick.html" title="probe::scheduler.tick"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scheduler.signal_send</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-scheduler-process-wait.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Scheduler Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-scheduler-tick.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scheduler-signal-send"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scheduler.signal_send —
Sending a signal
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.signal_send </pre></div><div class="refsect1"><a name="idm47245129451872"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.signal_send </pre></div><div class="refsect1"><a name="idm47511691297376"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
name of the probe point
</p></dd><dt><span class="term"><em class="parameter"><code>signal_number</code></em></span></dt><dd><p>
signal number
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scheduler.tick</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="sched.stp.html" title="Chapter 8. Scheduler Tapset"><link rel="prev" href="API-scheduler-signal-send.html" title="probe::scheduler.signal_send"><link rel="next" href="API-scheduler-wait-task.html" title="probe::scheduler.wait_task"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scheduler.tick</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-scheduler-signal-send.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Scheduler Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-scheduler-wait-task.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scheduler-tick"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scheduler.tick —
Schedulers internal tick, a processes timeslice accounting is updated
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.tick </pre></div><div class="refsect1"><a name="idm47245129437936"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>idle</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.tick </pre></div><div class="refsect1"><a name="idm47511691283392"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>idle</code></em></span></dt><dd><p>
boolean indicating whether current is the idle process
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129432688"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ name of the probe point
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691278144"></a><h2>Context</h2><p>
The process whose accounting will be updated.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-scheduler-signal-send.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="sched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-scheduler-wait-task.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::scheduler.signal_send</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::scheduler.wait_task</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scheduler.wait_task</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="sched.stp.html" title="Chapter 8. Scheduler Tapset"><link rel="prev" href="API-scheduler-tick.html" title="probe::scheduler.tick"><link rel="next" href="API-scheduler-wakeup.html" title="probe::scheduler.wakeup"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scheduler.wait_task</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-scheduler-tick.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Scheduler Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-scheduler-wakeup.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scheduler-wait-task"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scheduler.wait_task —
Waiting on a task to unschedule (become inactive)
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.wait_task </pre></div><div class="refsect1"><a name="idm47245129424768"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task_priority</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.wait_task </pre></div><div class="refsect1"><a name="idm47511691270224"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task_priority</code></em></span></dt><dd><p>
priority of the task
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- name of the probe point
</p></dd><dt><span class="term"><em class="parameter"><code>task_pid</code></em></span></dt><dd><p>
PID of the task the scheduler is waiting on
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ name of the probe point
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-scheduler-tick.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="sched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-scheduler-wakeup.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::scheduler.tick</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::scheduler.wakeup</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scheduler.wakeup_new</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="sched.stp.html" title="Chapter 8. Scheduler Tapset"><link rel="prev" href="API-scheduler-wakeup.html" title="probe::scheduler.wakeup"><link rel="next" href="iosched.stp.html" title="Chapter 9. IO Scheduler and block IO Tapset"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scheduler.wakeup_new</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-scheduler-wakeup.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Scheduler Tapset</th><td width="20%" align="right"> <a accesskey="n" href="iosched.stp.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scheduler-wakeup-new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scheduler.wakeup_new —
Newly created task is woken up for the first time
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.wakeup_new </pre></div><div class="refsect1"><a name="idm47245129390752"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task_pid</code></em></span></dt><dd><p>
- PID of the new task woken up
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>task_state</code></em></span></dt><dd><p>
- state of the task woken up
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.wakeup_new </pre></div><div class="refsect1"><a name="idm47511691236208"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task_cpu</code></em></span></dt><dd><p>
+ cpu of the task woken up
</p></dd><dt><span class="term"><em class="parameter"><code>task_priority</code></em></span></dt><dd><p>
priority of the new task
</p></dd><dt><span class="term"><em class="parameter"><code>task_tid</code></em></span></dt><dd><p>
TID of the new task woken up
- </p></dd><dt><span class="term"><em class="parameter"><code>task_cpu</code></em></span></dt><dd><p>
- cpu of the task woken up
+ </p></dd><dt><span class="term"><em class="parameter"><code>task_state</code></em></span></dt><dd><p>
+ state of the task woken up
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ name of the probe point
+ </p></dd><dt><span class="term"><em class="parameter"><code>task_pid</code></em></span></dt><dd><p>
+ PID of the new task woken up
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-scheduler-wakeup.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="sched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="iosched.stp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::scheduler.wakeup</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 9. IO Scheduler and block IO Tapset</td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scheduler.wakeup</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="sched.stp.html" title="Chapter 8. Scheduler Tapset"><link rel="prev" href="API-scheduler-wait-task.html" title="probe::scheduler.wait_task"><link rel="next" href="API-scheduler-wakeup-new.html" title="probe::scheduler.wakeup_new"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scheduler.wakeup</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-scheduler-wait-task.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Scheduler Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-scheduler-wakeup-new.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scheduler-wakeup"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scheduler.wakeup —
Task is woken up
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.wakeup </pre></div><div class="refsect1"><a name="idm47245129410864"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task_pid</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scheduler.wakeup </pre></div><div class="refsect1"><a name="idm47511691256320"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task_state</code></em></span></dt><dd><p>
+ state of the task being woken up
+ </p></dd><dt><span class="term"><em class="parameter"><code>task_pid</code></em></span></dt><dd><p>
PID of the task being woken up
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>task_state</code></em></span></dt><dd><p>
- state of the task being woken up
- </p></dd><dt><span class="term"><em class="parameter"><code>task_priority</code></em></span></dt><dd><p>
- priority of the task being woken up
</p></dd><dt><span class="term"><em class="parameter"><code>task_tid</code></em></span></dt><dd><p>
tid of the task being woken up
+ </p></dd><dt><span class="term"><em class="parameter"><code>task_priority</code></em></span></dt><dd><p>
+ priority of the task being woken up
</p></dd><dt><span class="term"><em class="parameter"><code>task_cpu</code></em></span></dt><dd><p>
cpu of the task being woken up
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-scheduler-wait-task.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="sched.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-scheduler-wakeup-new.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::scheduler.wait_task</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::scheduler.wakeup_new</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scsi.iocompleted</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="scsi.stp.html" title="Chapter 10. SCSI Tapset"><link rel="prev" href="scsi.stp.html" title="Chapter 10. SCSI Tapset"><link rel="next" href="API-scsi-iodispatching.html" title="probe::scsi.iodispatching"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scsi.iocompleted</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="scsi.stp.html">Prev</a> </td><th width="60%" align="center">Chapter 10. SCSI Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-scsi-iodispatching.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scsi-iocompleted"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scsi.iocompleted —
SCSI mid-layer running the completion processing for block device I/O requests
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scsi.iocompleted </pre></div><div class="refsect1"><a name="idm47245129019328"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>channel</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scsi.iocompleted </pre></div><div class="refsect1"><a name="idm47511690864960"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>host_no</code></em></span></dt><dd><p>
+ The host number
+ </p></dd><dt><span class="term"><em class="parameter"><code>lun</code></em></span></dt><dd><p>
+ The lun number
+ </p></dd><dt><span class="term"><em class="parameter"><code>device_state_str</code></em></span></dt><dd><p>
+ The current state of the device, as a string
+ </p></dd><dt><span class="term"><em class="parameter"><code>channel</code></em></span></dt><dd><p>
The channel number
+ </p></dd><dt><span class="term"><em class="parameter"><code>dev_id</code></em></span></dt><dd><p>
+ The scsi device id
+ </p></dd><dt><span class="term"><em class="parameter"><code>req_addr</code></em></span></dt><dd><p>
+ The current struct request pointer, as a number
+ </p></dd><dt><span class="term"><em class="parameter"><code>goodbytes</code></em></span></dt><dd><p>
+ The bytes completed
+ </p></dd><dt><span class="term"><em class="parameter"><code>data_direction_str</code></em></span></dt><dd><p>
+ Data direction, as a string
</p></dd><dt><span class="term"><em class="parameter"><code>data_direction</code></em></span></dt><dd><p>
The data_direction specifies whether this command is from/to
the device
- </p></dd><dt><span class="term"><em class="parameter"><code>data_direction_str</code></em></span></dt><dd><p>
- Data direction, as a string
- </p></dd><dt><span class="term"><em class="parameter"><code>goodbytes</code></em></span></dt><dd><p>
- The bytes completed
- </p></dd><dt><span class="term"><em class="parameter"><code>req_addr</code></em></span></dt><dd><p>
- The current struct request pointer, as a number
</p></dd><dt><span class="term"><em class="parameter"><code>device_state</code></em></span></dt><dd><p>
The current state of the device
- </p></dd><dt><span class="term"><em class="parameter"><code>host_no</code></em></span></dt><dd><p>
- The host number
- </p></dd><dt><span class="term"><em class="parameter"><code>dev_id</code></em></span></dt><dd><p>
- The scsi device id
- </p></dd><dt><span class="term"><em class="parameter"><code>device_state_str</code></em></span></dt><dd><p>
- The current state of the device, as a string
- </p></dd><dt><span class="term"><em class="parameter"><code>lun</code></em></span></dt><dd><p>
- The lun number
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="scsi.stp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="scsi.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-scsi-iodispatching.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 10. SCSI Tapset </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::scsi.iodispatching</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scsi.iodispatching</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="scsi.stp.html" title="Chapter 10. SCSI Tapset"><link rel="prev" href="API-scsi-iocompleted.html" title="probe::scsi.iocompleted"><link rel="next" href="API-scsi-iodone.html" title="probe::scsi.iodone"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scsi.iodispatching</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-scsi-iocompleted.html">Prev</a> </td><th width="60%" align="center">Chapter 10. SCSI Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-scsi-iodone.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scsi-iodispatching"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scsi.iodispatching —
SCSI mid-layer dispatched low-level SCSI command
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scsi.iodispatching </pre></div><div class="refsect1"><a name="idm47245128991072"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>channel</code></em></span></dt><dd><p>
- The channel number
- </p></dd><dt><span class="term"><em class="parameter"><code>data_direction</code></em></span></dt><dd><p>
- The data_direction specifies whether this command is from/to the device
- 0 (DMA_BIDIRECTIONAL), 1 (DMA_TO_DEVICE),
- 2 (DMA_FROM_DEVICE), 3 (DMA_NONE)
- </p></dd><dt><span class="term"><em class="parameter"><code>request_bufflen</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scsi.iodispatching </pre></div><div class="refsect1"><a name="idm47511690836752"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>request_bufflen</code></em></span></dt><dd><p>
The request buffer length
- </p></dd><dt><span class="term"><em class="parameter"><code>data_direction_str</code></em></span></dt><dd><p>
- Data direction, as a string
- </p></dd><dt><span class="term"><em class="parameter"><code>request_buffer</code></em></span></dt><dd><p>
- The request buffer address
- </p></dd><dt><span class="term"><em class="parameter"><code>req_addr</code></em></span></dt><dd><p>
- The current struct request pointer, as a number
- </p></dd><dt><span class="term"><em class="parameter"><code>device_state</code></em></span></dt><dd><p>
- The current state of the device
- </p></dd><dt><span class="term"><em class="parameter"><code>host_no</code></em></span></dt><dd><p>
- The host number
</p></dd><dt><span class="term"><em class="parameter"><code>device_state_str</code></em></span></dt><dd><p>
The current state of the device, as a string
+ </p></dd><dt><span class="term"><em class="parameter"><code>channel</code></em></span></dt><dd><p>
+ The channel number
</p></dd><dt><span class="term"><em class="parameter"><code>dev_id</code></em></span></dt><dd><p>
The scsi device id
+ </p></dd><dt><span class="term"><em class="parameter"><code>host_no</code></em></span></dt><dd><p>
+ The host number
</p></dd><dt><span class="term"><em class="parameter"><code>lun</code></em></span></dt><dd><p>
The lun number
+ </p></dd><dt><span class="term"><em class="parameter"><code>data_direction_str</code></em></span></dt><dd><p>
+ Data direction, as a string
+ </p></dd><dt><span class="term"><em class="parameter"><code>device_state</code></em></span></dt><dd><p>
+ The current state of the device
+ </p></dd><dt><span class="term"><em class="parameter"><code>data_direction</code></em></span></dt><dd><p>
+ The data_direction specifies whether this command is from/to the device
+ 0 (DMA_BIDIRECTIONAL), 1 (DMA_TO_DEVICE),
+ 2 (DMA_FROM_DEVICE), 3 (DMA_NONE)
+ </p></dd><dt><span class="term"><em class="parameter"><code>req_addr</code></em></span></dt><dd><p>
+ The current struct request pointer, as a number
+ </p></dd><dt><span class="term"><em class="parameter"><code>request_buffer</code></em></span></dt><dd><p>
+ The request buffer address
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-scsi-iocompleted.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="scsi.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-scsi-iodone.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::scsi.iocompleted</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::scsi.iodone</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scsi.iodone</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="scsi.stp.html" title="Chapter 10. SCSI Tapset"><link rel="prev" href="API-scsi-iodispatching.html" title="probe::scsi.iodispatching"><link rel="next" href="API-scsi-ioentry.html" title="probe::scsi.ioentry"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scsi.iodone</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-scsi-iodispatching.html">Prev</a> </td><th width="60%" align="center">Chapter 10. SCSI Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-scsi-ioentry.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scsi-iodone"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scsi.iodone —
SCSI command completed by low level driver and enqueued into the done queue.
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scsi.iodone </pre></div><div class="refsect1"><a name="idm47245128960880"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>data_direction_str</code></em></span></dt><dd><p>
- Data direction, as a string
- </p></dd><dt><span class="term"><em class="parameter"><code>scsi_timer_pending</code></em></span></dt><dd><p>
- 1 if a timer is pending on this request
- </p></dd><dt><span class="term"><em class="parameter"><code>channel</code></em></span></dt><dd><p>
- The channel number
- </p></dd><dt><span class="term"><em class="parameter"><code>data_direction</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scsi.iodone </pre></div><div class="refsect1"><a name="idm47511690806448"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>data_direction</code></em></span></dt><dd><p>
The data_direction specifies whether this command is
from/to the device.
- </p></dd><dt><span class="term"><em class="parameter"><code>host_no</code></em></span></dt><dd><p>
- The host number
</p></dd><dt><span class="term"><em class="parameter"><code>device_state</code></em></span></dt><dd><p>
The current state of the device
- </p></dd><dt><span class="term"><em class="parameter"><code>lun</code></em></span></dt><dd><p>
- The lun number
+ </p></dd><dt><span class="term"><em class="parameter"><code>data_direction_str</code></em></span></dt><dd><p>
+ Data direction, as a string
+ </p></dd><dt><span class="term"><em class="parameter"><code>req_addr</code></em></span></dt><dd><p>
+ The current struct request pointer, as a number
</p></dd><dt><span class="term"><em class="parameter"><code>dev_id</code></em></span></dt><dd><p>
The scsi device id
</p></dd><dt><span class="term"><em class="parameter"><code>device_state_str</code></em></span></dt><dd><p>
The current state of the device, as a string
- </p></dd><dt><span class="term"><em class="parameter"><code>req_addr</code></em></span></dt><dd><p>
- The current struct request pointer, as a number
+ </p></dd><dt><span class="term"><em class="parameter"><code>channel</code></em></span></dt><dd><p>
+ The channel number
+ </p></dd><dt><span class="term"><em class="parameter"><code>host_no</code></em></span></dt><dd><p>
+ The host number
+ </p></dd><dt><span class="term"><em class="parameter"><code>lun</code></em></span></dt><dd><p>
+ The lun number
+ </p></dd><dt><span class="term"><em class="parameter"><code>scsi_timer_pending</code></em></span></dt><dd><p>
+ 1 if a timer is pending on this request
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-scsi-iodispatching.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="scsi.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-scsi-ioentry.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::scsi.iodispatching</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::scsi.ioentry</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scsi.ioentry</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="scsi.stp.html" title="Chapter 10. SCSI Tapset"><link rel="prev" href="API-scsi-iodone.html" title="probe::scsi.iodone"><link rel="next" href="API-scsi-ioexecute.html" title="probe::scsi.ioexecute"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scsi.ioentry</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-scsi-iodone.html">Prev</a> </td><th width="60%" align="center">Chapter 10. SCSI Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-scsi-ioexecute.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scsi-ioentry"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scsi.ioentry —
Prepares a SCSI mid-layer request
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scsi.ioentry </pre></div><div class="refsect1"><a name="idm47245128932768"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>disk_minor</code></em></span></dt><dd><p>
- The minor number of the disk (-1 if no information)
- </p></dd><dt><span class="term"><em class="parameter"><code>req_addr</code></em></span></dt><dd><p>
- The current struct request pointer, as a number
- </p></dd><dt><span class="term"><em class="parameter"><code>disk_major</code></em></span></dt><dd><p>
- The major number of the disk (-1 if no information)
- </p></dd><dt><span class="term"><em class="parameter"><code>device_state</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scsi.ioentry </pre></div><div class="refsect1"><a name="idm47511690778336"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>device_state</code></em></span></dt><dd><p>
The current state of the device
</p></dd><dt><span class="term"><em class="parameter"><code>device_state_str</code></em></span></dt><dd><p>
The current state of the device, as a string
+ </p></dd><dt><span class="term"><em class="parameter"><code>disk_major</code></em></span></dt><dd><p>
+ The major number of the disk (-1 if no information)
+ </p></dd><dt><span class="term"><em class="parameter"><code>disk_minor</code></em></span></dt><dd><p>
+ The minor number of the disk (-1 if no information)
+ </p></dd><dt><span class="term"><em class="parameter"><code>req_addr</code></em></span></dt><dd><p>
+ The current struct request pointer, as a number
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-scsi-iodone.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="scsi.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-scsi-ioexecute.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::scsi.iodone</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::scsi.ioexecute</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scsi.ioexecute</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="scsi.stp.html" title="Chapter 10. SCSI Tapset"><link rel="prev" href="API-scsi-ioentry.html" title="probe::scsi.ioentry"><link rel="next" href="API-scsi-set-state.html" title="probe::scsi.set_state"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scsi.ioexecute</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-scsi-ioentry.html">Prev</a> </td><th width="60%" align="center">Chapter 10. SCSI Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-scsi-set-state.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scsi-ioexecute"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scsi.ioexecute —
Create mid-layer SCSI request and wait for the result
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scsi.ioexecute </pre></div><div class="refsect1"><a name="idm47245128914688"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev_id</code></em></span></dt><dd><p>
- The scsi device id
- </p></dd><dt><span class="term"><em class="parameter"><code>device_state_str</code></em></span></dt><dd><p>
- The current state of the device, as a string
- </p></dd><dt><span class="term"><em class="parameter"><code>retries</code></em></span></dt><dd><p>
- Number of times to retry request
- </p></dd><dt><span class="term"><em class="parameter"><code>lun</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scsi.ioexecute </pre></div><div class="refsect1"><a name="idm47511690760192"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>lun</code></em></span></dt><dd><p>
The lun number
</p></dd><dt><span class="term"><em class="parameter"><code>host_no</code></em></span></dt><dd><p>
The host number
- </p></dd><dt><span class="term"><em class="parameter"><code>device_state</code></em></span></dt><dd><p>
- The current state of the device
+ </p></dd><dt><span class="term"><em class="parameter"><code>retries</code></em></span></dt><dd><p>
+ Number of times to retry request
+ </p></dd><dt><span class="term"><em class="parameter"><code>request_bufflen</code></em></span></dt><dd><p>
+ The data buffer buffer length
+ </p></dd><dt><span class="term"><em class="parameter"><code>channel</code></em></span></dt><dd><p>
+ The channel number
+ </p></dd><dt><span class="term"><em class="parameter"><code>device_state_str</code></em></span></dt><dd><p>
+ The current state of the device, as a string
+ </p></dd><dt><span class="term"><em class="parameter"><code>dev_id</code></em></span></dt><dd><p>
+ The scsi device id
+ </p></dd><dt><span class="term"><em class="parameter"><code>timeout</code></em></span></dt><dd><p>
+ Request timeout in seconds
</p></dd><dt><span class="term"><em class="parameter"><code>request_buffer</code></em></span></dt><dd><p>
The data buffer address
</p></dd><dt><span class="term"><em class="parameter"><code>data_direction_str</code></em></span></dt><dd><p>
Data direction, as a string
+ </p></dd><dt><span class="term"><em class="parameter"><code>device_state</code></em></span></dt><dd><p>
+ The current state of the device
</p></dd><dt><span class="term"><em class="parameter"><code>data_direction</code></em></span></dt><dd><p>
The data_direction specifies whether this command is
from/to the device.
- </p></dd><dt><span class="term"><em class="parameter"><code>request_bufflen</code></em></span></dt><dd><p>
- The data buffer buffer length
- </p></dd><dt><span class="term"><em class="parameter"><code>channel</code></em></span></dt><dd><p>
- The channel number
- </p></dd><dt><span class="term"><em class="parameter"><code>timeout</code></em></span></dt><dd><p>
- Request timeout in seconds
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-scsi-ioentry.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="scsi.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-scsi-set-state.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::scsi.ioentry</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::scsi.set_state</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::scsi.set_state</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="scsi.stp.html" title="Chapter 10. SCSI Tapset"><link rel="prev" href="API-scsi-ioexecute.html" title="probe::scsi.ioexecute"><link rel="next" href="tty.stp.html" title="Chapter 11. TTY Tapset"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::scsi.set_state</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-scsi-ioexecute.html">Prev</a> </td><th width="60%" align="center">Chapter 10. SCSI Tapset</th><td width="20%" align="right"> <a accesskey="n" href="tty.stp.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-scsi-set-state"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::scsi.set_state —
Order SCSI device state change
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scsi.set_state </pre></div><div class="refsect1"><a name="idm47245128882496"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>old_state_str</code></em></span></dt><dd><p>
- The current state of the device, as a string
- </p></dd><dt><span class="term"><em class="parameter"><code>state_str</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">scsi.set_state </pre></div><div class="refsect1"><a name="idm47511690728048"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>state_str</code></em></span></dt><dd><p>
The new state of the device, as a string
- </p></dd><dt><span class="term"><em class="parameter"><code>channel</code></em></span></dt><dd><p>
- The channel number
</p></dd><dt><span class="term"><em class="parameter"><code>old_state</code></em></span></dt><dd><p>
The current state of the device
</p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
The new state of the device
+ </p></dd><dt><span class="term"><em class="parameter"><code>dev_id</code></em></span></dt><dd><p>
+ The scsi device id
+ </p></dd><dt><span class="term"><em class="parameter"><code>channel</code></em></span></dt><dd><p>
+ The channel number
+ </p></dd><dt><span class="term"><em class="parameter"><code>old_state_str</code></em></span></dt><dd><p>
+ The current state of the device, as a string
</p></dd><dt><span class="term"><em class="parameter"><code>host_no</code></em></span></dt><dd><p>
The host number
</p></dd><dt><span class="term"><em class="parameter"><code>lun</code></em></span></dt><dd><p>
The lun number
- </p></dd><dt><span class="term"><em class="parameter"><code>dev_id</code></em></span></dt><dd><p>
- The scsi device id
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-scsi-ioexecute.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="scsi.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="tty.stp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::scsi.ioexecute</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 11. TTY Tapset</td></tr></table></div></body></html>
Writes a char value to kernel memory
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
set_kernel_char(addr:long,val:long)
-</pre></div><div class="refsect1"><a name="idm47245124108800"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685955136"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The kernel address to write the char to
</p></dd><dt><span class="term"><em class="parameter"><code>val</code></em></span></dt><dd><p>
The char which is to be written
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124103584"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685949920"></a><h2>Description</h2><p>
Writes the char value to a given kernel memory address.
Reports an error when writing to the given address fails.
Requires the use of guru mode (-g).
Writes an int value to kernel memory
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
set_kernel_int(addr:long,val:long)
-</pre></div><div class="refsect1"><a name="idm47245124095424"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685941808"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The kernel address to write the int to
</p></dd><dt><span class="term"><em class="parameter"><code>val</code></em></span></dt><dd><p>
The int which is to be written
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124090208"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685936592"></a><h2>Description</h2><p>
Writes the int value to a given kernel memory address.
Reports an error when writing to the given address fails.
Requires the use of guru mode (-g).
Writes a long value to kernel memory
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
set_kernel_long(addr:long,val:long)
-</pre></div><div class="refsect1"><a name="idm47245124082096"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685928544"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The kernel address to write the long to
</p></dd><dt><span class="term"><em class="parameter"><code>val</code></em></span></dt><dd><p>
The long which is to be written
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124076880"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685923328"></a><h2>Description</h2><p>
Writes the long value to a given kernel memory address.
Reports an error when writing to the given address fails.
Requires the use of guru mode (-g).
Writes a pointer value to kernel memory.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
set_kernel_pointer(addr:long,val:long)
-</pre></div><div class="refsect1"><a name="idm47245124068720"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685915280"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The kernel address to write the pointer to
</p></dd><dt><span class="term"><em class="parameter"><code>val</code></em></span></dt><dd><p>
The pointer which is to be written
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124063504"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685910064"></a><h2>Description</h2><p>
Writes the pointer value to a given kernel memory address.
Reports an error when writing to the given address fails.
Requires the use of guru mode (-g).
Writes a short value to kernel memory
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
set_kernel_short(addr:long,val:long)
-</pre></div><div class="refsect1"><a name="idm47245124055456"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685901904"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The kernel address to write the short to
</p></dd><dt><span class="term"><em class="parameter"><code>val</code></em></span></dt><dd><p>
The short which is to be written
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124050240"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685896688"></a><h2>Description</h2><p>
Writes the short value to a given kernel memory address.
Reports an error when writing to the given address fails.
Requires the use of guru mode (-g).
Writes a string of given length to kernel memory
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
set_kernel_string_n(addr:long,n:long,val:string)
-</pre></div><div class="refsect1"><a name="idm47245124028880"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685875280"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The kernel address to write the string to
</p></dd><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
The maximum length of the string
</p></dd><dt><span class="term"><em class="parameter"><code>val</code></em></span></dt><dd><p>
The string which is to be written
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124021664"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685868064"></a><h2>Description</h2><p>
Writes the given string up to a maximum given length to a
given kernel memory address. Reports an error on string copy fault.
Requires the use of guru mode (-g).
Writes a string to kernel memory
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
set_kernel_string(addr:long,val:string)
-</pre></div><div class="refsect1"><a name="idm47245124042144"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685888608"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The kernel address to write the string to
</p></dd><dt><span class="term"><em class="parameter"><code>val</code></em></span></dt><dd><p>
The string which is to be written
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124036928"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685883392"></a><h2>Description</h2><p>
Writes the given string to a given kernel
memory address. Reports an error on string copy fault.
Requires the use of guru mode (-g).
Returns the session ID of the current process
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
sid:long()
-</pre></div><div class="refsect1"><a name="idm47245130967968"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692811376"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130966816"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692810224"></a><h2>Description</h2><p>
The session ID of a process is the process group ID
of the session leader. Session ID is stored in the signal_struct
since Kernel 2.6.0.
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.check_ignored.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-check-ignored.html" title="probe::signal.check_ignored"><link rel="next" href="API-signal-checkperm.html" title="probe::signal.checkperm"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.check_ignored.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-check-ignored.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-checkperm.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-check-ignored-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.check_ignored.return —
Check to see signal is ignored completed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.check_ignored.return </pre></div><div class="refsect1"><a name="idm47245125553664"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.check_ignored.return </pre></div><div class="refsect1"><a name="idm47511687399984"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
Return value as a string
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of the probe point
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-signal-check-ignored.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-signal-checkperm.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::signal.check_ignored</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::signal.checkperm</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.check_ignored</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-sigset-mask-str.html" title="function::sigset_mask_str"><link rel="next" href="API-signal-check-ignored-return.html" title="probe::signal.check_ignored.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.check_ignored</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sigset-mask-str.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-check-ignored-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-check-ignored"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.check_ignored —
Checking to see signal is ignored
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.check_ignored </pre></div><div class="refsect1"><a name="idm47245125569744"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sig</code></em></span></dt><dd><p>
- The number of the signal
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.check_ignored </pre></div><div class="refsect1"><a name="idm47511687416016"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sig_name</code></em></span></dt><dd><p>
+ A string representation of the signal
</p></dd><dt><span class="term"><em class="parameter"><code>sig_pid</code></em></span></dt><dd><p>
The PID of the process receiving the signal
+ </p></dd><dt><span class="term"><em class="parameter"><code>sig</code></em></span></dt><dd><p>
+ The number of the signal
</p></dd><dt><span class="term"><em class="parameter"><code>pid_name</code></em></span></dt><dd><p>
Name of the process receiving the signal
- </p></dd><dt><span class="term"><em class="parameter"><code>sig_name</code></em></span></dt><dd><p>
- A string representation of the signal
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sigset-mask-str.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-signal-check-ignored-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::sigset_mask_str</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::signal.check_ignored.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.checkperm.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-checkperm.html" title="probe::signal.checkperm"><link rel="next" href="API-signal-do-action.html" title="probe::signal.do_action"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.checkperm.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-checkperm.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-do-action.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-checkperm-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.checkperm.return —
Check performed on a sent signal completed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.checkperm.return </pre></div><div class="refsect1"><a name="idm47245125517632"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.checkperm.return </pre></div><div class="refsect1"><a name="idm47511687363920"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
Return value as a string
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of the probe point
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-signal-checkperm.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-signal-do-action.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::signal.checkperm</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::signal.do_action</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.checkperm</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-check-ignored-return.html" title="probe::signal.check_ignored.return"><link rel="next" href="API-signal-checkperm-return.html" title="probe::signal.checkperm.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.checkperm</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-check-ignored-return.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-checkperm-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-checkperm"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.checkperm —
Check being performed on a sent signal
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.checkperm </pre></div><div class="refsect1"><a name="idm47245125541760"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sig</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.checkperm </pre></div><div class="refsect1"><a name="idm47511687388096"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+ A task handle to the signal recipient
+ </p></dd><dt><span class="term"><em class="parameter"><code>sig_pid</code></em></span></dt><dd><p>
+ The PID of the process receiving the signal
+ </p></dd><dt><span class="term"><em class="parameter"><code>sig_name</code></em></span></dt><dd><p>
+ A string representation of the signal
+ </p></dd><dt><span class="term"><em class="parameter"><code>sig</code></em></span></dt><dd><p>
The number of the signal
+ </p></dd><dt><span class="term"><em class="parameter"><code>pid_name</code></em></span></dt><dd><p>
+ Name of the process receiving the signal
</p></dd><dt><span class="term"><em class="parameter"><code>sinfo</code></em></span></dt><dd><p>
The address of the siginfo structure
- </p></dd><dt><span class="term"><em class="parameter"><code>si_code</code></em></span></dt><dd><p>
- Indicates the signal type
- </p></dd><dt><span class="term"><em class="parameter"><code>sig_pid</code></em></span></dt><dd><p>
- The PID of the process receiving the signal
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
- A task handle to the signal recipient
- </p></dd><dt><span class="term"><em class="parameter"><code>pid_name</code></em></span></dt><dd><p>
- Name of the process receiving the signal
- </p></dd><dt><span class="term"><em class="parameter"><code>sig_name</code></em></span></dt><dd><p>
- A string representation of the signal
+ </p></dd><dt><span class="term"><em class="parameter"><code>si_code</code></em></span></dt><dd><p>
+ Indicates the signal type
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-signal-check-ignored-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-signal-checkperm-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::signal.check_ignored.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::signal.checkperm.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.do_action.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-do-action.html" title="probe::signal.do_action"><link rel="next" href="API-signal-flush.html" title="probe::signal.flush"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.do_action.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-do-action.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-flush.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-do-action-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.do_action.return —
Examining or changing a signal action completed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.do_action.return </pre></div><div class="refsect1"><a name="idm47245125483520"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.do_action.return </pre></div><div class="refsect1"><a name="idm47511687329840"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
Return value as a string
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of the probe point
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-signal-do-action.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-signal-flush.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::signal.do_action</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::signal.flush</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.do_action</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-checkperm-return.html" title="probe::signal.checkperm.return"><link rel="next" href="API-signal-do-action-return.html" title="probe::signal.do_action.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.do_action</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-checkperm-return.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-do-action-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-do-action"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.do_action —
Examining or changing a signal action
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.do_action </pre></div><div class="refsect1"><a name="idm47245125505744"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.do_action </pre></div><div class="refsect1"><a name="idm47511687352016"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sa_mask</code></em></span></dt><dd><p>
+ The new mask of the signal
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the probe point
+ </p></dd><dt><span class="term"><em class="parameter"><code>sig</code></em></span></dt><dd><p>
+ The signal to be examined/changed
</p></dd><dt><span class="term"><em class="parameter"><code>sigact_addr</code></em></span></dt><dd><p>
The address of the new sigaction
struct associated with the signal
</p></dd><dt><span class="term"><em class="parameter"><code>sig_name</code></em></span></dt><dd><p>
A string representation of the signal
- </p></dd><dt><span class="term"><em class="parameter"><code>sa_mask</code></em></span></dt><dd><p>
- The new mask of the signal
- </p></dd><dt><span class="term"><em class="parameter"><code>sig</code></em></span></dt><dd><p>
- The signal to be examined/changed
- </p></dd><dt><span class="term"><em class="parameter"><code>sa_handler</code></em></span></dt><dd><p>
- The new handler of the signal
</p></dd><dt><span class="term"><em class="parameter"><code>oldsigact_addr</code></em></span></dt><dd><p>
The address of the old sigaction
struct associated with the signal
+ </p></dd><dt><span class="term"><em class="parameter"><code>sa_handler</code></em></span></dt><dd><p>
+ The new handler of the signal
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-signal-checkperm-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-signal-do-action-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::signal.checkperm.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::signal.do_action.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.flush</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-do-action-return.html" title="probe::signal.do_action.return"><link rel="next" href="API-signal-force-segv.html" title="probe::signal.force_segv"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.flush</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-do-action-return.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-force-segv.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-flush"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.flush —
Flushing all pending signals for a task
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.flush </pre></div><div class="refsect1"><a name="idm47245125471616"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
- The task handler of the process performing the flush
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.flush </pre></div><div class="refsect1"><a name="idm47511687317936"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of the probe point
</p></dd><dt><span class="term"><em class="parameter"><code>pid_name</code></em></span></dt><dd><p>
The name of the process associated with the task
performing the flush
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of the probe point
</p></dd><dt><span class="term"><em class="parameter"><code>sig_pid</code></em></span></dt><dd><p>
The PID of the process associated with the task
performing the flush
+ </p></dd><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+ The task handler of the process performing the flush
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-signal-do-action-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-signal-force-segv.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::signal.do_action.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::signal.force_segv</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.force_segv.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-force-segv.html" title="probe::signal.force_segv"><link rel="next" href="API-signal-handle.html" title="probe::signal.handle"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.force_segv.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-force-segv.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-handle.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-force-segv-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.force_segv.return —
Forcing send of SIGSEGV complete
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.force_segv.return </pre></div><div class="refsect1"><a name="idm47245125437440"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
- Return value as a string
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.force_segv.return </pre></div><div class="refsect1"><a name="idm47511687283760"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the probe point
+ </p></dd><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
+ Return value as a string
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-signal-force-segv.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-signal-handle.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::signal.force_segv</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::signal.handle</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.force_segv</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-flush.html" title="probe::signal.flush"><link rel="next" href="API-signal-force-segv-return.html" title="probe::signal.force_segv.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.force_segv</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-flush.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-force-segv-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-force-segv"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.force_segv —
Forcing send of SIGSEGV
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.force_segv </pre></div><div class="refsect1"><a name="idm47245125455536"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>pid_name</code></em></span></dt><dd><p>
- Name of the process receiving the signal
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.force_segv </pre></div><div class="refsect1"><a name="idm47511687301808"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sig_name</code></em></span></dt><dd><p>
+ A string representation of the signal
</p></dd><dt><span class="term"><em class="parameter"><code>sig_pid</code></em></span></dt><dd><p>
The PID of the process receiving the signal
- </p></dd><dt><span class="term"><em class="parameter"><code>sig_name</code></em></span></dt><dd><p>
- A string representation of the signal
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of the probe point
</p></dd><dt><span class="term"><em class="parameter"><code>sig</code></em></span></dt><dd><p>
The number of the signal
+ </p></dd><dt><span class="term"><em class="parameter"><code>pid_name</code></em></span></dt><dd><p>
+ Name of the process receiving the signal
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-signal-flush.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-signal-force-segv-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::signal.flush</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::signal.force_segv.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.handle.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-handle.html" title="probe::signal.handle"><link rel="next" href="API-signal-pending.html" title="probe::signal.pending"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.handle.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-handle.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-pending.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-handle-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.handle.return —
Signal handler invocation completed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.handle.return </pre></div><div class="refsect1"><a name="idm47245125399216"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.handle.return </pre></div><div class="refsect1"><a name="idm47511687245488"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
Return value as a string
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125394000"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of the probe point
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687240272"></a><h2>Description</h2><p>
(deprecated in SystemTap 2.1)
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-signal-handle.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-signal-pending.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::signal.handle</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::signal.pending</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.handle</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-force-segv-return.html" title="probe::signal.force_segv.return"><link rel="next" href="API-signal-handle-return.html" title="probe::signal.handle.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.handle</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-force-segv-return.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-handle-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-handle"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.handle —
Signal handler being invoked
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.handle </pre></div><div class="refsect1"><a name="idm47245125425552"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>oldset_addr</code></em></span></dt><dd><p>
- The address of the bitmask array of blocked signals
- (deprecated in SystemTap 2.1)
- </p></dd><dt><span class="term"><em class="parameter"><code>sinfo</code></em></span></dt><dd><p>
- The address of the siginfo table
- </p></dd><dt><span class="term"><em class="parameter"><code>sig</code></em></span></dt><dd><p>
- The signal number that invoked the signal handler
- </p></dd><dt><span class="term"><em class="parameter"><code>sig_mode</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.handle </pre></div><div class="refsect1"><a name="idm47511687271824"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sig_mode</code></em></span></dt><dd><p>
Indicates whether the signal was a user-mode or kernel-mode signal
</p></dd><dt><span class="term"><em class="parameter"><code>ka_addr</code></em></span></dt><dd><p>
The address of the k_sigaction table
associated with the signal
- </p></dd><dt><span class="term"><em class="parameter"><code>sig_code</code></em></span></dt><dd><p>
- The si_code value of the siginfo signal
</p></dd><dt><span class="term"><em class="parameter"><code>regs</code></em></span></dt><dd><p>
The address of the kernel-mode stack area (deprecated in
SystemTap 2.1)
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of the probe point
+ </p></dd><dt><span class="term"><em class="parameter"><code>oldset_addr</code></em></span></dt><dd><p>
+ The address of the bitmask array of blocked signals
+ (deprecated in SystemTap 2.1)
</p></dd><dt><span class="term"><em class="parameter"><code>sig_name</code></em></span></dt><dd><p>
A string representation of the signal
+ </p></dd><dt><span class="term"><em class="parameter"><code>sig</code></em></span></dt><dd><p>
+ The signal number that invoked the signal handler
+ </p></dd><dt><span class="term"><em class="parameter"><code>sinfo</code></em></span></dt><dd><p>
+ The address of the siginfo table
+ </p></dd><dt><span class="term"><em class="parameter"><code>sig_code</code></em></span></dt><dd><p>
+ The si_code value of the siginfo signal
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of the probe point
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-signal-force-segv-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-signal-handle-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::signal.force_segv.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::signal.handle.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.pending.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-pending.html" title="probe::signal.pending"><link rel="next" href="API-signal-procmask.html" title="probe::signal.procmask"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.pending.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-pending.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-procmask.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-pending-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.pending.return —
Examination of pending signal completed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.pending.return </pre></div><div class="refsect1"><a name="idm47245125370640"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.pending.return </pre></div><div class="refsect1"><a name="idm47511687216976"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the probe point
</p></dd><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
Return value as a string
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.pending</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-handle-return.html" title="probe::signal.handle.return"><link rel="next" href="API-signal-pending-return.html" title="probe::signal.pending.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.pending</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-handle-return.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-pending-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-pending"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.pending —
Examining pending signal
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.pending </pre></div><div class="refsect1"><a name="idm47245125386096"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sigset_add</code></em></span></dt><dd><p>
- The address of the user-space signal set
- (sigset_t)
- </p></dd><dt><span class="term"><em class="parameter"><code>sigset_size</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.pending </pre></div><div class="refsect1"><a name="idm47511687232320"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sigset_size</code></em></span></dt><dd><p>
The size of the user-space signal set
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the probe point
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125378816"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>sigset_add</code></em></span></dt><dd><p>
+ The address of the user-space signal set
+ (sigset_t)
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687225040"></a><h2>Description</h2><p>
This probe is used to examine a set of signals pending for delivery
to a specific thread. This normally occurs when the
do_sigpending kernel function is executed.
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.procmask.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-procmask.html" title="probe::signal.procmask"><link rel="next" href="API-signal-send.html" title="probe::signal.send"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.procmask.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-procmask.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-send.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-procmask-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.procmask.return —
Examining or changing blocked signals completed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.procmask.return </pre></div><div class="refsect1"><a name="idm47245125340320"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
- Return value as a string
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.procmask.return </pre></div><div class="refsect1"><a name="idm47511687186656"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the probe point
+ </p></dd><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
+ Return value as a string
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-signal-procmask.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-signal-send.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::signal.procmask</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::signal.send</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.procmask</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-pending-return.html" title="probe::signal.pending.return"><link rel="next" href="API-signal-procmask-return.html" title="probe::signal.procmask.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.procmask</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-pending-return.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-procmask-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-procmask"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.procmask —
Examining or changing blocked signals
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.procmask </pre></div><div class="refsect1"><a name="idm47245125358688"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>oldsigset_addr</code></em></span></dt><dd><p>
- The old address of the signal set
- (sigset_t)
- </p></dd><dt><span class="term"><em class="parameter"><code>sigset_addr</code></em></span></dt><dd><p>
- The address of the signal set (sigset_t)
- to be implemented
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>sigset</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.procmask </pre></div><div class="refsect1"><a name="idm47511687205024"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sigset</code></em></span></dt><dd><p>
The actual value to be set for sigset_t
(correct?)
+ </p></dd><dt><span class="term"><em class="parameter"><code>oldsigset_addr</code></em></span></dt><dd><p>
+ The old address of the signal set
+ (sigset_t)
</p></dd><dt><span class="term"><em class="parameter"><code>how</code></em></span></dt><dd><p>
Indicates how to change the blocked signals; possible values are
SIG_BLOCK=0 (for blocking signals),
SIG_UNBLOCK=1 (for unblocking signals), and
SIG_SETMASK=2 for setting the signal mask.
+ </p></dd><dt><span class="term"><em class="parameter"><code>sigset_addr</code></em></span></dt><dd><p>
+ The address of the signal set (sigset_t)
+ to be implemented
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of the probe point
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-signal-pending-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-signal-procmask-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::signal.pending.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::signal.procmask.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.send.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-send.html" title="probe::signal.send"><link rel="next" href="API-signal-send-sig-queue.html" title="probe::signal.send_sig_queue"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.send.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-send.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-send-sig-queue.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-send-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.send.return —
Signal being sent to a process completed (deprecated in SystemTap 2.1)
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.send.return </pre></div><div class="refsect1"><a name="idm47245125298912"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.send.return </pre></div><div class="refsect1"><a name="idm47511687145248"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
+ The return value to either __group_send_sig_info, specific_send_sig_info, or send_sigqueue
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
The name of the function used to send out the signal
</p></dd><dt><span class="term"><em class="parameter"><code>send2queue</code></em></span></dt><dd><p>
Indicates whether the sent signal was sent to an existing sigqueue
- </p></dd><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
- The return value to either __group_send_sig_info, specific_send_sig_info, or send_sigqueue
</p></dd><dt><span class="term"><em class="parameter"><code>shared</code></em></span></dt><dd><p>
Indicates whether the sent signal is shared by the thread group.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125289472"></a><h2>Context</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687135808"></a><h2>Context</h2><p>
The signal's sender. (correct?)
-</p></div><div class="refsect1"><a name="idm47245125288240"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511687134576"></a><h2>Description</h2><p>
Possible __group_send_sig_info and
specific_send_sig_info return values are as follows;
</p><p>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.send_sig_queue.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-send-sig-queue.html" title="probe::signal.send_sig_queue"><link rel="next" href="API-signal-sys-tgkill.html" title="probe::signal.sys_tgkill"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.send_sig_queue.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-send-sig-queue.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-sys-tgkill.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-send-sig-queue-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.send_sig_queue.return —
Queuing a signal to a process completed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.send_sig_queue.return </pre></div><div class="refsect1"><a name="idm47245125256704"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.send_sig_queue.return </pre></div><div class="refsect1"><a name="idm47511687103088"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the probe point
</p></dd><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
Return value as a string
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.send_sig_queue</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-send-return.html" title="probe::signal.send.return"><link rel="next" href="API-signal-send-sig-queue-return.html" title="probe::signal.send_sig_queue.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.send_sig_queue</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-send-return.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-send-sig-queue-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-send-sig-queue"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.send_sig_queue —
Queuing a signal to a process
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.send_sig_queue </pre></div><div class="refsect1"><a name="idm47245125276864"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sigqueue_addr</code></em></span></dt><dd><p>
- The address of the signal queue
- </p></dd><dt><span class="term"><em class="parameter"><code>sig_pid</code></em></span></dt><dd><p>
- The PID of the process to which the signal is queued
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.send_sig_queue </pre></div><div class="refsect1"><a name="idm47511687123200"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid_name</code></em></span></dt><dd><p>
+ Name of the process to which the signal is queued
+ </p></dd><dt><span class="term"><em class="parameter"><code>sig</code></em></span></dt><dd><p>
+ The queued signal
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>pid_name</code></em></span></dt><dd><p>
- Name of the process to which the signal is queued
+ </p></dd><dt><span class="term"><em class="parameter"><code>sigqueue_addr</code></em></span></dt><dd><p>
+ The address of the signal queue
</p></dd><dt><span class="term"><em class="parameter"><code>sig_name</code></em></span></dt><dd><p>
A string representation of the signal
- </p></dd><dt><span class="term"><em class="parameter"><code>sig</code></em></span></dt><dd><p>
- The queued signal
+ </p></dd><dt><span class="term"><em class="parameter"><code>sig_pid</code></em></span></dt><dd><p>
+ The PID of the process to which the signal is queued
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-signal-send-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-signal-send-sig-queue-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::signal.send.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::signal.send_sig_queue.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.send</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-procmask-return.html" title="probe::signal.procmask.return"><link rel="next" href="API-signal-send-return.html" title="probe::signal.send.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.send</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-procmask-return.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-send-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-send"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.send —
Signal being sent to a process
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.send </pre></div><div class="refsect1"><a name="idm47245125328432"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sig_pid</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.send </pre></div><div class="refsect1"><a name="idm47511687174768"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sig_pid</code></em></span></dt><dd><p>
The PID of the process receiving the signal
- </p></dd><dt><span class="term"><em class="parameter"><code>send2queue</code></em></span></dt><dd><p>
- Indicates whether the signal is sent to an existing
- sigqueue (deprecated in SystemTap 2.1)
- </p></dd><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
- A task handle to the signal recipient
- </p></dd><dt><span class="term"><em class="parameter"><code>pid_name</code></em></span></dt><dd><p>
- The name of the signal recipient
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- The name of the function used to send out the signal
</p></dd><dt><span class="term"><em class="parameter"><code>sig_name</code></em></span></dt><dd><p>
A string representation of the signal
- </p></dd><dt><span class="term"><em class="parameter"><code>sig</code></em></span></dt><dd><p>
- The number of the signal
- </p></dd><dt><span class="term"><em class="parameter"><code>sinfo</code></em></span></dt><dd><p>
- The address of siginfo struct
</p></dd><dt><span class="term"><em class="parameter"><code>shared</code></em></span></dt><dd><p>
Indicates whether the signal is shared by the thread group
+ </p></dd><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+ A task handle to the signal recipient
+ </p></dd><dt><span class="term"><em class="parameter"><code>sinfo</code></em></span></dt><dd><p>
+ The address of siginfo struct
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ The name of the function used to send out the signal
</p></dd><dt><span class="term"><em class="parameter"><code>si_code</code></em></span></dt><dd><p>
Indicates the signal type
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125306896"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>send2queue</code></em></span></dt><dd><p>
+ Indicates whether the signal is sent to an existing
+ sigqueue (deprecated in SystemTap 2.1)
+ </p></dd><dt><span class="term"><em class="parameter"><code>sig</code></em></span></dt><dd><p>
+ The number of the signal
+ </p></dd><dt><span class="term"><em class="parameter"><code>pid_name</code></em></span></dt><dd><p>
+ The name of the signal recipient
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687153232"></a><h2>Context</h2><p>
The signal's sender.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-signal-procmask-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-signal-send-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::signal.procmask.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::signal.send.return</span></td></tr></table></div></body></html>
Returns the string representation of a signal number
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
signal_str(num:)
-</pre></div><div class="refsect1"><a name="idm47245125589568"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>num</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511687436000"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>num</code></em></span></dt><dd><p>
the signal number to convert to string.
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sa-handler-str.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sigset-mask-str.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::sa_handler_str</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::sigset_mask_str</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.sys_tgkill.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-sys-tgkill.html" title="probe::signal.sys_tgkill"><link rel="next" href="API-signal-sys-tkill.html" title="probe::signal.sys_tkill"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.sys_tgkill.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-sys-tgkill.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-sys-tkill.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-sys-tgkill-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.sys_tgkill.return —
Sending kill signal to a thread group completed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.sys_tgkill.return </pre></div><div class="refsect1"><a name="idm47245125221136"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.sys_tgkill.return </pre></div><div class="refsect1"><a name="idm47511687067632"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
The return value to either __group_send_sig_info,
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the probe point
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.sys_tgkill</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-send-sig-queue-return.html" title="probe::signal.send_sig_queue.return"><link rel="next" href="API-signal-sys-tgkill-return.html" title="probe::signal.sys_tgkill.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.sys_tgkill</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-send-sig-queue-return.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-sys-tgkill-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-sys-tgkill"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.sys_tgkill —
Sending kill signal to a thread group
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.sys_tgkill </pre></div><div class="refsect1"><a name="idm47245125244720"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sig</code></em></span></dt><dd><p>
- The specific kill signal sent to the process
- </p></dd><dt><span class="term"><em class="parameter"><code>tgid</code></em></span></dt><dd><p>
- The thread group ID of the thread receiving the kill signal
- </p></dd><dt><span class="term"><em class="parameter"><code>sig_pid</code></em></span></dt><dd><p>
- The PID of the thread receiving the kill signal
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.sys_tgkill </pre></div><div class="refsect1"><a name="idm47511687091152"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
- A task handle to the signal recipient
</p></dd><dt><span class="term"><em class="parameter"><code>pid_name</code></em></span></dt><dd><p>
The name of the signal recipient
+ </p></dd><dt><span class="term"><em class="parameter"><code>sig</code></em></span></dt><dd><p>
+ The specific kill signal sent to the process
</p></dd><dt><span class="term"><em class="parameter"><code>sig_name</code></em></span></dt><dd><p>
A string representation of the signal
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125229328"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>sig_pid</code></em></span></dt><dd><p>
+ The PID of the thread receiving the kill signal
+ </p></dd><dt><span class="term"><em class="parameter"><code>tgid</code></em></span></dt><dd><p>
+ The thread group ID of the thread receiving the kill signal
+ </p></dd><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+ A task handle to the signal recipient
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687075760"></a><h2>Description</h2><p>
The tgkill call is similar to tkill,
except that it also allows the caller to specify the thread group ID of
the thread to be signalled. This protects against TID reuse.
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.sys_tkill</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-sys-tgkill-return.html" title="probe::signal.sys_tgkill.return"><link rel="next" href="API-signal-syskill.html" title="probe::signal.syskill"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.sys_tkill</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-sys-tgkill-return.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-syskill.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-sys-tkill"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.sys_tkill —
Sending a kill signal to a thread
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.sys_tkill </pre></div><div class="refsect1"><a name="idm47245125209152"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sig_name</code></em></span></dt><dd><p>
- A string representation of the signal
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.sys_tkill </pre></div><div class="refsect1"><a name="idm47511687055648"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid_name</code></em></span></dt><dd><p>
+ The name of the signal recipient
+ </p></dd><dt><span class="term"><em class="parameter"><code>sig</code></em></span></dt><dd><p>
+ The specific signal sent to the process
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>pid_name</code></em></span></dt><dd><p>
- The name of the signal recipient
</p></dd><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
A task handle to the signal recipient
+ </p></dd><dt><span class="term"><em class="parameter"><code>sig_name</code></em></span></dt><dd><p>
+ A string representation of the signal
</p></dd><dt><span class="term"><em class="parameter"><code>sig_pid</code></em></span></dt><dd><p>
The PID of the process receiving the kill signal
- </p></dd><dt><span class="term"><em class="parameter"><code>sig</code></em></span></dt><dd><p>
- The specific signal sent to the process
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125195808"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687042304"></a><h2>Description</h2><p>
The tkill call is analogous to kill(2),
except that it also allows a process within a specific thread group to
be targeted. Such processes are targeted through their unique
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.syskill.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-syskill.html" title="probe::signal.syskill"><link rel="next" href="API-signal-systkill-return.html" title="probe::signal.systkill.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.syskill.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-syskill.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-systkill-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-syskill-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.syskill.return —
Sending kill signal completed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.syskill.return </pre></div><div class="refsect1"><a name="idm47245125167552"></a><h2>Values</h2><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.syskill.return </pre></div><div class="refsect1"><a name="idm47511687014096"></a><h2>Values</h2><p>
None
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-signal-syskill.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-signal-systkill-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::signal.syskill</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::signal.systkill.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.syskill</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-sys-tkill.html" title="probe::signal.sys_tkill"><link rel="next" href="API-signal-syskill-return.html" title="probe::signal.syskill.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.syskill</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-sys-tkill.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-syskill-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-syskill"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.syskill —
Sending kill signal to a process
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.syskill </pre></div><div class="refsect1"><a name="idm47245125187664"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sig</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.syskill </pre></div><div class="refsect1"><a name="idm47511687034160"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of the probe point
+ </p></dd><dt><span class="term"><em class="parameter"><code>sig</code></em></span></dt><dd><p>
The specific signal sent to the process
- </p></dd><dt><span class="term"><em class="parameter"><code>sig_name</code></em></span></dt><dd><p>
- A string representation of the signal
</p></dd><dt><span class="term"><em class="parameter"><code>pid_name</code></em></span></dt><dd><p>
The name of the signal recipient
- </p></dd><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
- A task handle to the signal recipient
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of the probe point
+ </p></dd><dt><span class="term"><em class="parameter"><code>sig_name</code></em></span></dt><dd><p>
+ A string representation of the signal
</p></dd><dt><span class="term"><em class="parameter"><code>sig_pid</code></em></span></dt><dd><p>
The PID of the process receiving the signal
+ </p></dd><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+ A task handle to the signal recipient
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-signal-sys-tkill.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-signal-syskill-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::signal.sys_tkill</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::signal.syskill.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.systkill.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-syskill-return.html" title="probe::signal.syskill.return"><link rel="next" href="API-signal-wakeup.html" title="probe::signal.wakeup"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.systkill.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-syskill-return.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-signal-wakeup.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-systkill-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.systkill.return —
Sending kill signal to a thread completed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.systkill.return </pre></div><div class="refsect1"><a name="idm47245125159584"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.systkill.return </pre></div><div class="refsect1"><a name="idm47511687006080"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>retstr</code></em></span></dt><dd><p>
The return value to either __group_send_sig_info,
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of the probe point
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-signal-syskill-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-signal-wakeup.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::signal.syskill.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::signal.wakeup</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::signal.wakeup</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="signal.stp.html" title="Chapter 17. Signal Tapset"><link rel="prev" href="API-signal-systkill-return.html" title="probe::signal.systkill.return"><link rel="next" href="errno.stp.html" title="Chapter 18. Errno Tapset"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::signal.wakeup</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-signal-systkill-return.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Signal Tapset</th><td width="20%" align="right"> <a accesskey="n" href="errno.stp.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-signal-wakeup"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::signal.wakeup —
Sleeping process being wakened for signal
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.wakeup </pre></div><div class="refsect1"><a name="idm47245125147648"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sig_pid</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">signal.wakeup </pre></div><div class="refsect1"><a name="idm47511686994144"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sig_pid</code></em></span></dt><dd><p>
The PID of the process to wake
- </p></dd><dt><span class="term"><em class="parameter"><code>pid_name</code></em></span></dt><dd><p>
- Name of the process to wake
+ </p></dd><dt><span class="term"><em class="parameter"><code>resume</code></em></span></dt><dd><p>
+ Indicates whether to wake up a task in a
+ STOPPED or TRACED state
</p></dd><dt><span class="term"><em class="parameter"><code>state_mask</code></em></span></dt><dd><p>
A string representation indicating the mask
of task states to wake. Possible values are
TASK_INTERRUPTIBLE, TASK_STOPPED,
TASK_TRACED, TASK_WAKEKILL, and TASK_INTERRUPTIBLE.
- </p></dd><dt><span class="term"><em class="parameter"><code>resume</code></em></span></dt><dd><p>
- Indicates whether to wake up a task in a
- STOPPED or TRACED state
+ </p></dd><dt><span class="term"><em class="parameter"><code>pid_name</code></em></span></dt><dd><p>
+ Name of the process to wake
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-signal-systkill-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="errno.stp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::signal.systkill.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 18. Errno Tapset</td></tr></table></div></body></html>
Returns the string representation of a sigset
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
sigset_mask_str:string(mask:long)
-</pre></div><div class="refsect1"><a name="idm47245125579648"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511687426032"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>
the sigset to convert to string.
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-signal-str.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="signal.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-signal-check-ignored.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::signal_str</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::signal.check_ignored</span></td></tr></table></div></body></html>
Given a protocol family number, return a string representation
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
sock_fam_num2str:string(family:long)
-</pre></div><div class="refsect1"><a name="idm47245126837648"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688683536"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
The family number
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-inet-get-local-port.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sock-fam-str2num.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::inet_get_local_port</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::sock_fam_str2num</span></td></tr></table></div></body></html>
Given a protocol family name (string), return the corresponding protocol family number
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
sock_fam_str2num:long(family:string)
-</pre></div><div class="refsect1"><a name="idm47245126827712"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688673488"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
The family name
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sock-fam-num2str.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sock-prot-num2str.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::sock_fam_num2str</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::sock_prot_num2str</span></td></tr></table></div></body></html>
Given a protocol number, return a string representation
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
sock_prot_num2str:string(proto:long)
-</pre></div><div class="refsect1"><a name="idm47245126817760"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>proto</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688663472"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>proto</code></em></span></dt><dd><p>
The protocol number
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sock-fam-str2num.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sock-prot-str2num.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::sock_fam_str2num</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::sock_prot_str2num</span></td></tr></table></div></body></html>
Given a protocol name (string), return the corresponding protocol number
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
sock_prot_str2num:long(proto:string)
-</pre></div><div class="refsect1"><a name="idm47245126807728"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>proto</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688653440"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>proto</code></em></span></dt><dd><p>
The protocol name
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sock-prot-num2str.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sock-state-num2str.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::sock_prot_num2str</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::sock_state_num2str</span></td></tr></table></div></body></html>
Given a socket state number, return a string representation
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
sock_state_num2str:string(state:long)
-</pre></div><div class="refsect1"><a name="idm47245126797776"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688643472"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
The state number
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sock-prot-str2num.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sock-state-str2num.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::sock_prot_str2num</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::sock_state_str2num</span></td></tr></table></div></body></html>
Given a socket state string, return the corresponding state number
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
sock_state_str2num:long(state:string)
-</pre></div><div class="refsect1"><a name="idm47245126787744"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688633552"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
The state name
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sock-state-num2str.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-socket-aio-read.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::sock_state_num2str</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::socket.aio_read</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::socket.aio_read.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="socket.stp.html" title="Chapter 14. Socket Tapset"><link rel="prev" href="API-socket-aio-read.html" title="probe::socket.aio_read"><link rel="next" href="API-socket-aio-write.html" title="probe::socket.aio_write"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::socket.aio_read.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-socket-aio-read.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Socket Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-socket-aio-write.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-socket-aio-read-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::socket.aio_read.return —
Conclusion of message received via <code class="function">sock_aio_read</code>
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.aio_read.return </pre></div><div class="refsect1"><a name="idm47245126751136"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.aio_read.return </pre></div><div class="refsect1"><a name="idm47511688597056"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
+ Socket type value
+ </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
Protocol family value
+ </p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
+ Socket state value
+ </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
+ Socket flags value
+ </p></dd><dt><span class="term"><em class="parameter"><code>success</code></em></span></dt><dd><p>
+ Was receive successful? (1 = yes, 0 = no)
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of this probe
</p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
Protocol value
</p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
Size of message received (in bytes) or error code if success = 0
- </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
- Socket flags value
- </p></dd><dt><span class="term"><em class="parameter"><code>success</code></em></span></dt><dd><p>
- Was receive successful? (1 = yes, 0 = no)
- </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
- Socket type value
- </p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
- Socket state value
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126733760"></a><h2>Context</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688579680"></a><h2>Context</h2><p>
The message receiver.
-</p></div><div class="refsect1"><a name="idm47245126732528"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511688578448"></a><h2>Description</h2><p>
Fires at the conclusion of receiving a message on a socket
via the <code class="function">sock_aio_read</code> function
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-socket-aio-read.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-socket-aio-write.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::socket.aio_read</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::socket.aio_write</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::socket.aio_read</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="socket.stp.html" title="Chapter 14. Socket Tapset"><link rel="prev" href="API-sock-state-str2num.html" title="function::sock_state_str2num"><link rel="next" href="API-socket-aio-read-return.html" title="probe::socket.aio_read.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::socket.aio_read</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sock-state-str2num.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Socket Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-socket-aio-read-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-socket-aio-read"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::socket.aio_read —
Receiving message via <code class="function">sock_aio_read</code>
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.aio_read </pre></div><div class="refsect1"><a name="idm47245126777136"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.aio_read </pre></div><div class="refsect1"><a name="idm47511688622992"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
+ Socket type value
+ </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
+ Protocol value
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ Message size in bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of this probe
+ </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
+ Socket flags value
</p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
Protocol family value
</p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
Socket state value
- </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
- Socket type value
- </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
- Socket flags value
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- Message size in bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
- Protocol value
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126761840"></a><h2>Context</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688607696"></a><h2>Context</h2><p>
The message sender
-</p></div><div class="refsect1"><a name="idm47245126760624"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511688606480"></a><h2>Description</h2><p>
Fires at the beginning of receiving a message on a socket
via the <code class="function">sock_aio_read</code> function
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sock-state-str2num.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-socket-aio-read-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::sock_state_str2num</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::socket.aio_read.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::socket.aio_write.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="socket.stp.html" title="Chapter 14. Socket Tapset"><link rel="prev" href="API-socket-aio-write.html" title="probe::socket.aio_write"><link rel="next" href="API-socket-close.html" title="probe::socket.close"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::socket.aio_write.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-socket-aio-write.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Socket Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-socket-close.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-socket-aio-write-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::socket.aio_write.return —
Conclusion of message send via <code class="function">sock_aio_write</code>
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.aio_write.return </pre></div><div class="refsect1"><a name="idm47245126697152"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of this probe
- </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
- Protocol family value
- </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
- Socket type value
- </p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
- Socket state value
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.aio_write.return </pre></div><div class="refsect1"><a name="idm47511688543136"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
+ Socket flags value
</p></dd><dt><span class="term"><em class="parameter"><code>success</code></em></span></dt><dd><p>
Was receive successful? (1 = yes, 0 = no)
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of this probe
</p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
Protocol value
- </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
- Socket flags value
</p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
Size of message received (in bytes) or error code if success = 0
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126679776"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
+ Socket state value
+ </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ Protocol family value
+ </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
+ Socket type value
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688525760"></a><h2>Context</h2><p>
The message receiver.
-</p></div><div class="refsect1"><a name="idm47245126678544"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511688524528"></a><h2>Description</h2><p>
Fires at the conclusion of sending a message on a socket
via the <code class="function">sock_aio_write</code> function
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-socket-aio-write.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-socket-close.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::socket.aio_write</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::socket.close</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::socket.aio_write</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="socket.stp.html" title="Chapter 14. Socket Tapset"><link rel="prev" href="API-socket-aio-read-return.html" title="probe::socket.aio_read.return"><link rel="next" href="API-socket-aio-write-return.html" title="probe::socket.aio_write.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::socket.aio_write</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-socket-aio-read-return.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Socket Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-socket-aio-write-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-socket-aio-write"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::socket.aio_write —
Message send via <code class="function">sock_aio_write</code>
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.aio_write </pre></div><div class="refsect1"><a name="idm47245126723136"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.aio_write </pre></div><div class="refsect1"><a name="idm47511688569120"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
Socket state value
- </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
- Socket type value
- </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
- Protocol value
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- Message size in bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ Protocol family value
</p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
Socket flags value
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of this probe
- </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
- Protocol family value
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126707840"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
+ Protocol value
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ Message size in bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
+ Socket type value
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688553824"></a><h2>Context</h2><p>
The message sender
-</p></div><div class="refsect1"><a name="idm47245126706624"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511688552608"></a><h2>Description</h2><p>
Fires at the beginning of sending a message on a socket
via the <code class="function">sock_aio_write</code> function
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-socket-aio-read-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-socket-aio-write-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::socket.aio_read.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::socket.aio_write.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::socket.close.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="socket.stp.html" title="Chapter 14. Socket Tapset"><link rel="prev" href="API-socket-close.html" title="probe::socket.close"><link rel="next" href="API-socket-create.html" title="probe::socket.create"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::socket.close.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-socket-close.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Socket Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-socket-create.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-socket-close-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::socket.close.return —
Return from closing a socket
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.close.return </pre></div><div class="refsect1"><a name="idm47245126647360"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.close.return </pre></div><div class="refsect1"><a name="idm47511688493344"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of this probe
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126644160"></a><h2>Context</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688490144"></a><h2>Context</h2><p>
The requester (user process or kernel)
-</p></div><div class="refsect1"><a name="idm47245126642912"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511688488896"></a><h2>Description</h2><p>
Fires at the conclusion of closing a socket.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-socket-close.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-socket-create.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::socket.close</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::socket.create</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::socket.close</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="socket.stp.html" title="Chapter 14. Socket Tapset"><link rel="prev" href="API-socket-aio-write-return.html" title="probe::socket.aio_write.return"><link rel="next" href="API-socket-close-return.html" title="probe::socket.close.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::socket.close</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-socket-aio-write-return.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Socket Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-socket-close-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-socket-close"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::socket.close —
Close a socket
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.close </pre></div><div class="refsect1"><a name="idm47245126669888"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.close </pre></div><div class="refsect1"><a name="idm47511688515872"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
+ Socket type value
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of this probe
+ </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
Socket flags value
</p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
Protocol value
- </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
- Socket type value
</p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
Socket state value
</p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
Protocol family value
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of this probe
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126656608"></a><h2>Context</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688502592"></a><h2>Context</h2><p>
The requester (user process or kernel)
-</p></div><div class="refsect1"><a name="idm47245126655360"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511688501344"></a><h2>Description</h2><p>
Fires at the beginning of closing a socket.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-socket-aio-write-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-socket-close-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::socket.aio_write.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::socket.close.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::socket.create.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="socket.stp.html" title="Chapter 14. Socket Tapset"><link rel="prev" href="API-socket-create.html" title="probe::socket.create"><link rel="next" href="API-socket-readv.html" title="probe::socket.readv"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::socket.create.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-socket-create.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Socket Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-socket-readv.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-socket-create-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::socket.create.return —
Return from Creation of a socket
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.create.return </pre></div><div class="refsect1"><a name="idm47245126614384"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
- Protocol value
- </p></dd><dt><span class="term"><em class="parameter"><code>err</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.create.return </pre></div><div class="refsect1"><a name="idm47511688460368"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>err</code></em></span></dt><dd><p>
Error code if success == 0
- </p></dd><dt><span class="term"><em class="parameter"><code>requester</code></em></span></dt><dd><p>
- Requested by user process or the kernel (1 = kernel, 0 = user)
- </p></dd><dt><span class="term"><em class="parameter"><code>success</code></em></span></dt><dd><p>
- Was socket creation successful? (1 = yes, 0 = no)
</p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
Socket type value
- </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
- Protocol family value
+ </p></dd><dt><span class="term"><em class="parameter"><code>success</code></em></span></dt><dd><p>
+ Was socket creation successful? (1 = yes, 0 = no)
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of this probe
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126599040"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
+ Protocol value
+ </p></dd><dt><span class="term"><em class="parameter"><code>requester</code></em></span></dt><dd><p>
+ Requested by user process or the kernel (1 = kernel, 0 = user)
+ </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ Protocol family value
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688444976"></a><h2>Context</h2><p>
The requester (user process or kernel)
-</p></div><div class="refsect1"><a name="idm47245126597792"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511688443728"></a><h2>Description</h2><p>
Fires at the conclusion of creating a socket.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-socket-create.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-socket-readv.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::socket.create</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::socket.readv</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::socket.create</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="socket.stp.html" title="Chapter 14. Socket Tapset"><link rel="prev" href="API-socket-close-return.html" title="probe::socket.close.return"><link rel="next" href="API-socket-create-return.html" title="probe::socket.create.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::socket.create</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-socket-close-return.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Socket Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-socket-create-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-socket-create"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::socket.create —
Creation of a socket
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.create </pre></div><div class="refsect1"><a name="idm47245126634944"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
- Protocol value
- </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
- Socket type value
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.create </pre></div><div class="refsect1"><a name="idm47511688480976"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ Protocol family value
</p></dd><dt><span class="term"><em class="parameter"><code>requester</code></em></span></dt><dd><p>
Requested by user process or the kernel (1 = kernel, 0 = user)
- </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
- Protocol family value
+ </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
+ Protocol value
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of this probe
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126623632"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
+ Socket type value
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688469664"></a><h2>Context</h2><p>
The requester (see requester variable)
-</p></div><div class="refsect1"><a name="idm47245126622384"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511688468416"></a><h2>Description</h2><p>
Fires at the beginning of creating a socket.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-socket-close-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-socket-create-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::socket.close.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::socket.create.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::socket.readv.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="socket.stp.html" title="Chapter 14. Socket Tapset"><link rel="prev" href="API-socket-readv.html" title="probe::socket.readv"><link rel="next" href="API-socket-receive.html" title="probe::socket.receive"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::socket.readv.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-socket-readv.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Socket Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-socket-receive.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-socket-readv-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::socket.readv.return —
Conclusion of receiving a message via <code class="function">sock_readv</code>
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.readv.return </pre></div><div class="refsect1"><a name="idm47245126563232"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
- Protocol family value
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of this probe
- </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.readv.return </pre></div><div class="refsect1"><a name="idm47511688409168"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
Protocol value
- </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
- Socket flags value
</p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
Size of message received (in bytes) or error code if success = 0
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of this probe
</p></dd><dt><span class="term"><em class="parameter"><code>success</code></em></span></dt><dd><p>
Was receive successful? (1 = yes, 0 = no)
- </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
- Socket type value
+ </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
+ Socket flags value
+ </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ Protocol family value
</p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
Socket state value
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126545856"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
+ Socket type value
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688391792"></a><h2>Context</h2><p>
The message receiver.
-</p></div><div class="refsect1"><a name="idm47245126544624"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511688390560"></a><h2>Description</h2><p>
Fires at the conclusion of receiving a message on a socket
via the <code class="function">sock_readv</code> function
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-socket-readv.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-socket-receive.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::socket.readv</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::socket.receive</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::socket.readv</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="socket.stp.html" title="Chapter 14. Socket Tapset"><link rel="prev" href="API-socket-create-return.html" title="probe::socket.create.return"><link rel="next" href="API-socket-readv-return.html" title="probe::socket.readv.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::socket.readv</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-socket-create-return.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Socket Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-socket-readv-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-socket-readv"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::socket.readv —
Receiving a message via <code class="function">sock_readv</code>
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.readv </pre></div><div class="refsect1"><a name="idm47245126589200"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- Message size in bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.readv </pre></div><div class="refsect1"><a name="idm47511688435072"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
Socket flags value
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of this probe
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ Message size in bytes
</p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
Protocol value
- </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
- Socket type value
- </p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
- Socket state value
</p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
Protocol family value
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of this probe
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126573904"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
+ Socket state value
+ </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
+ Socket type value
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688419776"></a><h2>Context</h2><p>
The message sender
-</p></div><div class="refsect1"><a name="idm47245126572688"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511688418560"></a><h2>Description</h2><p>
Fires at the beginning of receiving a message on a socket
via the <code class="function">sock_readv</code> function
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-socket-create-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-socket-readv-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::socket.create.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::socket.readv.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::socket.receive</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="socket.stp.html" title="Chapter 14. Socket Tapset"><link rel="prev" href="API-socket-readv-return.html" title="probe::socket.readv.return"><link rel="next" href="API-socket-recvmsg.html" title="probe::socket.recvmsg"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::socket.receive</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-socket-readv-return.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Socket Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-socket-recvmsg.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-socket-receive"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::socket.receive —
Message received on a socket.
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.receive </pre></div><div class="refsect1"><a name="idm47245126535904"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of this probe
- </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
- Protocol family value
- </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.receive </pre></div><div class="refsect1"><a name="idm47511688381952"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
Socket type value
</p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
Socket state value
+ </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ Protocol family value
+ </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
+ Socket flags value
</p></dd><dt><span class="term"><em class="parameter"><code>success</code></em></span></dt><dd><p>
Was send successful? (1 = yes, 0 = no)
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of this probe
</p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
Protocol value
- </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
- Socket flags value
</p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
Size of message received (in bytes) or error code if success = 0
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126518528"></a><h2>Context</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688364576"></a><h2>Context</h2><p>
The message receiver
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-socket-readv-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-socket-recvmsg.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::socket.readv.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::socket.recvmsg</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::socket.recvmsg.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="socket.stp.html" title="Chapter 14. Socket Tapset"><link rel="prev" href="API-socket-recvmsg.html" title="probe::socket.recvmsg"><link rel="next" href="API-socket-send.html" title="probe::socket.send"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::socket.recvmsg.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-socket-recvmsg.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Socket Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-socket-send.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-socket-recvmsg-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::socket.recvmsg.return —
Return from Message being received on socket
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.recvmsg.return </pre></div><div class="refsect1"><a name="idm47245126485296"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.recvmsg.return </pre></div><div class="refsect1"><a name="idm47511688331328"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
+ Socket type value
+ </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
+ Protocol value
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
Size of message received (in bytes) or error code if success = 0
</p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
Socket flags value
- </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
- Protocol value
- </p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
- Socket state value
- </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
- Socket type value
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of this probe
</p></dd><dt><span class="term"><em class="parameter"><code>success</code></em></span></dt><dd><p>
Was receive successful? (1 = yes, 0 = no)
</p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
Protocol family value
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of this probe
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126467920"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
+ Socket state value
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688313952"></a><h2>Context</h2><p>
The message receiver.
-</p></div><div class="refsect1"><a name="idm47245126466688"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511688312720"></a><h2>Description</h2><p>
Fires at the conclusion of receiving a message on a socket
via the <code class="function">sock_recvmsg</code> function.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-socket-recvmsg.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-socket-send.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::socket.recvmsg</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::socket.send</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::socket.recvmsg</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="socket.stp.html" title="Chapter 14. Socket Tapset"><link rel="prev" href="API-socket-receive.html" title="probe::socket.receive"><link rel="next" href="API-socket-recvmsg-return.html" title="probe::socket.recvmsg.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::socket.recvmsg</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-socket-receive.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Socket Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-socket-recvmsg-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-socket-recvmsg"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::socket.recvmsg —
Message being received on socket
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.recvmsg </pre></div><div class="refsect1"><a name="idm47245126510560"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
- Socket type value
- </p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
- Socket state value
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.recvmsg </pre></div><div class="refsect1"><a name="idm47511688356608"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of this probe
</p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
Socket flags value
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- Message size in bytes
</p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
Protocol value
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of this probe
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ Message size in bytes
</p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
Protocol family value
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126495264"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
+ Socket state value
+ </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
+ Socket type value
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688341312"></a><h2>Context</h2><p>
The message receiver.
-</p></div><div class="refsect1"><a name="idm47245126494032"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511688340080"></a><h2>Description</h2><p>
Fires at the beginning of receiving a message on a socket
via the <code class="function">sock_recvmsg</code> function
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-socket-receive.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-socket-recvmsg-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::socket.receive</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::socket.recvmsg.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::socket.send</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="socket.stp.html" title="Chapter 14. Socket Tapset"><link rel="prev" href="API-socket-recvmsg-return.html" title="probe::socket.recvmsg.return"><link rel="next" href="API-socket-sendmsg.html" title="probe::socket.sendmsg"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::socket.send</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-socket-recvmsg-return.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Socket Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-socket-sendmsg.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-socket-send"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::socket.send —
Message sent on a socket.
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.send </pre></div><div class="refsect1"><a name="idm47245126458080"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.send </pre></div><div class="refsect1"><a name="idm47511688304112"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
+ Socket type value
+ </p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
+ Socket state value
+ </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
Protocol family value
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of this probe
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- Size of message sent (in bytes) or error code if success = 0
</p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
Socket flags value
- </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
- Protocol value
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of this probe
</p></dd><dt><span class="term"><em class="parameter"><code>success</code></em></span></dt><dd><p>
Was send successful? (1 = yes, 0 = no)
- </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
- Socket type value
- </p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
- Socket state value
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126440720"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
+ Protocol value
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ Size of message sent (in bytes) or error code if success = 0
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688286752"></a><h2>Context</h2><p>
The message sender
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-socket-recvmsg-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-socket-sendmsg.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::socket.recvmsg.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::socket.sendmsg</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::socket.sendmsg.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="socket.stp.html" title="Chapter 14. Socket Tapset"><link rel="prev" href="API-socket-sendmsg.html" title="probe::socket.sendmsg"><link rel="next" href="API-socket-writev.html" title="probe::socket.writev"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::socket.sendmsg.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-socket-sendmsg.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Socket Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-socket-writev.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-socket-sendmsg-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::socket.sendmsg.return —
Return from socket.sendmsg.
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.sendmsg.return </pre></div><div class="refsect1"><a name="idm47245126407584"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
- Protocol value
- </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
- Socket flags value
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- Size of message sent (in bytes) or error code if success = 0
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.sendmsg.return </pre></div><div class="refsect1"><a name="idm47511688253680"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ Protocol family value
</p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
Socket state value
- </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
- Socket type value
+ </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
+ Socket flags value
</p></dd><dt><span class="term"><em class="parameter"><code>success</code></em></span></dt><dd><p>
Was send successful? (1 = yes, 0 = no)
- </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
- Protocol family value
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of this probe
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126390224"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ Size of message sent (in bytes) or error code if success = 0
+ </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
+ Protocol value
+ </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
+ Socket type value
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688236320"></a><h2>Context</h2><p>
The message sender.
-</p></div><div class="refsect1"><a name="idm47245126388992"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511688235088"></a><h2>Description</h2><p>
Fires at the conclusion of sending a message on a socket
via the <code class="function">sock_sendmsg</code> function
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-socket-sendmsg.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-socket-writev.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::socket.sendmsg</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::socket.writev</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::socket.sendmsg</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="socket.stp.html" title="Chapter 14. Socket Tapset"><link rel="prev" href="API-socket-send.html" title="probe::socket.send"><link rel="next" href="API-socket-sendmsg-return.html" title="probe::socket.sendmsg.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::socket.sendmsg</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-socket-send.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Socket Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-socket-sendmsg-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-socket-sendmsg"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::socket.sendmsg —
Message is currently being sent on a socket.
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.sendmsg </pre></div><div class="refsect1"><a name="idm47245126432816"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.sendmsg </pre></div><div class="refsect1"><a name="idm47511688278848"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
+ Socket flags value
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of this probe
+ </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
Protocol value
</p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
Message size in bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
- Socket flags value
- </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
- Socket type value
- </p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
- Socket state value
</p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
Protocol family value
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of this probe
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126417520"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
+ Socket state value
+ </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
+ Socket type value
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688263552"></a><h2>Context</h2><p>
The message sender
-</p></div><div class="refsect1"><a name="idm47245126416304"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511688262336"></a><h2>Description</h2><p>
Fires at the beginning of sending a message on a socket
via the <code class="function">sock_sendmsg</code> function
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-socket-send.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-socket-sendmsg-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::socket.send</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::socket.sendmsg.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::socket.writev.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="socket.stp.html" title="Chapter 14. Socket Tapset"><link rel="prev" href="API-socket-writev.html" title="probe::socket.writev"><link rel="next" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::socket.writev.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-socket-writev.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Socket Tapset</th><td width="20%" align="right"> <a accesskey="n" href="snmp.stp.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-socket-writev-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::socket.writev.return —
Conclusion of message sent via <code class="function">socket_writev</code>
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.writev.return </pre></div><div class="refsect1"><a name="idm47245126353760"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
- Socket type value
- </p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.writev.return </pre></div><div class="refsect1"><a name="idm47511688199840"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
Socket state value
- </p></dd><dt><span class="term"><em class="parameter"><code>success</code></em></span></dt><dd><p>
- Was send successful? (1 = yes, 0 = no)
+ </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ Protocol family value
</p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
Socket flags value
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- Size of message sent (in bytes) or error code if success = 0
- </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
- Protocol value
+ </p></dd><dt><span class="term"><em class="parameter"><code>success</code></em></span></dt><dd><p>
+ Was send successful? (1 = yes, 0 = no)
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of this probe
- </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
- Protocol family value
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126336400"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
+ Protocol value
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ Size of message sent (in bytes) or error code if success = 0
+ </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
+ Socket type value
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688182480"></a><h2>Context</h2><p>
The message receiver.
-</p></div><div class="refsect1"><a name="idm47245126335168"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511688181248"></a><h2>Description</h2><p>
Fires at the conclusion of sending a message on a socket
via the <code class="function">sock_writev</code> function
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-socket-writev.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="snmp.stp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::socket.writev</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 15. SNMP Information Tapset</td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::socket.writev</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="socket.stp.html" title="Chapter 14. Socket Tapset"><link rel="prev" href="API-socket-sendmsg-return.html" title="probe::socket.sendmsg.return"><link rel="next" href="API-socket-writev-return.html" title="probe::socket.writev.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::socket.writev</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-socket-sendmsg-return.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Socket Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-socket-writev-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-socket-writev"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::socket.writev —
Message sent via <code class="function">socket_writev</code>
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.writev </pre></div><div class="refsect1"><a name="idm47245126379664"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">socket.writev </pre></div><div class="refsect1"><a name="idm47511688225760"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
+ Socket type value
+ </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
Protocol family value
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of this probe
+ </p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
+ Socket state value
</p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
Protocol value
- </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
- Socket flags value
</p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
Message size in bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
- Socket type value
- </p></dd><dt><span class="term"><em class="parameter"><code>state</code></em></span></dt><dd><p>
- Socket state value
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126364368"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of this probe
+ </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
+ Socket flags value
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688210464"></a><h2>Context</h2><p>
The message sender
-</p></div><div class="refsect1"><a name="idm47245126363152"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511688209248"></a><h2>Description</h2><p>
Fires at the beginning of sending a message on a socket
via the <code class="function">sock_writev</code> function
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-socket-sendmsg-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="socket.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-socket-writev-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::socket.sendmsg.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::socket.writev.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::softirq.entry</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="irq.stp.html" title="Chapter 12. Interrupt Request (IRQ) Tapset"><link rel="prev" href="API-irq-handler-exit.html" title="probe::irq_handler.exit"><link rel="next" href="API-softirq-exit.html" title="probe::softirq.exit"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::softirq.entry</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-irq-handler-exit.html">Prev</a> </td><th width="60%" align="center">Chapter 12. Interrupt Request (IRQ) Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-softirq-exit.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-softirq-entry"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::softirq.entry —
Execution of handler for a pending softirq starting
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">softirq.entry </pre></div><div class="refsect1"><a name="idm47245128597920"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>h</code></em></span></dt><dd><p>
- struct softirq_action* for current pending softirq
- </p></dd><dt><span class="term"><em class="parameter"><code>vec_nr</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">softirq.entry </pre></div><div class="refsect1"><a name="idm47511690443664"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>vec_nr</code></em></span></dt><dd><p>
softirq vector number
</p></dd><dt><span class="term"><em class="parameter"><code>vec</code></em></span></dt><dd><p>
softirq_action vector
</p></dd><dt><span class="term"><em class="parameter"><code>action</code></em></span></dt><dd><p>
pointer to softirq handler just about to execute
+ </p></dd><dt><span class="term"><em class="parameter"><code>h</code></em></span></dt><dd><p>
+ struct softirq_action* for current pending softirq
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-irq-handler-exit.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="irq.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-softirq-exit.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::irq_handler.exit</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::softirq.exit</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::softirq.exit</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="irq.stp.html" title="Chapter 12. Interrupt Request (IRQ) Tapset"><link rel="prev" href="API-softirq-entry.html" title="probe::softirq.entry"><link rel="next" href="API-workqueue-create.html" title="probe::workqueue.create"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::softirq.exit</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-softirq-entry.html">Prev</a> </td><th width="60%" align="center">Chapter 12. Interrupt Request (IRQ) Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-workqueue-create.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-softirq-exit"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::softirq.exit —
Execution of handler for a pending softirq completed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">softirq.exit </pre></div><div class="refsect1"><a name="idm47245128581824"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>action</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">softirq.exit </pre></div><div class="refsect1"><a name="idm47511690427680"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>action</code></em></span></dt><dd><p>
pointer to softirq handler that just finished execution
- </p></dd><dt><span class="term"><em class="parameter"><code>vec</code></em></span></dt><dd><p>
- softirq_action vector
- </p></dd><dt><span class="term"><em class="parameter"><code>vec_nr</code></em></span></dt><dd><p>
- softirq vector number
</p></dd><dt><span class="term"><em class="parameter"><code>h</code></em></span></dt><dd><p>
struct softirq_action* for just executed softirq
+ </p></dd><dt><span class="term"><em class="parameter"><code>vec_nr</code></em></span></dt><dd><p>
+ softirq vector number
+ </p></dd><dt><span class="term"><em class="parameter"><code>vec</code></em></span></dt><dd><p>
+ softirq_action vector
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-softirq-entry.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="irq.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-workqueue-create.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::softirq.entry</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::workqueue.create</span></td></tr></table></div></body></html>
Store a string for possible output later
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
speculate(id:long,output:string)
-</pre></div><div class="refsect1"><a name="idm47245122002000"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>id</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511683848720"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>id</code></em></span></dt><dd><p>
buffer id to store the information in
</p></dd><dt><span class="term"><em class="parameter"><code>output</code></em></span></dt><dd><p>
string to write out when commit occurs
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245121996784"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511683843504"></a><h2>Description</h2><p>
Add a string to the speculaive buffer for id.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-discard.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="speculation.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-speculation.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::discard</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::speculation</span></td></tr></table></div></body></html>
Allocate a new id for speculative output
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
speculation:long()
-</pre></div><div class="refsect1"><a name="idm47245121988784"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511683835504"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245121987568"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511683834288"></a><h2>Description</h2><p>
</p><p>
The <code class="function">speculation</code> function is called when a new speculation buffer is needed.
Return stack back trace as string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
sprint_backtrace:string()
-</pre></div><div class="refsect1"><a name="idm47245130959408"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692802816"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130958256"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692801664"></a><h2>Description</h2><p>
</p><p>
Returns a simple (kernel) backtrace. One line per address.
Report a pretty-printed load average
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
sprint_loadavg:string()
-</pre></div><div class="refsect1"><a name="idm47245125770384"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511687616560"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245125769168"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511687615344"></a><h2>Description</h2><p>
Returns the a string with three decimal numbers
in the usual format for 1-, 5- and 15-minute load averages.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-get-loadavg-index.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="kprocess.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-target-set-pid.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::get_loadavg_index</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::target_set_pid</span></td></tr></table></div></body></html>
Return stack for kernel addresses from string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
sprint_stack:string(stk:string)
-</pre></div><div class="refsect1"><a name="idm47245130948864"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stk</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692792272"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stk</code></em></span></dt><dd><p>
String with list of hexadecimal (kernel) addresses
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130945728"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692789136"></a><h2>Description</h2><p>
Perform a symbolic lookup of the addresses in the given string,
which is assumed to be the result of a prior call to <code class="function">backtrace</code>.
</p><p>
a newline character). Note that the returned stack will be
truncated to MAXSTRINGLEN, to print fuller and richer stacks use
print_stack.
-</p></div><div class="refsect1"><a name="idm47245135978368"></a><h2>NOTE</h2><p>
+</p></div><div class="refsect1"><a name="idm47511698052112"></a><h2>NOTE</h2><p>
it is recommended to use <code class="function">sprint_syms</code> instead of this function.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sprint-backtrace.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sprint-syms.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::sprint_backtrace</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::sprint_syms</span></td></tr></table></div></body></html>
Return stack for kernel addresses from string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
sprint_syms(callers:string)
-</pre></div><div class="refsect1"><a name="idm47245130926336"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>callers</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692769744"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>callers</code></em></span></dt><dd><p>
String with list of hexadecimal (kernel) addresses
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130923200"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692766608"></a><h2>Description</h2><p>
Perform a symbolic lookup of the addresses in the given string,
which are assumed to be the result of a prior calls to <code class="function">stack</code>,
<code class="function">callers</code>, and similar functions.
Return stack back trace for current user-space task as string.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
sprint_ubacktrace:string()
-</pre></div><div class="refsect1"><a name="idm47245130912400"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692755808"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130911248"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692754656"></a><h2>Description</h2><p>
</p><p>
Returns a simple backtrace for the current task. One line per
<code class="function">print_ubacktrace</code>. Equivalent to sprint_ustack(<code class="function">ubacktrace</code>),
but more efficient (no need to translate between hex strings and
final backtrace string).
-</p></div><div class="refsect1"><a name="idm47245130907936"></a><h2>Note</h2><p>
+</p></div><div class="refsect1"><a name="idm47511692751344"></a><h2>Note</h2><p>
To get (full) backtraces for user space applications and shared
shared libraries not mentioned in the current script run stap with
-d /path/to/exe-or-so and/or add --ldd to load all needed unwind data.
Return stack for the current task from string.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
sprint_ustack:string(stk:string)
-</pre></div><div class="refsect1"><a name="idm47245130900464"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stk</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692743872"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stk</code></em></span></dt><dd><p>
String with list of hexadecimal addresses for the current task.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130897312"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692740720"></a><h2>Description</h2><p>
Perform a symbolic lookup of the addresses in the given string,
which is assumed to be the result of a prior call to
<code class="function">ubacktrace</code> for the current task.
a newline character). Note that the returned stack will be
truncated to MAXSTRINGLEN, to print fuller and richer stacks use
print_ustack.
-</p></div><div class="refsect1"><a name="idm47245130894576"></a><h2>NOTE</h2><p>
+</p></div><div class="refsect1"><a name="idm47511692737984"></a><h2>NOTE</h2><p>
it is recommended to use <code class="function">sprint_usyms</code> instead of this function.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sprint-ubacktrace.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sprint-usyms.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::sprint_ubacktrace</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::sprint_usyms</span></td></tr></table></div></body></html>
Return stack for user addresses from string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
sprint_usyms(callers:string)
-</pre></div><div class="refsect1"><a name="idm47245130886704"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>callers</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692730112"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>callers</code></em></span></dt><dd><p>
String with list of hexadecimal (user) addresses
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130883568"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692726976"></a><h2>Description</h2><p>
Perform a symbolic lookup of the addresses in the given string,
which are assumed to be the result of a prior calls to <code class="function">ustack</code>,
<code class="function">ucallers</code>, and similar functions.
Return the size of the kernel stack
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
stack_size:long()
-</pre></div><div class="refsect1"><a name="idm47245130861584"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692704992"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130860432"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692703840"></a><h2>Description</h2><p>
This function returns the size of the kernel stack.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stack.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stack-unused.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::stack</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::stack_unused</span></td></tr></table></div></body></html>
Returns the amount of kernel stack currently available
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
stack_unused:long()
-</pre></div><div class="refsect1"><a name="idm47245130853024"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692696432"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130851872"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692695280"></a><h2>Description</h2><p>
This function determines how many bytes are
currently available in the kernel stack.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stack-size.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stack-used.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::stack_size</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::stack_used</span></td></tr></table></div></body></html>
Returns the amount of kernel stack used
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
stack_used:long()
-</pre></div><div class="refsect1"><a name="idm47245130844512"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692687920"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130843360"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692686768"></a><h2>Description</h2><p>
This function determines how many bytes are
currently used in the kernel stack.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stack-unused.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stp-pid.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::stack_unused</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::stp_pid</span></td></tr></table></div></body></html>
Return address at given depth of kernel stack backtrace
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
stack:long(n:long)
-</pre></div><div class="refsect1"><a name="idm47245130872768"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692716176"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
number of levels to descend in the stack.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130869712"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692713120"></a><h2>Description</h2><p>
Performs a simple (kernel) backtrace, and returns the
element at the specified position. The results of the backtrace itself
are cached, so that the backtrace computation is performed at most once
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.cache_add_mod</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="next" href="API-stap-cache-add-nss.html" title="probe::stap.cache_add_nss"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.cache_add_mod</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="stap_staticmarkers.stp.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-cache-add-nss.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-cache-add-mod"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.cache_add_mod —
Adding kernel instrumentation module to cache
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.cache_add_mod </pre></div><div class="refsect1"><a name="idm47245123654368"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dest_path</code></em></span></dt><dd><p>
- the path the .ko file is going to (incl filename)
- </p></dd><dt><span class="term"><em class="parameter"><code>source_path</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.cache_add_mod </pre></div><div class="refsect1"><a name="idm47511685501008"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>source_path</code></em></span></dt><dd><p>
the path the .ko file is coming from (incl filename)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123649088"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>dest_path</code></em></span></dt><dd><p>
+ the path the .ko file is going to (incl filename)
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685495728"></a><h2>Description</h2><p>
Fires just before the file is actually moved. Note: if moving fails,
cache_add_src and cache_add_nss will not fire.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="stap_staticmarkers.stp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-cache-add-nss.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 30. SystemTap Translator Tapset </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.cache_add_nss</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.cache_add_nss</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-cache-add-mod.html" title="probe::stap.cache_add_mod"><link rel="next" href="API-stap-cache-add-src.html" title="probe::stap.cache_add_src"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.cache_add_nss</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-cache-add-mod.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-cache-add-src.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-cache-add-nss"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.cache_add_nss —
Add NSS (Network Security Services) information to cache
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.cache_add_nss </pre></div><div class="refsect1"><a name="idm47245123640976"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>source_path</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.cache_add_nss </pre></div><div class="refsect1"><a name="idm47511685487728"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>source_path</code></em></span></dt><dd><p>
the path the .sgn file is coming from (incl filename)
</p></dd><dt><span class="term"><em class="parameter"><code>dest_path</code></em></span></dt><dd><p>
the path the .sgn file is coming from (incl filename)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123635696"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685482448"></a><h2>Description</h2><p>
Fires just before the file is actually moved. Note: stap must compiled
with NSS support; if moving the kernel module fails, this probe will
not fire.
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.cache_add_src</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-cache-add-nss.html" title="probe::stap.cache_add_nss"><link rel="next" href="API-stap-cache-clean.html" title="probe::stap.cache_clean"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.cache_add_src</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-cache-add-nss.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-cache-clean.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-cache-add-src"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.cache_add_src —
Adding C code translation to cache
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.cache_add_src </pre></div><div class="refsect1"><a name="idm47245123627568"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dest_path</code></em></span></dt><dd><p>
- the path the .c file is going to (incl filename)
- </p></dd><dt><span class="term"><em class="parameter"><code>source_path</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.cache_add_src </pre></div><div class="refsect1"><a name="idm47511685474320"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>source_path</code></em></span></dt><dd><p>
the path the .c file is coming from (incl filename)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123622288"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>dest_path</code></em></span></dt><dd><p>
+ the path the .c file is going to (incl filename)
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685469040"></a><h2>Description</h2><p>
Fires just before the file is actually moved. Note: if moving the
kernel module fails, this probe will not fire.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-cache-add-nss.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-cache-clean.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.cache_add_nss</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.cache_clean</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.cache_clean</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-cache-add-src.html" title="probe::stap.cache_add_src"><link rel="next" href="API-stap-cache-get.html" title="probe::stap.cache_get"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.cache_clean</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-cache-add-src.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-cache-get.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-cache-clean"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.cache_clean —
Removing file from stap cache
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.cache_clean </pre></div><div class="refsect1"><a name="idm47245123614240"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>path</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.cache_clean </pre></div><div class="refsect1"><a name="idm47511685461040"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>path</code></em></span></dt><dd><p>
the path to the .ko/.c file being removed
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123611024"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685457824"></a><h2>Description</h2><p>
Fires just before the call to unlink the module/source file.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-cache-add-src.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-cache-get.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.cache_add_src</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.cache_get</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.cache_get</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-cache-clean.html" title="probe::stap.cache_clean"><link rel="next" href="API-stap-pass0.html" title="probe::stap.pass0"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.cache_get</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-cache-clean.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-pass0.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-cache-get"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.cache_get —
Found item in stap cache
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.cache_get </pre></div><div class="refsect1"><a name="idm47245123603088"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>source_path</code></em></span></dt><dd><p>
- the path of the .c source file
- </p></dd><dt><span class="term"><em class="parameter"><code>module_path</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.cache_get </pre></div><div class="refsect1"><a name="idm47511685449888"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>module_path</code></em></span></dt><dd><p>
the path of the .ko kernel module file
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123597840"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>source_path</code></em></span></dt><dd><p>
+ the path of the .c source file
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685444640"></a><h2>Description</h2><p>
Fires just before the return of get_from_cache, when the cache grab
is successful.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-cache-clean.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-pass0.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.cache_clean</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.pass0</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.pass0.end</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-pass0.html" title="probe::stap.pass0"><link rel="next" href="API-stap-pass1-end.html" title="probe::stap.pass1.end"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.pass0.end</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-pass0.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-pass1-end.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-pass0-end"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.pass0.end —
Finished stap pass0 (parsing command line arguments)
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass0.end </pre></div><div class="refsect1"><a name="idm47245123578608"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass0.end </pre></div><div class="refsect1"><a name="idm47511685425408"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
the systemtap_session variable s
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123575392"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685422192"></a><h2>Description</h2><p>
pass0.end fires just before the <code class="function">gettimeofday</code> call for pass1.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-pass0.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-pass1-end.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.pass0</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.pass1.end</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.pass0</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-cache-get.html" title="probe::stap.cache_get"><link rel="next" href="API-stap-pass0-end.html" title="probe::stap.pass0.end"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.pass0</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-cache-get.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-pass0-end.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-pass0"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.pass0 —
Starting stap pass0 (parsing command line arguments)
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass0 </pre></div><div class="refsect1"><a name="idm47245123589840"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass0 </pre></div><div class="refsect1"><a name="idm47511685436592"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
the systemtap_session variable s
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123586624"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685433376"></a><h2>Description</h2><p>
pass0 fires after command line arguments have been parsed.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-cache-get.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-pass0-end.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.cache_get</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.pass0.end</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.pass1.end</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-pass0-end.html" title="probe::stap.pass0.end"><link rel="next" href="API-stap-pass1a.html" title="probe::stap.pass1a"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.pass1.end</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-pass0-end.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-pass1a.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-pass1-end"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.pass1.end —
Finished stap pass1 (parsing scripts)
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass1.end </pre></div><div class="refsect1"><a name="idm47245123566704"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass1.end </pre></div><div class="refsect1"><a name="idm47511685413552"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
the systemtap_session variable s
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123563488"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685410336"></a><h2>Description</h2><p>
pass1.end fires just before the jump to cleanup if s.last_pass = 1.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-pass0-end.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-pass1a.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.pass0.end</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.pass1a</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.pass1a</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-pass1-end.html" title="probe::stap.pass1.end"><link rel="next" href="API-stap-pass1b.html" title="probe::stap.pass1b"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.pass1a</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-pass1-end.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-pass1b.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-pass1a"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.pass1a —
Starting stap pass1 (parsing user script)
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass1a </pre></div><div class="refsect1"><a name="idm47245123555520"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass1a </pre></div><div class="refsect1"><a name="idm47511685402368"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
the systemtap_session variable s
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123552304"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685399152"></a><h2>Description</h2><p>
pass1a fires just after the call to <code class="function">gettimeofday</code>, before the
user script is parsed.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-pass1-end.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-pass1b.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.pass1.end</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.pass1b</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.pass1b</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-pass1a.html" title="probe::stap.pass1a"><link rel="next" href="API-stap-pass2.html" title="probe::stap.pass2"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.pass1b</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-pass1a.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-pass2.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-pass1b"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.pass1b —
Starting stap pass1 (parsing library scripts)
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass1b </pre></div><div class="refsect1"><a name="idm47245123543632"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass1b </pre></div><div class="refsect1"><a name="idm47511685390480"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
the systemtap_session variable s
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123540416"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685387264"></a><h2>Description</h2><p>
pass1b fires just before the library scripts are parsed.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-pass1a.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-pass2.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.pass1a</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.pass2</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.pass2.end</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-pass2.html" title="probe::stap.pass2"><link rel="next" href="API-stap-pass3.html" title="probe::stap.pass3"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.pass2.end</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-pass2.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-pass3.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-pass2-end"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.pass2.end —
Finished stap pass2 (elaboration)
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass2.end </pre></div><div class="refsect1"><a name="idm47245123520576"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass2.end </pre></div><div class="refsect1"><a name="idm47511685367328"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
the systemtap_session variable s
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123517360"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685364112"></a><h2>Description</h2><p>
pass2.end fires just before the jump to cleanup if s.last_pass = 2
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-pass2.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-pass3.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.pass2</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.pass3</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.pass2</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-pass1b.html" title="probe::stap.pass1b"><link rel="next" href="API-stap-pass2-end.html" title="probe::stap.pass2.end"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.pass2</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-pass1b.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-pass2-end.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-pass2"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.pass2 —
Starting stap pass2 (elaboration)
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass2 </pre></div><div class="refsect1"><a name="idm47245123532464"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass2 </pre></div><div class="refsect1"><a name="idm47511685379264"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
the systemtap_session variable s
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123529248"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685376048"></a><h2>Description</h2><p>
pass2 fires just after the call to <code class="function">gettimeofday</code>, just before the
call to semantic_pass.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-pass1b.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-pass2-end.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.pass1b</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.pass2.end</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.pass3.end</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-pass3.html" title="probe::stap.pass3"><link rel="next" href="API-stap-pass4.html" title="probe::stap.pass4"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.pass3.end</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-pass3.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-pass4.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-pass3-end"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.pass3.end —
Finished stap pass3 (translation to C)
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass3.end </pre></div><div class="refsect1"><a name="idm47245123497472"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass3.end </pre></div><div class="refsect1"><a name="idm47511685344272"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
the systemtap_session variable s
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123494256"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685341056"></a><h2>Description</h2><p>
pass3.end fires just before the jump to cleanup if s.last_pass = 3
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-pass3.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-pass4.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.pass3</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.pass4</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.pass3</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-pass2-end.html" title="probe::stap.pass2.end"><link rel="next" href="API-stap-pass3-end.html" title="probe::stap.pass3.end"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.pass3</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-pass2-end.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-pass3-end.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-pass3"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.pass3 —
Starting stap pass3 (translation to C)
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass3 </pre></div><div class="refsect1"><a name="idm47245123509408"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass3 </pre></div><div class="refsect1"><a name="idm47511685356160"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
the systemtap_session variable s
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123506192"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685352944"></a><h2>Description</h2><p>
pass3 fires just after the call to <code class="function">gettimeofday</code>, just before the
call to translate_pass.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-pass2-end.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-pass3-end.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.pass2.end</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.pass3.end</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.pass4.end</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-pass4.html" title="probe::stap.pass4"><link rel="next" href="API-stap-pass5.html" title="probe::stap.pass5"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.pass4.end</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-pass4.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-pass5.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-pass4-end"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.pass4.end —
Finished stap pass4 (compile C code into kernel module)
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass4.end </pre></div><div class="refsect1"><a name="idm47245123474448"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass4.end </pre></div><div class="refsect1"><a name="idm47511685321088"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
the systemtap_session variable s
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123471232"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685317872"></a><h2>Description</h2><p>
pass4.end fires just before the jump to cleanup if s.last_pass = 4
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-pass4.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-pass5.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.pass4</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.pass5</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.pass4</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-pass3-end.html" title="probe::stap.pass3.end"><link rel="next" href="API-stap-pass4-end.html" title="probe::stap.pass4.end"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.pass4</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-pass3-end.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-pass4-end.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-pass4"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.pass4 —
Starting stap pass4 (compile C code into kernel module)
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass4 </pre></div><div class="refsect1"><a name="idm47245123486352"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass4 </pre></div><div class="refsect1"><a name="idm47511685333040"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
the systemtap_session variable s
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123483136"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685329824"></a><h2>Description</h2><p>
pass4 fires just after the call to <code class="function">gettimeofday</code>, just before the
call to compile_pass.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-pass3-end.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-pass4-end.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.pass3.end</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.pass4.end</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.pass5.end</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-pass5.html" title="probe::stap.pass5"><link rel="next" href="API-stap-pass6.html" title="probe::stap.pass6"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.pass5.end</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-pass5.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-pass6.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-pass5-end"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.pass5.end —
Finished stap pass5 (running the instrumentation)
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass5.end </pre></div><div class="refsect1"><a name="idm47245123451392"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass5.end </pre></div><div class="refsect1"><a name="idm47511685297968"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
the systemtap_session variable s
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123448176"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685294752"></a><h2>Description</h2><p>
pass5.end fires just before the cleanup label
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-pass5.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-pass6.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.pass5</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.pass6</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.pass5</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-pass4-end.html" title="probe::stap.pass4.end"><link rel="next" href="API-stap-pass5-end.html" title="probe::stap.pass5.end"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.pass5</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-pass4-end.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-pass5-end.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-pass5"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.pass5 —
Starting stap pass5 (running the instrumentation)
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass5 </pre></div><div class="refsect1"><a name="idm47245123463328"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass5 </pre></div><div class="refsect1"><a name="idm47511685309904"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
the systemtap_session variable s
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123460112"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685306688"></a><h2>Description</h2><p>
pass5 fires just after the call to <code class="function">gettimeofday</code>, just before the
call to run_pass.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-pass4-end.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-pass5-end.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.pass4.end</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.pass5.end</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.pass6.end</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-pass6.html" title="probe::stap.pass6"><link rel="next" href="API-stap-system.html" title="probe::stap.system"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.pass6.end</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-pass6.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-system.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-pass6-end"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.pass6.end —
Finished stap pass6 (cleanup)
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass6.end </pre></div><div class="refsect1"><a name="idm47245123429024"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass6.end </pre></div><div class="refsect1"><a name="idm47511685275600"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
the systemtap_session variable s
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123425808"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685272384"></a><h2>Description</h2><p>
pass6.end fires just before main's return.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-pass6.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-system.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.pass6</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.system</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.pass6</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-pass5-end.html" title="probe::stap.pass5.end"><link rel="next" href="API-stap-pass6-end.html" title="probe::stap.pass6.end"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.pass6</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-pass5-end.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-pass6-end.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-pass6"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.pass6 —
Starting stap pass6 (cleanup)
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass6 </pre></div><div class="refsect1"><a name="idm47245123440256"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.pass6 </pre></div><div class="refsect1"><a name="idm47511685286832"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>session</code></em></span></dt><dd><p>
the systemtap_session variable s
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123437040"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685283616"></a><h2>Description</h2><p>
pass6 fires just after the cleanup label, essentially the same spot
as pass5.end
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-pass5-end.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-pass6-end.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.pass5.end</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.pass6.end</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.system.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-system.html" title="probe::stap.system"><link rel="next" href="API-stap-system-spawn.html" title="probe::stap.system.spawn"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.system.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-system.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-system-spawn.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-system-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.system.return —
Finished a command from stap
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.system.return </pre></div><div class="refsect1"><a name="idm47245123406656"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ret</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.system.return </pre></div><div class="refsect1"><a name="idm47511685253120"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ret</code></em></span></dt><dd><p>
a return code associated with running waitpid on the spawned process;
a non-zero value indicates error
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123403408"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685249872"></a><h2>Description</h2><p>
Fires just before the return of the stap_system function, after waitpid.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-system.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-system-spawn.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.system</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.system.spawn</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.system.spawn</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-system-return.html" title="probe::stap.system.return"><link rel="next" href="API-stapio-receive-control-message.html" title="probe::stapio.receive_control_message"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.system.spawn</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-system-return.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stapio-receive-control-message.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-system-spawn"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.system.spawn —
stap spawned new process
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.system.spawn </pre></div><div class="refsect1"><a name="idm47245123395376"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.system.spawn </pre></div><div class="refsect1"><a name="idm47511685241888"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
the pid of the spawned process
</p></dd><dt><span class="term"><em class="parameter"><code>ret</code></em></span></dt><dd><p>
the return value from posix_spawn
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123390192"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685236704"></a><h2>Description</h2><p>
Fires just after the call to posix_spawn.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-system-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stapio-receive-control-message.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.system.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stapio.receive_control_message</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stap.system</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-pass6-end.html" title="probe::stap.pass6.end"><link rel="next" href="API-stap-system-return.html" title="probe::stap.system.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stap.system</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-pass6-end.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-stap-system-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stap-system"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stap.system —
Starting a command from stap
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.system </pre></div><div class="refsect1"><a name="idm47245123417888"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>command</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stap.system </pre></div><div class="refsect1"><a name="idm47511685264416"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>command</code></em></span></dt><dd><p>
the command string to be run by posix_spawn (as sh -c <str>)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123414592"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685261120"></a><h2>Description</h2><p>
Fires at the entry of the stap_system command.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-pass6-end.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stap-system-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.pass6.end</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::stap.system.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::stapio.receive_control_message</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stap-system-spawn.html" title="probe::stap.system.spawn"><link rel="next" href="API-staprun-insert-module.html" title="probe::staprun.insert_module"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::stapio.receive_control_message</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stap-system-spawn.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-staprun-insert-module.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-stapio-receive-control-message"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::stapio.receive_control_message —
Received a control message
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stapio.receive_control_message </pre></div><div class="refsect1"><a name="idm47245123382144"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>len</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">stapio.receive_control_message </pre></div><div class="refsect1"><a name="idm47511685228656"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>len</code></em></span></dt><dd><p>
the length (in bytes) of the data blob
- </p></dd><dt><span class="term"><em class="parameter"><code>data</code></em></span></dt><dd><p>
- a ptr to a binary blob of data sent as the control message
</p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
type of message being send; defined in runtime/transport/transport_msgs.h
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123374848"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>data</code></em></span></dt><dd><p>
+ a ptr to a binary blob of data sent as the control message
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685221360"></a><h2>Description</h2><p>
Fires just after a message was receieved and before it's processed.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stap-system-spawn.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-staprun-insert-module.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stap.system.spawn</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::staprun.insert_module</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::staprun.insert_module</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-stapio-receive-control-message.html" title="probe::stapio.receive_control_message"><link rel="next" href="API-staprun-remove-module.html" title="probe::staprun.remove_module"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::staprun.insert_module</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-stapio-receive-control-message.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-staprun-remove-module.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-staprun-insert-module"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::staprun.insert_module —
Inserting SystemTap instrumentation module
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">staprun.insert_module </pre></div><div class="refsect1"><a name="idm47245123366768"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>path</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">staprun.insert_module </pre></div><div class="refsect1"><a name="idm47511685213344"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>path</code></em></span></dt><dd><p>
the full path to the .ko kernel module about to be inserted
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123363536"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685210112"></a><h2>Description</h2><p>
Fires just before the call to insert the module.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stapio-receive-control-message.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-staprun-remove-module.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::stapio.receive_control_message</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::staprun.remove_module</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::staprun.remove_module</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-staprun-insert-module.html" title="probe::staprun.insert_module"><link rel="next" href="API-staprun-send-control-message.html" title="probe::staprun.send_control_message"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::staprun.remove_module</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-staprun-insert-module.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-staprun-send-control-message.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-staprun-remove-module"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::staprun.remove_module —
Removing SystemTap instrumentation module
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">staprun.remove_module </pre></div><div class="refsect1"><a name="idm47245123355488"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">staprun.remove_module </pre></div><div class="refsect1"><a name="idm47511685202064"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
the stap module name to be removed (without the .ko extension)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123352240"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685198816"></a><h2>Description</h2><p>
Fires just before the call to remove the module.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-staprun-insert-module.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-staprun-send-control-message.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::staprun.insert_module</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::staprun.send_control_message</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::staprun.send_control_message</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="stap_staticmarkers.stp.html" title="Chapter 30. SystemTap Translator Tapset"><link rel="prev" href="API-staprun-remove-module.html" title="probe::staprun.remove_module"><link rel="next" href="nfsd.stp.html" title="Chapter 31. Network File Storage Tapsets"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::staprun.send_control_message</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-staprun-remove-module.html">Prev</a> </td><th width="60%" align="center">Chapter 30. SystemTap Translator Tapset</th><td width="20%" align="right"> <a accesskey="n" href="nfsd.stp.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-staprun-send-control-message"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::staprun.send_control_message —
Sending a control message
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">staprun.send_control_message </pre></div><div class="refsect1"><a name="idm47245123344240"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>len</code></em></span></dt><dd><p>
- the length (in bytes) of the data blob
- </p></dd><dt><span class="term"><em class="parameter"><code>data</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">staprun.send_control_message </pre></div><div class="refsect1"><a name="idm47511685190768"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>data</code></em></span></dt><dd><p>
a ptr to a binary blob of data sent as the control message
+ </p></dd><dt><span class="term"><em class="parameter"><code>len</code></em></span></dt><dd><p>
+ the length (in bytes) of the data blob
</p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
type of message being send; defined in runtime/transport/transport_msgs.h
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123336944"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685183472"></a><h2>Description</h2><p>
Fires at the beginning of the send_request function.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-staprun-remove-module.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="stap_staticmarkers.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="nfsd.stp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::staprun.remove_module</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 31. Network File Storage Tapsets</td></tr></table></div></body></html>
Start a stopwatch
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
start_stopwatch(name:string)
-</pre></div><div class="refsect1"><a name="idm47245130257920"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692101328"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
the stopwatch name
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130254864"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692098272"></a><h2>Description</h2><p>
Start stopwatch <em class="parameter"><code>name</code></em>.
Creates stopwatch <em class="parameter"><code>name</code></em> if it does not currently exist.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-read-stopwatch-us.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="timestamp_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stop-stopwatch.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::read_stopwatch_us</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::stop_stopwatch</span></td></tr></table></div></body></html>
Stop a stopwatch
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
stop_stopwatch(name:string)
-</pre></div><div class="refsect1"><a name="idm47245130246368"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692089776"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
the stopwatch name
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130243312"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692086720"></a><h2>Description</h2><p>
Stop stopwatch <em class="parameter"><code>name</code></em>.
Creates stopwatch <em class="parameter"><code>name</code></em> if it does not currently exist.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-start-stopwatch.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="timestamp_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ctime.stp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::start_stopwatch</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 4. Time utility functions</td></tr></table></div></body></html>
The process id of the stapio process
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
stp_pid:long()
-</pre></div><div class="refsect1"><a name="idm47245130836016"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692679424"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130834864"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692678272"></a><h2>Description</h2><p>
This function returns the process id of the
stapio process that launched this script. There could be
other SystemTap scripts and stapio processes running on
str_replace Replaces all instances of a substring with another
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
str_replace:string(prnt_str:string,srch_str:string,rplc_str:string)
-</pre></div><div class="refsect1"><a name="idm47245123937792"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>prnt_str</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685784272"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>prnt_str</code></em></span></dt><dd><p>
the string to search and replace in
</p></dd><dt><span class="term"><em class="parameter"><code>srch_str</code></em></span></dt><dd><p>
the substring which is used to search in <em class="parameter"><code>prnt_str</code></em> string
</p></dd><dt><span class="term"><em class="parameter"><code>rplc_str</code></em></span></dt><dd><p>
the substring which is used to replace <em class="parameter"><code>srch_str</code></em>
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123929104"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685775584"></a><h2>Description</h2><p>
This function returns the given string with
substrings replaced.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-isinstr.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="string.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-stringat.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::isinstr</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::stringat</span></td></tr></table></div></body></html>
Returns the char at a given position in the string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
stringat:long(str:string,pos:long)
-</pre></div><div class="refsect1"><a name="idm47245123921040"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>str</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685767520"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>str</code></em></span></dt><dd><p>
the string to fetch the character from
</p></dd><dt><span class="term"><em class="parameter"><code>pos</code></em></span></dt><dd><p>
the position to get the character from (first character is 0)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123915776"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685762304"></a><h2>Description</h2><p>
This function returns the character at a given position in
the string or zero if the string doesn't have as many characters. Reports
an error if pos is out of bounds.
Returns the length of a string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
strlen:long(s:string)
-</pre></div><div class="refsect1"><a name="idm47245123907664"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>s</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685754240"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>s</code></em></span></dt><dd><p>
the string
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123904512"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685751088"></a><h2>Description</h2><p>
This function returns the length of the string, which
can be zero up to MAXSTRINGLEN.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-stringat.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="string.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-strtol.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::stringat</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::strtol</span></td></tr></table></div></body></html>
strtol - Convert a string to a long
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
strtol:long(str:string,base:long)
-</pre></div><div class="refsect1"><a name="idm47245123896464"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>str</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685743040"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>str</code></em></span></dt><dd><p>
string to convert
</p></dd><dt><span class="term"><em class="parameter"><code>base</code></em></span></dt><dd><p>
the base to use
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123891280"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685737856"></a><h2>Description</h2><p>
This function converts the string representation of a number to an integer.
The <em class="parameter"><code>base</code></em> parameter indicates the number base to assume for the string (eg. 16 for hex, 8 for octal, 2 for binary).
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-strlen.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="string.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-substr.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::strlen</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::substr</span></td></tr></table></div></body></html>
Returns a substring
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
substr:string(str:string,start:long,length:long)
-</pre></div><div class="refsect1"><a name="idm47245123882416"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>str</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685729040"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>str</code></em></span></dt><dd><p>
the string to take a substring from
</p></dd><dt><span class="term"><em class="parameter"><code>start</code></em></span></dt><dd><p>
starting position of the extracted string (first character is 0)
</p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
length of string to return
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123875152"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685721776"></a><h2>Description</h2><p>
Returns the substring of the given string at the given
start position with the given length (or smaller if the length of the
original string is less than start + length, or length is bigger than
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::sunrpc.clnt.bind_new_program</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-netfilter-ip-pre-routing.html" title="probe::netfilter.ip.pre_routing"><link rel="next" href="API-sunrpc-clnt-call-async.html" title="probe::sunrpc.clnt.call_async"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::sunrpc.clnt.bind_new_program</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-netfilter-ip-pre-routing.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-sunrpc-clnt-call-async.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-sunrpc-clnt-bind-new-program"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::sunrpc.clnt.bind_new_program —
Bind a new RPC program to an existing client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.clnt.bind_new_program </pre></div><div class="refsect1"><a name="idm47245127609200"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.clnt.bind_new_program </pre></div><div class="refsect1"><a name="idm47511689454752"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>vers</code></em></span></dt><dd><p>
+ the version of new RPC program
+ </p></dd><dt><span class="term"><em class="parameter"><code>old_prog</code></em></span></dt><dd><p>
+ the number of old RPC program
+ </p></dd><dt><span class="term"><em class="parameter"><code>servername</code></em></span></dt><dd><p>
+ the server machine name
+ </p></dd><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
the number of new RPC program
</p></dd><dt><span class="term"><em class="parameter"><code>old_vers</code></em></span></dt><dd><p>
the version of old RPC program
</p></dd><dt><span class="term"><em class="parameter"><code>old_progname</code></em></span></dt><dd><p>
the name of old RPC program
- </p></dd><dt><span class="term"><em class="parameter"><code>old_prog</code></em></span></dt><dd><p>
- the number of old RPC program
- </p></dd><dt><span class="term"><em class="parameter"><code>vers</code></em></span></dt><dd><p>
- the version of new RPC program
- </p></dd><dt><span class="term"><em class="parameter"><code>servername</code></em></span></dt><dd><p>
- the server machine name
</p></dd><dt><span class="term"><em class="parameter"><code>progname</code></em></span></dt><dd><p>
the name of new RPC program
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-netfilter-ip-pre-routing.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sunrpc-clnt-call-async.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::netfilter.ip.pre_routing</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::sunrpc.clnt.call_async</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::sunrpc.clnt.call_async</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-sunrpc-clnt-bind-new-program.html" title="probe::sunrpc.clnt.bind_new_program"><link rel="next" href="API-sunrpc-clnt-call-sync.html" title="probe::sunrpc.clnt.call_sync"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::sunrpc.clnt.call_async</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sunrpc-clnt-bind-new-program.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-sunrpc-clnt-call-sync.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-sunrpc-clnt-call-async"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::sunrpc.clnt.call_async —
Make an asynchronous RPC call
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.clnt.call_async </pre></div><div class="refsect1"><a name="idm47245127587104"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
- the RPC program number
- </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
- the IP protocol number
- </p></dd><dt><span class="term"><em class="parameter"><code>servername</code></em></span></dt><dd><p>
- the server machine name
- </p></dd><dt><span class="term"><em class="parameter"><code>vers</code></em></span></dt><dd><p>
- the RPC program version number
- </p></dd><dt><span class="term"><em class="parameter"><code>procname</code></em></span></dt><dd><p>
- the procedure name in this RPC call
- </p></dd><dt><span class="term"><em class="parameter"><code>proc</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.clnt.call_async </pre></div><div class="refsect1"><a name="idm47511689432672"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>proc</code></em></span></dt><dd><p>
the procedure number in this RPC call
- </p></dd><dt><span class="term"><em class="parameter"><code>xid</code></em></span></dt><dd><p>
- current transmission id
- </p></dd><dt><span class="term"><em class="parameter"><code>progname</code></em></span></dt><dd><p>
- the RPC program name
</p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
flags
+ </p></dd><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
+ the RPC program number
+ </p></dd><dt><span class="term"><em class="parameter"><code>progname</code></em></span></dt><dd><p>
+ the RPC program name
</p></dd><dt><span class="term"><em class="parameter"><code>dead</code></em></span></dt><dd><p>
whether this client is abandoned
</p></dd><dt><span class="term"><em class="parameter"><code>port</code></em></span></dt><dd><p>
the port number
+ </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
+ the IP protocol number
+ </p></dd><dt><span class="term"><em class="parameter"><code>servername</code></em></span></dt><dd><p>
+ the server machine name
+ </p></dd><dt><span class="term"><em class="parameter"><code>xid</code></em></span></dt><dd><p>
+ current transmission id
+ </p></dd><dt><span class="term"><em class="parameter"><code>procname</code></em></span></dt><dd><p>
+ the procedure name in this RPC call
+ </p></dd><dt><span class="term"><em class="parameter"><code>vers</code></em></span></dt><dd><p>
+ the RPC program version number
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sunrpc-clnt-bind-new-program.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sunrpc-clnt-call-sync.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::sunrpc.clnt.bind_new_program</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::sunrpc.clnt.call_sync</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::sunrpc.clnt.call_sync</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-sunrpc-clnt-call-async.html" title="probe::sunrpc.clnt.call_async"><link rel="next" href="API-sunrpc-clnt-clone-client.html" title="probe::sunrpc.clnt.clone_client"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::sunrpc.clnt.call_sync</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sunrpc-clnt-call-async.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-sunrpc-clnt-clone-client.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-sunrpc-clnt-call-sync"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::sunrpc.clnt.call_sync —
Make a synchronous RPC call
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.clnt.call_sync </pre></div><div class="refsect1"><a name="idm47245127556960"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
- the IP protocol number
- </p></dd><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
- the RPC program number
- </p></dd><dt><span class="term"><em class="parameter"><code>port</code></em></span></dt><dd><p>
- the port number
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.clnt.call_sync </pre></div><div class="refsect1"><a name="idm47511689402528"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>progname</code></em></span></dt><dd><p>
+ the RPC program name
</p></dd><dt><span class="term"><em class="parameter"><code>dead</code></em></span></dt><dd><p>
whether this client is abandoned
+ </p></dd><dt><span class="term"><em class="parameter"><code>port</code></em></span></dt><dd><p>
+ the port number
+ </p></dd><dt><span class="term"><em class="parameter"><code>proc</code></em></span></dt><dd><p>
+ the procedure number in this RPC call
</p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
flags
- </p></dd><dt><span class="term"><em class="parameter"><code>progname</code></em></span></dt><dd><p>
- the RPC program name
+ </p></dd><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
+ the RPC program number
+ </p></dd><dt><span class="term"><em class="parameter"><code>servername</code></em></span></dt><dd><p>
+ the server machine name
</p></dd><dt><span class="term"><em class="parameter"><code>xid</code></em></span></dt><dd><p>
current transmission id
- </p></dd><dt><span class="term"><em class="parameter"><code>procname</code></em></span></dt><dd><p>
- the procedure name in this RPC call
- </p></dd><dt><span class="term"><em class="parameter"><code>proc</code></em></span></dt><dd><p>
- the procedure number in this RPC call
</p></dd><dt><span class="term"><em class="parameter"><code>vers</code></em></span></dt><dd><p>
the RPC program version number
- </p></dd><dt><span class="term"><em class="parameter"><code>servername</code></em></span></dt><dd><p>
- the server machine name
+ </p></dd><dt><span class="term"><em class="parameter"><code>procname</code></em></span></dt><dd><p>
+ the procedure name in this RPC call
+ </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
+ the IP protocol number
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sunrpc-clnt-call-async.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sunrpc-clnt-clone-client.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::sunrpc.clnt.call_async</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::sunrpc.clnt.clone_client</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::sunrpc.clnt.clone_client</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-sunrpc-clnt-call-sync.html" title="probe::sunrpc.clnt.call_sync"><link rel="next" href="API-sunrpc-clnt-create-client.html" title="probe::sunrpc.clnt.create_client"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::sunrpc.clnt.clone_client</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sunrpc-clnt-call-sync.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-sunrpc-clnt-create-client.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-sunrpc-clnt-clone-client"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::sunrpc.clnt.clone_client —
Clone an RPC client structure
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.clnt.clone_client </pre></div><div class="refsect1"><a name="idm47245127526848"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>vers</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.clnt.clone_client </pre></div><div class="refsect1"><a name="idm47511689372416"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>vers</code></em></span></dt><dd><p>
the RPC program version number
- </p></dd><dt><span class="term"><em class="parameter"><code>authflavor</code></em></span></dt><dd><p>
- the authentication flavor
- </p></dd><dt><span class="term"><em class="parameter"><code>servername</code></em></span></dt><dd><p>
- the server machine name
- </p></dd><dt><span class="term"><em class="parameter"><code>progname</code></em></span></dt><dd><p>
- the RPC program name
</p></dd><dt><span class="term"><em class="parameter"><code>port</code></em></span></dt><dd><p>
the port number
</p></dd><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
the RPC program number
+ </p></dd><dt><span class="term"><em class="parameter"><code>authflavor</code></em></span></dt><dd><p>
+ the authentication flavor
</p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
the IP protocol number
+ </p></dd><dt><span class="term"><em class="parameter"><code>servername</code></em></span></dt><dd><p>
+ the server machine name
+ </p></dd><dt><span class="term"><em class="parameter"><code>progname</code></em></span></dt><dd><p>
+ the RPC program name
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sunrpc-clnt-call-sync.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sunrpc-clnt-create-client.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::sunrpc.clnt.call_sync</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::sunrpc.clnt.create_client</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::sunrpc.clnt.create_client</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-sunrpc-clnt-clone-client.html" title="probe::sunrpc.clnt.clone_client"><link rel="next" href="API-sunrpc-clnt-restart-call.html" title="probe::sunrpc.clnt.restart_call"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::sunrpc.clnt.create_client</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sunrpc-clnt-clone-client.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-sunrpc-clnt-restart-call.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-sunrpc-clnt-create-client"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::sunrpc.clnt.create_client —
Create an RPC client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.clnt.create_client </pre></div><div class="refsect1"><a name="idm47245127504736"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>vers</code></em></span></dt><dd><p>
- the RPC program version number
- </p></dd><dt><span class="term"><em class="parameter"><code>authflavor</code></em></span></dt><dd><p>
- the authentication flavor
- </p></dd><dt><span class="term"><em class="parameter"><code>servername</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.clnt.create_client </pre></div><div class="refsect1"><a name="idm47511689350304"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>servername</code></em></span></dt><dd><p>
the server machine name
</p></dd><dt><span class="term"><em class="parameter"><code>progname</code></em></span></dt><dd><p>
the RPC program name
</p></dd><dt><span class="term"><em class="parameter"><code>port</code></em></span></dt><dd><p>
the port number
- </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
- the IP protocol number
</p></dd><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
the RPC program number
+ </p></dd><dt><span class="term"><em class="parameter"><code>vers</code></em></span></dt><dd><p>
+ the RPC program version number
+ </p></dd><dt><span class="term"><em class="parameter"><code>authflavor</code></em></span></dt><dd><p>
+ the authentication flavor
+ </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
+ the IP protocol number
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sunrpc-clnt-clone-client.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sunrpc-clnt-restart-call.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::sunrpc.clnt.clone_client</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::sunrpc.clnt.restart_call</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::sunrpc.clnt.restart_call</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-sunrpc-clnt-create-client.html" title="probe::sunrpc.clnt.create_client"><link rel="next" href="API-sunrpc-clnt-shutdown-client.html" title="probe::sunrpc.clnt.shutdown_client"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::sunrpc.clnt.restart_call</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sunrpc-clnt-create-client.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-sunrpc-clnt-shutdown-client.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-sunrpc-clnt-restart-call"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::sunrpc.clnt.restart_call —
Restart an asynchronous RPC call
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.clnt.restart_call </pre></div><div class="refsect1"><a name="idm47245127482608"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
- the RPC program number
- </p></dd><dt><span class="term"><em class="parameter"><code>tk_runstate</code></em></span></dt><dd><p>
- the task run status
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.clnt.restart_call </pre></div><div class="refsect1"><a name="idm47511689328288"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>tk_flags</code></em></span></dt><dd><p>
+ the task flags
</p></dd><dt><span class="term"><em class="parameter"><code>servername</code></em></span></dt><dd><p>
the server machine name
+ </p></dd><dt><span class="term"><em class="parameter"><code>tk_runstate</code></em></span></dt><dd><p>
+ the task run status
+ </p></dd><dt><span class="term"><em class="parameter"><code>xid</code></em></span></dt><dd><p>
+ the transmission id
</p></dd><dt><span class="term"><em class="parameter"><code>tk_pid</code></em></span></dt><dd><p>
the debugging aid of task
+ </p></dd><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
+ the RPC program number
</p></dd><dt><span class="term"><em class="parameter"><code>tk_priority</code></em></span></dt><dd><p>
the task priority
- </p></dd><dt><span class="term"><em class="parameter"><code>xid</code></em></span></dt><dd><p>
- the transmission id
- </p></dd><dt><span class="term"><em class="parameter"><code>tk_flags</code></em></span></dt><dd><p>
- the task flags
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sunrpc-clnt-create-client.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sunrpc-clnt-shutdown-client.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::sunrpc.clnt.create_client</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::sunrpc.clnt.shutdown_client</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::sunrpc.clnt.shutdown_client</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-sunrpc-clnt-restart-call.html" title="probe::sunrpc.clnt.restart_call"><link rel="next" href="API-sunrpc-sched-delay.html" title="probe::sunrpc.sched.delay"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::sunrpc.clnt.shutdown_client</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sunrpc-clnt-restart-call.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-sunrpc-sched-delay.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-sunrpc-clnt-shutdown-client"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::sunrpc.clnt.shutdown_client —
Shutdown an RPC client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.clnt.shutdown_client </pre></div><div class="refsect1"><a name="idm47245127460544"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>om_queue</code></em></span></dt><dd><p>
- the jiffies queued for xmit
- </p></dd><dt><span class="term"><em class="parameter"><code>om_bytes_recv</code></em></span></dt><dd><p>
- the count of bytes in
- </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.clnt.shutdown_client </pre></div><div class="refsect1"><a name="idm47511689306288"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
the IP protocol number
</p></dd><dt><span class="term"><em class="parameter"><code>om_rtt</code></em></span></dt><dd><p>
the RPC RTT jiffies
- </p></dd><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
- the RPC program number
+ </p></dd><dt><span class="term"><em class="parameter"><code>servername</code></em></span></dt><dd><p>
+ the server machine name
+ </p></dd><dt><span class="term"><em class="parameter"><code>om_bytes_recv</code></em></span></dt><dd><p>
+ the count of bytes in
+ </p></dd><dt><span class="term"><em class="parameter"><code>om_queue</code></em></span></dt><dd><p>
+ the jiffies queued for xmit
+ </p></dd><dt><span class="term"><em class="parameter"><code>om_execute</code></em></span></dt><dd><p>
+ the RPC execution jiffies
+ </p></dd><dt><span class="term"><em class="parameter"><code>vers</code></em></span></dt><dd><p>
+ the RPC program version number
</p></dd><dt><span class="term"><em class="parameter"><code>tasks</code></em></span></dt><dd><p>
the number of references
+ </p></dd><dt><span class="term"><em class="parameter"><code>authflavor</code></em></span></dt><dd><p>
+ the authentication flavor
+ </p></dd><dt><span class="term"><em class="parameter"><code>om_ntrans</code></em></span></dt><dd><p>
+ the count of RPC transmissions
+ </p></dd><dt><span class="term"><em class="parameter"><code>clones</code></em></span></dt><dd><p>
+ the number of clones
+ </p></dd><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
+ the RPC program number
</p></dd><dt><span class="term"><em class="parameter"><code>om_bytes_sent</code></em></span></dt><dd><p>
the count of bytes out
- </p></dd><dt><span class="term"><em class="parameter"><code>om_ops</code></em></span></dt><dd><p>
- the count of operations
</p></dd><dt><span class="term"><em class="parameter"><code>rpccnt</code></em></span></dt><dd><p>
the count of RPC calls
+ </p></dd><dt><span class="term"><em class="parameter"><code>om_ops</code></em></span></dt><dd><p>
+ the count of operations
</p></dd><dt><span class="term"><em class="parameter"><code>progname</code></em></span></dt><dd><p>
the RPC program name
- </p></dd><dt><span class="term"><em class="parameter"><code>om_ntrans</code></em></span></dt><dd><p>
- the count of RPC transmissions
- </p></dd><dt><span class="term"><em class="parameter"><code>port</code></em></span></dt><dd><p>
- the port number
- </p></dd><dt><span class="term"><em class="parameter"><code>om_execute</code></em></span></dt><dd><p>
- the RPC execution jiffies
- </p></dd><dt><span class="term"><em class="parameter"><code>vers</code></em></span></dt><dd><p>
- the RPC program version number
- </p></dd><dt><span class="term"><em class="parameter"><code>servername</code></em></span></dt><dd><p>
- the server machine name
</p></dd><dt><span class="term"><em class="parameter"><code>netreconn</code></em></span></dt><dd><p>
the count of reconnections
- </p></dd><dt><span class="term"><em class="parameter"><code>authflavor</code></em></span></dt><dd><p>
- the authentication flavor
- </p></dd><dt><span class="term"><em class="parameter"><code>clones</code></em></span></dt><dd><p>
- the number of clones
+ </p></dd><dt><span class="term"><em class="parameter"><code>port</code></em></span></dt><dd><p>
+ the port number
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sunrpc-clnt-restart-call.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sunrpc-sched-delay.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::sunrpc.clnt.restart_call</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::sunrpc.sched.delay</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::sunrpc.sched.delay</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-sunrpc-clnt-shutdown-client.html" title="probe::sunrpc.clnt.shutdown_client"><link rel="next" href="API-sunrpc-sched-execute.html" title="probe::sunrpc.sched.execute"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::sunrpc.sched.delay</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sunrpc-clnt-shutdown-client.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-sunrpc-sched-execute.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-sunrpc-sched-delay"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::sunrpc.sched.delay —
Delay an RPC task
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.sched.delay </pre></div><div class="refsect1"><a name="idm47245127416288"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>tk_flags</code></em></span></dt><dd><p>
- the flags of the task
- </p></dd><dt><span class="term"><em class="parameter"><code>delay</code></em></span></dt><dd><p>
- the time delayed
- </p></dd><dt><span class="term"><em class="parameter"><code>xid</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.sched.delay </pre></div><div class="refsect1"><a name="idm47511689262080"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>xid</code></em></span></dt><dd><p>
the transmission id in the RPC call
- </p></dd><dt><span class="term"><em class="parameter"><code>tk_pid</code></em></span></dt><dd><p>
- the debugging id of the task
</p></dd><dt><span class="term"><em class="parameter"><code>vers</code></em></span></dt><dd><p>
the program version in the RPC call
+ </p></dd><dt><span class="term"><em class="parameter"><code>delay</code></em></span></dt><dd><p>
+ the time delayed
+ </p></dd><dt><span class="term"><em class="parameter"><code>tk_flags</code></em></span></dt><dd><p>
+ the flags of the task
</p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
the IP protocol in the RPC call
+ </p></dd><dt><span class="term"><em class="parameter"><code>tk_pid</code></em></span></dt><dd><p>
+ the debugging id of the task
</p></dd><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
the program number in the RPC call
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sunrpc-clnt-shutdown-client.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sunrpc-sched-execute.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::sunrpc.clnt.shutdown_client</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::sunrpc.sched.execute</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::sunrpc.sched.execute</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-sunrpc-sched-delay.html" title="probe::sunrpc.sched.delay"><link rel="next" href="API-sunrpc-sched-new-task.html" title="probe::sunrpc.sched.new_task"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::sunrpc.sched.execute</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sunrpc-sched-delay.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-sunrpc-sched-new-task.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-sunrpc-sched-execute"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::sunrpc.sched.execute —
Execute the RPC `scheduler'
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.sched.execute </pre></div><div class="refsect1"><a name="idm47245127394240"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
- the program number in the RPC call
- </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
- the IP protocol in the RPC call
- </p></dd><dt><span class="term"><em class="parameter"><code>tk_pid</code></em></span></dt><dd><p>
- the debugging id of the task
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.sched.execute </pre></div><div class="refsect1"><a name="idm47511689240032"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>xid</code></em></span></dt><dd><p>
+ the transmission id in the RPC call
</p></dd><dt><span class="term"><em class="parameter"><code>vers</code></em></span></dt><dd><p>
the program version in the RPC call
</p></dd><dt><span class="term"><em class="parameter"><code>tk_flags</code></em></span></dt><dd><p>
the flags of the task
- </p></dd><dt><span class="term"><em class="parameter"><code>xid</code></em></span></dt><dd><p>
- the transmission id in the RPC call
+ </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
+ the IP protocol in the RPC call
+ </p></dd><dt><span class="term"><em class="parameter"><code>tk_pid</code></em></span></dt><dd><p>
+ the debugging id of the task
+ </p></dd><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
+ the program number in the RPC call
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sunrpc-sched-delay.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sunrpc-sched-new-task.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::sunrpc.sched.delay</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::sunrpc.sched.new_task</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::sunrpc.sched.new_task</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-sunrpc-sched-execute.html" title="probe::sunrpc.sched.execute"><link rel="next" href="API-sunrpc-sched-release-task.html" title="probe::sunrpc.sched.release_task"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::sunrpc.sched.new_task</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sunrpc-sched-execute.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-sunrpc-sched-release-task.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-sunrpc-sched-new-task"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::sunrpc.sched.new_task —
Create new task for the specified client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.sched.new_task </pre></div><div class="refsect1"><a name="idm47245127374192"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>tk_flags</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.sched.new_task </pre></div><div class="refsect1"><a name="idm47511689220032"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
+ the IP protocol in the RPC call
+ </p></dd><dt><span class="term"><em class="parameter"><code>tk_flags</code></em></span></dt><dd><p>
the flags of the task
</p></dd><dt><span class="term"><em class="parameter"><code>xid</code></em></span></dt><dd><p>
the transmission id in the RPC call
</p></dd><dt><span class="term"><em class="parameter"><code>vers</code></em></span></dt><dd><p>
the program version in the RPC call
- </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
- the IP protocol in the RPC call
</p></dd><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
the program number in the RPC call
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sunrpc-sched-execute.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sunrpc-sched-release-task.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::sunrpc.sched.execute</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::sunrpc.sched.release_task</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::sunrpc.sched.release_task</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-sunrpc-sched-new-task.html" title="probe::sunrpc.sched.new_task"><link rel="next" href="API-sunrpc-svc-create.html" title="probe::sunrpc.svc.create"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::sunrpc.sched.release_task</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sunrpc-sched-new-task.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-sunrpc-svc-create.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-sunrpc-sched-release-task"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::sunrpc.sched.release_task —
Release all resources associated with a task
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.sched.release_task </pre></div><div class="refsect1"><a name="idm47245127356080"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>vers</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.sched.release_task </pre></div><div class="refsect1"><a name="idm47511689201920"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>vers</code></em></span></dt><dd><p>
the program version in the RPC call
- </p></dd><dt><span class="term"><em class="parameter"><code>tk_flags</code></em></span></dt><dd><p>
- the flags of the task
</p></dd><dt><span class="term"><em class="parameter"><code>xid</code></em></span></dt><dd><p>
the transmission id in the RPC call
- </p></dd><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
- the program number in the RPC call
+ </p></dd><dt><span class="term"><em class="parameter"><code>tk_flags</code></em></span></dt><dd><p>
+ the flags of the task
</p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
the IP protocol in the RPC call
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245127344784"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
+ the program number in the RPC call
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511689190624"></a><h2>Description</h2><p>
<code class="function">rpc_release_task</code> function might not be found for a particular kernel.
So, if we can't find it, just return '-1' for everything.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sunrpc-sched-new-task.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sunrpc-svc-create.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::sunrpc.sched.new_task</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::sunrpc.svc.create</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::sunrpc.svc.create</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-sunrpc-sched-release-task.html" title="probe::sunrpc.sched.release_task"><link rel="next" href="API-sunrpc-svc-destroy.html" title="probe::sunrpc.svc.destroy"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::sunrpc.svc.create</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sunrpc-sched-release-task.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-sunrpc-svc-destroy.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-sunrpc-svc-create"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::sunrpc.svc.create —
Create an RPC service
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.svc.create </pre></div><div class="refsect1"><a name="idm47245127336096"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>progname</code></em></span></dt><dd><p>
- the name of the program
- </p></dd><dt><span class="term"><em class="parameter"><code>pg_nvers</code></em></span></dt><dd><p>
- the number of supported versions
- </p></dd><dt><span class="term"><em class="parameter"><code>bufsize</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.svc.create </pre></div><div class="refsect1"><a name="idm47511689181920"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>bufsize</code></em></span></dt><dd><p>
the buffer size
</p></dd><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
the number of the program
+ </p></dd><dt><span class="term"><em class="parameter"><code>pg_nvers</code></em></span></dt><dd><p>
+ the number of supported versions
+ </p></dd><dt><span class="term"><em class="parameter"><code>progname</code></em></span></dt><dd><p>
+ the name of the program
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sunrpc-sched-release-task.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sunrpc-svc-destroy.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::sunrpc.sched.release_task</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::sunrpc.svc.destroy</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::sunrpc.svc.destroy</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-sunrpc-svc-create.html" title="probe::sunrpc.svc.create"><link rel="next" href="API-sunrpc-svc-drop.html" title="probe::sunrpc.svc.drop"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::sunrpc.svc.destroy</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sunrpc-svc-create.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-sunrpc-svc-drop.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-sunrpc-svc-destroy"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::sunrpc.svc.destroy —
Destroy an RPC service
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.svc.destroy </pre></div><div class="refsect1"><a name="idm47245127320080"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rpccnt</code></em></span></dt><dd><p>
- the count of valid RPC requests
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.svc.destroy </pre></div><div class="refsect1"><a name="idm47511689165968"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rpcbadauth</code></em></span></dt><dd><p>
+ the count of requests drooped for authentication failure
</p></dd><dt><span class="term"><em class="parameter"><code>sv_nrthreads</code></em></span></dt><dd><p>
the number of concurrent threads
- </p></dd><dt><span class="term"><em class="parameter"><code>rpcbadauth</code></em></span></dt><dd><p>
- the count of requests drooped for authentication failure
- </p></dd><dt><span class="term"><em class="parameter"><code>sv_name</code></em></span></dt><dd><p>
- the service name
- </p></dd><dt><span class="term"><em class="parameter"><code>netcnt</code></em></span></dt><dd><p>
- the count of received RPC requests
</p></dd><dt><span class="term"><em class="parameter"><code>sv_progname</code></em></span></dt><dd><p>
the name of the program
- </p></dd><dt><span class="term"><em class="parameter"><code>nettcpconn</code></em></span></dt><dd><p>
- the count of accepted TCP connections
+ </p></dd><dt><span class="term"><em class="parameter"><code>rpccnt</code></em></span></dt><dd><p>
+ the count of valid RPC requests
</p></dd><dt><span class="term"><em class="parameter"><code>sv_prog</code></em></span></dt><dd><p>
the number of the program
+ </p></dd><dt><span class="term"><em class="parameter"><code>nettcpconn</code></em></span></dt><dd><p>
+ the count of accepted TCP connections
</p></dd><dt><span class="term"><em class="parameter"><code>rpcbadfmt</code></em></span></dt><dd><p>
the count of requests dropped for bad formats
+ </p></dd><dt><span class="term"><em class="parameter"><code>sv_name</code></em></span></dt><dd><p>
+ the service name
+ </p></dd><dt><span class="term"><em class="parameter"><code>netcnt</code></em></span></dt><dd><p>
+ the count of received RPC requests
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sunrpc-svc-create.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sunrpc-svc-drop.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::sunrpc.svc.create</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::sunrpc.svc.drop</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::sunrpc.svc.drop</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-sunrpc-svc-destroy.html" title="probe::sunrpc.svc.destroy"><link rel="next" href="API-sunrpc-svc-process.html" title="probe::sunrpc.svc.process"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::sunrpc.svc.drop</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sunrpc-svc-destroy.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-sunrpc-svc-process.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-sunrpc-svc-drop"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::sunrpc.svc.drop —
Drop RPC request
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.svc.drop </pre></div><div class="refsect1"><a name="idm47245127294016"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rq_proc</code></em></span></dt><dd><p>
- the procedure number in the request
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.svc.drop </pre></div><div class="refsect1"><a name="idm47511689139792"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rq_prot</code></em></span></dt><dd><p>
+ the IP protocol of the reqeust
</p></dd><dt><span class="term"><em class="parameter"><code>peer_ip</code></em></span></dt><dd><p>
the peer address where the request is from
- </p></dd><dt><span class="term"><em class="parameter"><code>rq_prog</code></em></span></dt><dd><p>
- the program number in the request
</p></dd><dt><span class="term"><em class="parameter"><code>rq_vers</code></em></span></dt><dd><p>
the program version in the request
- </p></dd><dt><span class="term"><em class="parameter"><code>rq_xid</code></em></span></dt><dd><p>
- the transmission id in the request
</p></dd><dt><span class="term"><em class="parameter"><code>sv_name</code></em></span></dt><dd><p>
the service name
- </p></dd><dt><span class="term"><em class="parameter"><code>rq_prot</code></em></span></dt><dd><p>
- the IP protocol of the reqeust
+ </p></dd><dt><span class="term"><em class="parameter"><code>rq_prog</code></em></span></dt><dd><p>
+ the program number in the request
+ </p></dd><dt><span class="term"><em class="parameter"><code>rq_xid</code></em></span></dt><dd><p>
+ the transmission id in the request
+ </p></dd><dt><span class="term"><em class="parameter"><code>rq_proc</code></em></span></dt><dd><p>
+ the procedure number in the request
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sunrpc-svc-destroy.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sunrpc-svc-process.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::sunrpc.svc.destroy</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::sunrpc.svc.process</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::sunrpc.svc.process</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-sunrpc-svc-drop.html" title="probe::sunrpc.svc.drop"><link rel="next" href="API-sunrpc-svc-recv.html" title="probe::sunrpc.svc.recv"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::sunrpc.svc.process</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sunrpc-svc-drop.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-sunrpc-svc-recv.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-sunrpc-svc-process"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::sunrpc.svc.process —
Process an RPC request
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.svc.process </pre></div><div class="refsect1"><a name="idm47245127271872"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rq_xid</code></em></span></dt><dd><p>
- the transmission id in the request
- </p></dd><dt><span class="term"><em class="parameter"><code>sv_name</code></em></span></dt><dd><p>
- the service name
- </p></dd><dt><span class="term"><em class="parameter"><code>rq_prot</code></em></span></dt><dd><p>
- the IP protocol of the reqeust
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.svc.process </pre></div><div class="refsect1"><a name="idm47511689117648"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sv_prog</code></em></span></dt><dd><p>
+ the number of the program
</p></dd><dt><span class="term"><em class="parameter"><code>rq_vers</code></em></span></dt><dd><p>
the program version in the request
+ </p></dd><dt><span class="term"><em class="parameter"><code>peer_ip</code></em></span></dt><dd><p>
+ the peer address where the request is from
+ </p></dd><dt><span class="term"><em class="parameter"><code>rq_prot</code></em></span></dt><dd><p>
+ the IP protocol of the reqeust
</p></dd><dt><span class="term"><em class="parameter"><code>sv_nrthreads</code></em></span></dt><dd><p>
the number of concurrent threads
</p></dd><dt><span class="term"><em class="parameter"><code>rq_proc</code></em></span></dt><dd><p>
the procedure number in the request
- </p></dd><dt><span class="term"><em class="parameter"><code>peer_ip</code></em></span></dt><dd><p>
- the peer address where the request is from
+ </p></dd><dt><span class="term"><em class="parameter"><code>rq_xid</code></em></span></dt><dd><p>
+ the transmission id in the request
</p></dd><dt><span class="term"><em class="parameter"><code>rq_prog</code></em></span></dt><dd><p>
the program number in the request
- </p></dd><dt><span class="term"><em class="parameter"><code>sv_prog</code></em></span></dt><dd><p>
- the number of the program
+ </p></dd><dt><span class="term"><em class="parameter"><code>sv_name</code></em></span></dt><dd><p>
+ the service name
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sunrpc-svc-drop.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sunrpc-svc-recv.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::sunrpc.svc.drop</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::sunrpc.svc.recv</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::sunrpc.svc.recv</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-sunrpc-svc-process.html" title="probe::sunrpc.svc.process"><link rel="next" href="API-sunrpc-svc-register.html" title="probe::sunrpc.svc.register"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::sunrpc.svc.recv</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sunrpc-svc-process.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-sunrpc-svc-register.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-sunrpc-svc-recv"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::sunrpc.svc.recv —
Listen for the next RPC request on any socket
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.svc.recv </pre></div><div class="refsect1"><a name="idm47245127245744"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sv_nrthreads</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.svc.recv </pre></div><div class="refsect1"><a name="idm47511689091472"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sv_nrthreads</code></em></span></dt><dd><p>
the number of concurrent threads
- </p></dd><dt><span class="term"><em class="parameter"><code>sv_name</code></em></span></dt><dd><p>
- the service name
</p></dd><dt><span class="term"><em class="parameter"><code>sv_prog</code></em></span></dt><dd><p>
the number of the program
+ </p></dd><dt><span class="term"><em class="parameter"><code>sv_name</code></em></span></dt><dd><p>
+ the service name
</p></dd><dt><span class="term"><em class="parameter"><code>timeout</code></em></span></dt><dd><p>
the timeout of waiting for data
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sunrpc-svc-process.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sunrpc-svc-register.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::sunrpc.svc.process</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::sunrpc.svc.register</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::sunrpc.svc.register</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-sunrpc-svc-recv.html" title="probe::sunrpc.svc.recv"><link rel="next" href="API-sunrpc-svc-send.html" title="probe::sunrpc.svc.send"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::sunrpc.svc.register</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sunrpc-svc-recv.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-sunrpc-svc-send.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-sunrpc-svc-register"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::sunrpc.svc.register —
Register an RPC service with the local portmapper
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.svc.register </pre></div><div class="refsect1"><a name="idm47245127229680"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sv_name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.svc.register </pre></div><div class="refsect1"><a name="idm47511689075408"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
+ the IP protocol number
+ </p></dd><dt><span class="term"><em class="parameter"><code>sv_name</code></em></span></dt><dd><p>
the service name
- </p></dd><dt><span class="term"><em class="parameter"><code>progname</code></em></span></dt><dd><p>
- the name of the program
</p></dd><dt><span class="term"><em class="parameter"><code>port</code></em></span></dt><dd><p>
the port number
+ </p></dd><dt><span class="term"><em class="parameter"><code>progname</code></em></span></dt><dd><p>
+ the name of the program
</p></dd><dt><span class="term"><em class="parameter"><code>prog</code></em></span></dt><dd><p>
the number of the program
- </p></dd><dt><span class="term"><em class="parameter"><code>prot</code></em></span></dt><dd><p>
- the IP protocol number
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245127218416"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511689064144"></a><h2>Description</h2><p>
If <em class="parameter"><code>proto</code></em> and <em class="parameter"><code>port</code></em> are both 0, then unregister a service.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sunrpc-svc-recv.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sunrpc-svc-send.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::sunrpc.svc.recv</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::sunrpc.svc.send</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::sunrpc.svc.send</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-sunrpc-svc-register.html" title="probe::sunrpc.svc.register"><link rel="next" href="API-tcp-disconnect.html" title="probe::tcp.disconnect"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::sunrpc.svc.send</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sunrpc-svc-register.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tcp-disconnect.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-sunrpc-svc-send"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::sunrpc.svc.send —
Return reply to RPC client
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.svc.send </pre></div><div class="refsect1"><a name="idm47245127209008"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rq_proc</code></em></span></dt><dd><p>
- the procedure number in the request
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">sunrpc.svc.send </pre></div><div class="refsect1"><a name="idm47511689054784"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rq_xid</code></em></span></dt><dd><p>
+ the transmission id in the request
</p></dd><dt><span class="term"><em class="parameter"><code>rq_prog</code></em></span></dt><dd><p>
the program number in the request
+ </p></dd><dt><span class="term"><em class="parameter"><code>rq_proc</code></em></span></dt><dd><p>
+ the procedure number in the request
+ </p></dd><dt><span class="term"><em class="parameter"><code>sv_name</code></em></span></dt><dd><p>
+ the service name
+ </p></dd><dt><span class="term"><em class="parameter"><code>rq_prot</code></em></span></dt><dd><p>
+ the IP protocol of the reqeust
</p></dd><dt><span class="term"><em class="parameter"><code>peer_ip</code></em></span></dt><dd><p>
the peer address where the request is from
</p></dd><dt><span class="term"><em class="parameter"><code>rq_vers</code></em></span></dt><dd><p>
the program version in the request
- </p></dd><dt><span class="term"><em class="parameter"><code>rq_xid</code></em></span></dt><dd><p>
- the transmission id in the request
- </p></dd><dt><span class="term"><em class="parameter"><code>rq_prot</code></em></span></dt><dd><p>
- the IP protocol of the reqeust
- </p></dd><dt><span class="term"><em class="parameter"><code>sv_name</code></em></span></dt><dd><p>
- the service name
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sunrpc-svc-register.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tcp-disconnect.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::sunrpc.svc.register</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::tcp.disconnect</span></td></tr></table></div></body></html>
Return the kernel symbol and module offset for the address
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
symdata:string(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245130827344"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692670752"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The address to translate
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130824288"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692667696"></a><h2>Description</h2><p>
Returns the (function) symbol name associated with the
given address if known, the offset from the start and size of the
symbol, plus module name (between brackets). If symbol is unknown,
Return the kernel symbol associated with the given address
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
symname:string(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245130816512"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692659920"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The address to translate
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130813456"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692656864"></a><h2>Description</h2><p>
Returns the (function) symbol name associated with the
given address if known. If not known it will return the hex string
representation of addr.
Issue a command to the system
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
system(cmd:string)
-</pre></div><div class="refsect1"><a name="idm47245130185808"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cmd</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692029216"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cmd</code></em></span></dt><dd><p>
the command to issue to the system
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130182752"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692026160"></a><h2>Description</h2><p>
This function runs a command on the system. The
command is started in the background some time after the current
probe completes. The command is run with the same UID as the user
Does pid descend from target process?
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
target_set_pid(pid:)
-</pre></div><div class="refsect1"><a name="idm47245125761072"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511687607248"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pid</code></em></span></dt><dd><p>
The pid of the process to query
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125757888"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687604064"></a><h2>Description</h2><p>
This function returns whether the given process-id is
within the <span class="quote">“<span class="quote">target set</span>”</span>, that is whether it is a descendant of the
top-level <code class="function">target</code> process.
Print a report about the target set
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
target_set_report()
-</pre></div><div class="refsect1"><a name="idm47245125748656"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511687594784"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245125747440"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511687593568"></a><h2>Description</h2><p>
This function prints a report about the processes in the
target set, and their ancestry.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-target-set-pid.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="kprocess.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-kprocess-create.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::target_set_pid</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::kprocess.create</span></td></tr></table></div></body></html>
Return the process ID of the target process
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
target:long()
-</pre></div><div class="refsect1"><a name="idm47245130806032"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692649440"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130804880"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692648288"></a><h2>Description</h2><p>
This function returns the process ID of the target
process. This is useful in conjunction with the -x PID or
-c CMD command-line options to stap. An example of its use is
The ancestry of the given task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_ancestry:string(task:long,with_time:long)
-</pre></div><div class="refsect1"><a name="idm47245130795536"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692638944"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
task_struct pointer
</p></dd><dt><span class="term"><em class="parameter"><code>with_time</code></em></span></dt><dd><p>
set to 1 to also print the start time of processes (given as a
delta from boot time)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130790464"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692633872"></a><h2>Description</h2><p>
Return the ancestry of the given task in the form of
<span class="quote">“<span class="quote">grandparent_process=>parent_process=>process</span>”</span>.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-target.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-task-backtrace.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::target</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::task_backtrace</span></td></tr></table></div></body></html>
Hex backtrace of an arbitrary task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_backtrace:string(task:long)
-</pre></div><div class="refsect1"><a name="idm47245130782640"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692626048"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
pointer to task_struct
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130779584"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692622992"></a><h2>Description</h2><p>
This function returns a string of hex addresses
that are a backtrace of the stack of a particular task
Output may be truncated as per maximum string length.
The scheduled cpu of the task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_cpu:long(task:long)
-</pre></div><div class="refsect1"><a name="idm47245130772128"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692615536"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
task_struct pointer
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130769072"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692612480"></a><h2>Description</h2><p>
This function returns the scheduled cpu for the given task.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-task-backtrace.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-task-current.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::task_backtrace</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::task_current</span></td></tr></table></div></body></html>
The current task_struct of the current task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_current:long()
-</pre></div><div class="refsect1"><a name="idm47245130761744"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692605152"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130760592"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692604000"></a><h2>Description</h2><p>
This function returns the task_struct representing the current process.
This address can be passed to the various task_*() functions to extract
more task-specific data.
get the full dentry path
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_dentry_path:string(task:long,dentry:long,vfsmnt:long)
-</pre></div><div class="refsect1"><a name="idm47245124955472"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686801696"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
task_struct pointer.
</p></dd><dt><span class="term"><em class="parameter"><code>dentry</code></em></span></dt><dd><p>
direntry pointer.
</p></dd><dt><span class="term"><em class="parameter"><code>vfsmnt</code></em></span></dt><dd><p>
vfsmnt pointer.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124948240"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686794464"></a><h2>Description</h2><p>
</p><p>
Returns the full dirent name (full path to the root), like
The effective group identifier of the task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_egid:long(task:long)
-</pre></div><div class="refsect1"><a name="idm47245130753152"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692596560"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
task_struct pointer
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130750096"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692593504"></a><h2>Description</h2><p>
This function returns the effective group id of the given task.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-task-current.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-task-euid.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::task_current</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::task_euid</span></td></tr></table></div></body></html>
The effective user identifier of the task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_euid:long(task:long)
-</pre></div><div class="refsect1"><a name="idm47245130742768"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692586176"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
task_struct pointer
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130739712"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692583120"></a><h2>Description</h2><p>
This function returns the effective user id of the given task.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-task-egid.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-task-execname.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::task_egid</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::task_execname</span></td></tr></table></div></body></html>
The name of the task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_execname:string(task:long)
-</pre></div><div class="refsect1"><a name="idm47245130732384"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692575792"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
task_struct pointer
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130729328"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692572736"></a><h2>Description</h2><p>
Return the name of the given task.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-task-euid.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-task-gid.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::task_euid</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::task_gid</span></td></tr></table></div></body></html>
The group identifier of the task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_gid:long(task:long)
-</pre></div><div class="refsect1"><a name="idm47245130722080"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692565488"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
task_struct pointer
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130719024"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692562432"></a><h2>Description</h2><p>
This function returns the group id of the given task.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-task-execname.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-task-max-file-handles.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::task_execname</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::task_max_file_handles</span></td></tr></table></div></body></html>
The max number of open files for the task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_max_file_handles:long(task:long)
-</pre></div><div class="refsect1"><a name="idm47245130711696"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692555104"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
task_struct pointer
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130708640"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692552048"></a><h2>Description</h2><p>
This function returns the maximum number of file handlers for the given task.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-task-gid.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-task-nice.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::task_gid</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::task_nice</span></td></tr></table></div></body></html>
The nice value of the task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_nice:long(task:long)
-</pre></div><div class="refsect1"><a name="idm47245130701296"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692544704"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
task_struct pointer
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130698240"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692541648"></a><h2>Description</h2><p>
This function returns the nice value of the given task.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-task-max-file-handles.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-task-open-file-handles.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::task_max_file_handles</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::task_open_file_handles</span></td></tr></table></div></body></html>
The number of open files of the task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_open_file_handles:long(task:long)
-</pre></div><div class="refsect1"><a name="idm47245130690912"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692534320"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
task_struct pointer
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130687856"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692531264"></a><h2>Description</h2><p>
This function returns the number of open file handlers for the given task.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-task-nice.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-task-parent.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::task_nice</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::task_parent</span></td></tr></table></div></body></html>
The task_struct of the parent task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_parent:long(task:long)
-</pre></div><div class="refsect1"><a name="idm47245130680512"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692523920"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
task_struct pointer
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130677456"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692520864"></a><h2>Description</h2><p>
This function returns the parent task_struct of
the given task. This address can be passed to the various
task_*() functions to extract more task-specific data.
The process identifier of the task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_pid:long(task:long)
-</pre></div><div class="refsect1"><a name="idm47245130670016"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692513424"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
task_struct pointer
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130666960"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692510368"></a><h2>Description</h2><p>
This fucntion returns the process id of the given task.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-task-parent.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-task-prio.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::task_parent</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::task_prio</span></td></tr></table></div></body></html>
The priority value of the task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_prio:long(task:long)
-</pre></div><div class="refsect1"><a name="idm47245130659632"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692503040"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
task_struct pointer
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130656576"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692499984"></a><h2>Description</h2><p>
This function returns the priority value of the given task.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-task-pid.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-task-state.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::task_pid</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::task_state</span></td></tr></table></div></body></html>
Start time of the given task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_start_time:long(tid:long)
-</pre></div><div class="refsect1"><a name="idm47245129710544"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>tid</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511691556240"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>tid</code></em></span></dt><dd><p>
Thread id of the given task
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129707328"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691553024"></a><h2>Description</h2><p>
Returns the start time of the given task in nanoseconds since
boot time or 0 if the task does not exist.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-nsecs-to-string.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="task_time_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-task-stime.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::nsecs_to_string</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::task_stime</span></td></tr></table></div></body></html>
The state of the task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_state:long(task:long)
-</pre></div><div class="refsect1"><a name="idm47245130649248"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692492656"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
task_struct pointer
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130646192"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692489600"></a><h2>Description</h2><p>
Return the state of the given task, one of:
TASK_RUNNING (0), TASK_INTERRUPTIBLE (1), TASK_UNINTERRUPTIBLE (2),
TASK_STOPPED (4), TASK_TRACED (8), EXIT_ZOMBIE (16), or EXIT_DEAD (32).
System time of the given task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_stime_tid:long(tid:long)
-</pre></div><div class="refsect1"><a name="idm47245129690096"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>tid</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511691535728"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>tid</code></em></span></dt><dd><p>
Thread id of the given task
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129686928"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691532560"></a><h2>Description</h2><p>
Returns the system time of the given task in cputime,
or zero if the task doesn't exist.
Does not include any time used by other tasks in this process, nor
System time of the current task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_stime:long()
-</pre></div><div class="refsect1"><a name="idm47245129699408"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511691544992"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245129698192"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511691543776"></a><h2>Description</h2><p>
Returns the system time of the current task in cputime.
Does not include any time used by other tasks in this process, nor
does it include any time of the children of this task.
The thread identifier of the task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_tid:long(task:long)
-</pre></div><div class="refsect1"><a name="idm47245130638736"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692482144"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
task_struct pointer
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130635680"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692479088"></a><h2>Description</h2><p>
This function returns the thread id of the given task.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-task-state.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-task-uid.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::task_state</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::task_uid</span></td></tr></table></div></body></html>
Human readable string of task time usage
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_time_string_tid:string(tid:long)
-</pre></div><div class="refsect1"><a name="idm47245129668976"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>tid</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511691514656"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>tid</code></em></span></dt><dd><p>
Thread id of the given task
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129665808"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691511488"></a><h2>Description</h2><p>
Returns a human readable string showing the user and
system time the given task has used up to now. For example
<span class="quote">“<span class="quote">usr: 0m12.908s, sys: 1m6.851s</span>”</span>.
Human readable string of task time usage
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_time_string:string()
-</pre></div><div class="refsect1"><a name="idm47245129678720"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511691524464"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245129677504"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511691523248"></a><h2>Description</h2><p>
Returns a human readable string showing the user and
system time the current task has used up to now. For example
<span class="quote">“<span class="quote">usr: 0m12.908s, sys: 1m6.851s</span>”</span>.
The user identifier of the task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_uid:long(task:long)
-</pre></div><div class="refsect1"><a name="idm47245130628352"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692471760"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
task_struct pointer
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130625296"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692468704"></a><h2>Description</h2><p>
This function returns the user id of the given task.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-task-tid.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tid.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::task_tid</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::tid</span></td></tr></table></div></body></html>
User time of the given task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_utime_tid:long(tid:long)
-</pre></div><div class="refsect1"><a name="idm47245129647952"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>tid</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511691493744"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>tid</code></em></span></dt><dd><p>
Thread id of the given task
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129644784"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691490576"></a><h2>Description</h2><p>
Returns the user time of the given task in cputime,
or zero if the task doesn't exist.
Does not include any time used by other tasks in this process, nor
User time of the current task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
task_utime:long()
-</pre></div><div class="refsect1"><a name="idm47245129657328"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511691503056"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245129656112"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511691501840"></a><h2>Description</h2><p>
Returns the user time of the current task in cputime.
Does not include any time used by other tasks in this process, nor
does it include any time of the children of this task.
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tcp.disconnect.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-tcp-disconnect.html" title="probe::tcp.disconnect"><link rel="next" href="API-tcp-receive.html" title="probe::tcp.receive"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tcp.disconnect.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tcp-disconnect.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tcp-receive.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tcp-disconnect-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tcp.disconnect.return —
TCP socket disconnection complete
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcp.disconnect.return </pre></div><div class="refsect1"><a name="idm47245127161600"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ret</code></em></span></dt><dd><p>
- Error code (0: no error)
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcp.disconnect.return </pre></div><div class="refsect1"><a name="idm47511689007328"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of this probe
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245127156416"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>ret</code></em></span></dt><dd><p>
+ Error code (0: no error)
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511689002144"></a><h2>Context</h2><p>
The process which disconnects tcp
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tcp-disconnect.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tcp-receive.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::tcp.disconnect</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::tcp.receive</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tcp.disconnect</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-sunrpc-svc-send.html" title="probe::sunrpc.svc.send"><link rel="next" href="API-tcp-disconnect-return.html" title="probe::tcp.disconnect.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tcp.disconnect</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sunrpc-svc-send.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tcp-disconnect-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tcp-disconnect"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tcp.disconnect —
TCP socket disconnection
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcp.disconnect </pre></div><div class="refsect1"><a name="idm47245127186944"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcp.disconnect </pre></div><div class="refsect1"><a name="idm47511689032672"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
+ TCP destination port
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of this probe
+ </p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
TCP flags (e.g. FIN, etc)
- </p></dd><dt><span class="term"><em class="parameter"><code>sport</code></em></span></dt><dd><p>
- TCP source port
+ </p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
+ A string representing the destination IP address
+ </p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
+ A string representing the source IP address
</p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
IP address family
</p></dd><dt><span class="term"><em class="parameter"><code>sock</code></em></span></dt><dd><p>
Network socket
- </p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
- A string representing the source IP address
- </p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
- A string representing the destination IP address
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of this probe
- </p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
- TCP destination port
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245127169584"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>sport</code></em></span></dt><dd><p>
+ TCP source port
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511689015312"></a><h2>Context</h2><p>
The process which disconnects tcp
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sunrpc-svc-send.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tcp-disconnect-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::sunrpc.svc.send</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::tcp.disconnect.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tcp.receive</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-tcp-disconnect-return.html" title="probe::tcp.disconnect.return"><link rel="next" href="API-tcp-recvmsg.html" title="probe::tcp.recvmsg"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tcp.receive</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tcp-disconnect-return.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tcp-recvmsg.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tcp-receive"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tcp.receive —
Called when a TCP packet is received
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcp.receive </pre></div><div class="refsect1"><a name="idm47245127148496"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>syn</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcp.receive </pre></div><div class="refsect1"><a name="idm47511688994240"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>syn</code></em></span></dt><dd><p>
TCP SYN flag
- </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
- Packet protocol from driver
- </p></dd><dt><span class="term"><em class="parameter"><code>rst</code></em></span></dt><dd><p>
- TCP RST flag
- </p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
- A string representing the destination IP address
- </p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
- A string representing the source IP address
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
- TCP destination port
+ </p></dd><dt><span class="term"><em class="parameter"><code>iphdr</code></em></span></dt><dd><p>
+ IP header address
</p></dd><dt><span class="term"><em class="parameter"><code>psh</code></em></span></dt><dd><p>
TCP PSH flag
- </p></dd><dt><span class="term"><em class="parameter"><code>ack</code></em></span></dt><dd><p>
- TCP ACK flag
</p></dd><dt><span class="term"><em class="parameter"><code>fin</code></em></span></dt><dd><p>
TCP FIN flag
+ </p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
+ TCP destination port
+ </p></dd><dt><span class="term"><em class="parameter"><code>protocol</code></em></span></dt><dd><p>
+ Packet protocol from driver
</p></dd><dt><span class="term"><em class="parameter"><code>urg</code></em></span></dt><dd><p>
TCP URG flag
</p></dd><dt><span class="term"><em class="parameter"><code>sport</code></em></span></dt><dd><p>
TCP source port
</p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
IP address family
- </p></dd><dt><span class="term"><em class="parameter"><code>iphdr</code></em></span></dt><dd><p>
- IP header address
+ </p></dd><dt><span class="term"><em class="parameter"><code>ack</code></em></span></dt><dd><p>
+ TCP ACK flag
+ </p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
+ A string representing the source IP address
+ </p></dd><dt><span class="term"><em class="parameter"><code>rst</code></em></span></dt><dd><p>
+ TCP RST flag
+ </p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
+ A string representing the destination IP address
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tcp-disconnect-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tcp-recvmsg.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::tcp.disconnect.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::tcp.recvmsg</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tcp.recvmsg.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-tcp-recvmsg.html" title="probe::tcp.recvmsg"><link rel="next" href="API-tcp-sendmsg.html" title="probe::tcp.sendmsg"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tcp.recvmsg.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tcp-recvmsg.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tcp-sendmsg.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tcp-recvmsg-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tcp.recvmsg.return —
Receiving TCP message complete
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcp.recvmsg.return </pre></div><div class="refsect1"><a name="idm47245127087296"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of this probe
- </p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
- TCP destination port
- </p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
- A string representing the destination IP address
- </p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
- A string representing the source IP address
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcp.recvmsg.return </pre></div><div class="refsect1"><a name="idm47511688932976"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sport</code></em></span></dt><dd><p>
+ TCP source port
</p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
IP address family
- </p></dd><dt><span class="term"><em class="parameter"><code>sport</code></em></span></dt><dd><p>
- TCP source port
+ </p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
+ A string representing the source IP address
</p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
Number of bytes received or error code if an error occurred.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245127071920"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
+ A string representing the destination IP address
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of this probe
+ </p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
+ TCP destination port
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688917600"></a><h2>Context</h2><p>
The process which receives a tcp message
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tcp-recvmsg.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tcp-sendmsg.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::tcp.recvmsg</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::tcp.sendmsg</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tcp.recvmsg</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-tcp-receive.html" title="probe::tcp.receive"><link rel="next" href="API-tcp-recvmsg-return.html" title="probe::tcp.recvmsg.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tcp.recvmsg</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tcp-receive.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tcp-recvmsg-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tcp-recvmsg"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tcp.recvmsg —
Receiving TCP message
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcp.recvmsg </pre></div><div class="refsect1"><a name="idm47245127112672"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcp.recvmsg </pre></div><div class="refsect1"><a name="idm47511688958352"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of this probe
+ </p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
+ TCP destination port
+ </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
IP address family
- </p></dd><dt><span class="term"><em class="parameter"><code>sock</code></em></span></dt><dd><p>
- Network socket
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- Number of bytes to be received
</p></dd><dt><span class="term"><em class="parameter"><code>sport</code></em></span></dt><dd><p>
TCP source port
+ </p></dd><dt><span class="term"><em class="parameter"><code>sock</code></em></span></dt><dd><p>
+ Network socket
</p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
A string representing the destination IP address
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ Number of bytes to be received
</p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
A string representing the source IP address
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of this probe
- </p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
- TCP destination port
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245127095296"></a><h2>Context</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688940976"></a><h2>Context</h2><p>
The process which receives a tcp message
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tcp-receive.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tcp-recvmsg-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::tcp.receive</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::tcp.recvmsg.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tcp.sendmsg.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-tcp-sendmsg.html" title="probe::tcp.sendmsg"><link rel="next" href="API-tcp-setsockopt.html" title="probe::tcp.setsockopt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tcp.sendmsg.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tcp-sendmsg.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tcp-setsockopt.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tcp-sendmsg-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tcp.sendmsg.return —
Sending TCP message is done
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcp.sendmsg.return </pre></div><div class="refsect1"><a name="idm47245127046752"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- Number of bytes sent or error code if an error occurred.
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcp.sendmsg.return </pre></div><div class="refsect1"><a name="idm47511688892496"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of this probe
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245127041504"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ Number of bytes sent or error code if an error occurred.
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688887248"></a><h2>Context</h2><p>
The process which sends a tcp message
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tcp-sendmsg.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tcp-setsockopt.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::tcp.sendmsg</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::tcp.setsockopt</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tcp.sendmsg</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-tcp-recvmsg-return.html" title="probe::tcp.recvmsg.return"><link rel="next" href="API-tcp-sendmsg-return.html" title="probe::tcp.sendmsg.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tcp.sendmsg</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tcp-recvmsg-return.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tcp-sendmsg-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tcp-sendmsg"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tcp.sendmsg —
Sending a tcp message
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcp.sendmsg </pre></div><div class="refsect1"><a name="idm47245127064000"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- Number of bytes to send
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcp.sendmsg </pre></div><div class="refsect1"><a name="idm47511688909696"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sock</code></em></span></dt><dd><p>
+ Network socket
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of this probe
</p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
IP address family
- </p></dd><dt><span class="term"><em class="parameter"><code>sock</code></em></span></dt><dd><p>
- Network socket
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245127054752"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ Number of bytes to send
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688900448"></a><h2>Context</h2><p>
The process which sends a tcp message
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tcp-recvmsg-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tcp-sendmsg-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::tcp.recvmsg.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::tcp.sendmsg.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tcp.setsockopt.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-tcp-setsockopt.html" title="probe::tcp.setsockopt"><link rel="next" href="API-udp-disconnect.html" title="probe::udp.disconnect"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tcp.setsockopt.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tcp-setsockopt.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-udp-disconnect.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tcp-setsockopt-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tcp.setsockopt.return —
Return from <code class="function">setsockopt</code>
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcp.setsockopt.return </pre></div><div class="refsect1"><a name="idm47245127008160"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ret</code></em></span></dt><dd><p>
- Error code (0: no error)
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcp.setsockopt.return </pre></div><div class="refsect1"><a name="idm47511688853968"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of this probe
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245127002976"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>ret</code></em></span></dt><dd><p>
+ Error code (0: no error)
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688848784"></a><h2>Context</h2><p>
The process which calls setsockopt
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tcp-setsockopt.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-udp-disconnect.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::tcp.setsockopt</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::udp.disconnect</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tcp.setsockopt</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-tcp-sendmsg-return.html" title="probe::tcp.sendmsg.return"><link rel="next" href="API-tcp-setsockopt-return.html" title="probe::tcp.setsockopt.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tcp.setsockopt</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tcp-sendmsg-return.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tcp-setsockopt-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tcp-setsockopt"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tcp.setsockopt —
Call to <code class="function">setsockopt</code>
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcp.setsockopt </pre></div><div class="refsect1"><a name="idm47245127032864"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sock</code></em></span></dt><dd><p>
- Network socket
- </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
- IP address family
- </p></dd><dt><span class="term"><em class="parameter"><code>optlen</code></em></span></dt><dd><p>
- Used to access values for <code class="function">setsockopt</code>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcp.setsockopt </pre></div><div class="refsect1"><a name="idm47511688878608"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of this probe
</p></dd><dt><span class="term"><em class="parameter"><code>optname</code></em></span></dt><dd><p>
TCP socket options (e.g. TCP_NODELAY, TCP_MAXSEG, etc)
</p></dd><dt><span class="term"><em class="parameter"><code>level</code></em></span></dt><dd><p>
The level at which the socket options will be manipulated
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of this probe
</p></dd><dt><span class="term"><em class="parameter"><code>optstr</code></em></span></dt><dd><p>
Resolves optname to a human-readable format
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245127016800"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>sock</code></em></span></dt><dd><p>
+ Network socket
+ </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ IP address family
+ </p></dd><dt><span class="term"><em class="parameter"><code>optlen</code></em></span></dt><dd><p>
+ Used to access values for <code class="function">setsockopt</code>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688862544"></a><h2>Context</h2><p>
The process which calls setsockopt
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tcp-sendmsg-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tcp-setsockopt-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::tcp.sendmsg.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::tcp.setsockopt.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tcpmib.ActiveOpens</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-linuxmib-TCPMemoryPressures.html" title="probe::linuxmib.TCPMemoryPressures"><link rel="next" href="API-tcpmib-AttemptFails.html" title="probe::tcpmib.AttemptFails"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tcpmib.ActiveOpens</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-linuxmib-TCPMemoryPressures.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tcpmib-AttemptFails.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tcpmib-ActiveOpens"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tcpmib.ActiveOpens —
Count an active opening of a socket
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcpmib.ActiveOpens </pre></div><div class="refsect1"><a name="idm47245125922512"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcpmib.ActiveOpens </pre></div><div class="refsect1"><a name="idm47511687768480"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
pointer to the struct sock being acted on
</p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
value to be added to the counter (default value of 1)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125917312"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687763280"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">tcpmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>ActiveOpens</code></em> (equivalent to SNMP's MIB
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tcpmib.AttemptFails</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-tcpmib-ActiveOpens.html" title="probe::tcpmib.ActiveOpens"><link rel="next" href="API-tcpmib-CurrEstab.html" title="probe::tcpmib.CurrEstab"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tcpmib.AttemptFails</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tcpmib-ActiveOpens.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tcpmib-CurrEstab.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tcpmib-AttemptFails"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tcpmib.AttemptFails —
Count a failed attempt to open a socket
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcpmib.AttemptFails </pre></div><div class="refsect1"><a name="idm47245125907088"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcpmib.AttemptFails </pre></div><div class="refsect1"><a name="idm47511687753056"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
pointer to the struct sock being acted on
</p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
value to be added to the counter (default value of 1)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125901888"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687747856"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">tcpmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>AttemptFails</code></em> (equivalent to SNMP's MIB
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tcpmib.CurrEstab</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-tcpmib-AttemptFails.html" title="probe::tcpmib.AttemptFails"><link rel="next" href="API-tcpmib-EstabResets.html" title="probe::tcpmib.EstabResets"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tcpmib.CurrEstab</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tcpmib-AttemptFails.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tcpmib-EstabResets.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tcpmib-CurrEstab"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tcpmib.CurrEstab —
Update the count of open sockets
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcpmib.CurrEstab </pre></div><div class="refsect1"><a name="idm47245125891696"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcpmib.CurrEstab </pre></div><div class="refsect1"><a name="idm47511687737664"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
value to be added to the counter (default value of 1)
</p></dd><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
pointer to the struct sock being acted on
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125886496"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687732464"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">tcpmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>CurrEstab</code></em> (equivalent to SNMP's MIB
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tcpmib.EstabResets</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-tcpmib-CurrEstab.html" title="probe::tcpmib.CurrEstab"><link rel="next" href="API-tcpmib-InSegs.html" title="probe::tcpmib.InSegs"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tcpmib.EstabResets</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tcpmib-CurrEstab.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tcpmib-InSegs.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tcpmib-EstabResets"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tcpmib.EstabResets —
Count the reset of a socket
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcpmib.EstabResets </pre></div><div class="refsect1"><a name="idm47245125876352"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcpmib.EstabResets </pre></div><div class="refsect1"><a name="idm47511687722256"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
pointer to the struct sock being acted on
</p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
value to be added to the counter (default value of 1)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125871152"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687717056"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">tcpmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>EstabResets</code></em> (equivalent to SNMP's MIB
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tcpmib.InSegs</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-tcpmib-EstabResets.html" title="probe::tcpmib.EstabResets"><link rel="next" href="API-tcpmib-OutRsts.html" title="probe::tcpmib.OutRsts"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tcpmib.InSegs</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tcpmib-EstabResets.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tcpmib-OutRsts.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tcpmib-InSegs"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tcpmib.InSegs —
Count an incoming tcp segment
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcpmib.InSegs </pre></div><div class="refsect1"><a name="idm47245125861040"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcpmib.InSegs </pre></div><div class="refsect1"><a name="idm47511687706880"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
pointer to the struct sock being acted on
</p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
value to be added to the counter (default value of 1)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125855840"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687701680"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">tcpmib_filter_key</code> (or <code class="function">ipmib_filter_key</code> for tcp v4).
If the packet passes the filter is is
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tcpmib.OutRsts</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-tcpmib-InSegs.html" title="probe::tcpmib.InSegs"><link rel="next" href="API-tcpmib-OutSegs.html" title="probe::tcpmib.OutSegs"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tcpmib.OutRsts</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tcpmib-InSegs.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tcpmib-OutSegs.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tcpmib-OutRsts"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tcpmib.OutRsts —
Count the sending of a reset packet
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcpmib.OutRsts </pre></div><div class="refsect1"><a name="idm47245125844912"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcpmib.OutRsts </pre></div><div class="refsect1"><a name="idm47511687690816"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
value to be added to the counter (default value of 1)
</p></dd><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
pointer to the struct sock being acted on
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125839712"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687685616"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">tcpmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>OutRsts</code></em> (equivalent to SNMP's MIB
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tcpmib.OutSegs</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-tcpmib-OutRsts.html" title="probe::tcpmib.OutRsts"><link rel="next" href="API-tcpmib-PassiveOpens.html" title="probe::tcpmib.PassiveOpens"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tcpmib.OutSegs</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tcpmib-OutRsts.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tcpmib-PassiveOpens.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tcpmib-OutSegs"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tcpmib.OutSegs —
Count the sending of a TCP segment
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcpmib.OutSegs </pre></div><div class="refsect1"><a name="idm47245125829584"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
- value to be added to the counter (default value of 1)
- </p></dd><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcpmib.OutSegs </pre></div><div class="refsect1"><a name="idm47511687675472"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
pointer to the struct sock being acted on
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125824384"></a><h2>Description</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
+ value to be added to the counter (default value of 1)
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687670272"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">tcpmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>OutSegs</code></em> (equivalent to SNMP's MIB
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tcpmib.PassiveOpens</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-tcpmib-OutSegs.html" title="probe::tcpmib.OutSegs"><link rel="next" href="API-tcpmib-RetransSegs.html" title="probe::tcpmib.RetransSegs"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tcpmib.PassiveOpens</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tcpmib-OutSegs.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tcpmib-RetransSegs.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tcpmib-PassiveOpens"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tcpmib.PassiveOpens —
Count the passive creation of a socket
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcpmib.PassiveOpens </pre></div><div class="refsect1"><a name="idm47245125814160"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcpmib.PassiveOpens </pre></div><div class="refsect1"><a name="idm47511687660096"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
pointer to the struct sock being acted on
</p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
value to be added to the counter (default value of 1)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125808960"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687654896"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">tcpmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>PassiveOpens</code></em> (equivalent to SNMP's MIB
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tcpmib.RetransSegs</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="snmp.stp.html" title="Chapter 15. SNMP Information Tapset"><link rel="prev" href="API-tcpmib-PassiveOpens.html" title="probe::tcpmib.PassiveOpens"><link rel="next" href="kprocess.stp.html" title="Chapter 16. Kernel Process Tapset"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tcpmib.RetransSegs</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tcpmib-PassiveOpens.html">Prev</a> </td><th width="60%" align="center">Chapter 15. SNMP Information Tapset</th><td width="20%" align="right"> <a accesskey="n" href="kprocess.stp.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tcpmib-RetransSegs"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tcpmib.RetransSegs —
Count the retransmission of a TCP segment
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcpmib.RetransSegs </pre></div><div class="refsect1"><a name="idm47245125798736"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tcpmib.RetransSegs </pre></div><div class="refsect1"><a name="idm47511687644720"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
pointer to the struct sock being acted on
</p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
value to be added to the counter (default value of 1)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245125793536"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511687639520"></a><h2>Description</h2><p>
The packet pointed to by <em class="parameter"><code>skb</code></em> is filtered by the function
<code class="function">tcpmib_filter_key</code>. If the packet passes the filter is is
counted in the global <em class="parameter"><code>RetransSegs</code></em> (equivalent to SNMP's MIB
Default filter function for tcpmib.* probes
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
tcpmib_filter_key:long(sk:long,op:long)
-</pre></div><div class="refsect1"><a name="idm47245126224672"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688070912"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
pointer to the struct sock being acted on
</p></dd><dt><span class="term"><em class="parameter"><code>op</code></em></span></dt><dd><p>
value to be counted if <em class="parameter"><code>sk</code></em> passes the filter
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126218816"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688065056"></a><h2>Description</h2><p>
This function is a default filter function.
The user can replace this function with their own.
The user-supplied filter function returns an index key based on the values
Get a socket's state
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
tcpmib_get_state:long(sk:long)
-</pre></div><div class="refsect1"><a name="idm47245126209344"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688055520"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
pointer to a struct sock
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126206176"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688052352"></a><h2>Description</h2><p>
Returns the sk_state from a struct sock.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tcpmib-filter-key.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="snmp.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tcpmib-local-addr.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::tcpmib_filter_key</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::tcpmib_local_addr</span></td></tr></table></div></body></html>
Get the source address
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
tcpmib_local_addr:long(sk:long)
-</pre></div><div class="refsect1"><a name="idm47245126198160"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688044384"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
pointer to a struct inet_sock
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126194976"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688041200"></a><h2>Description</h2><p>
Returns the saddr from a struct inet_sock in host order.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tcpmib-get-state.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="snmp.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tcpmib-local-port.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::tcpmib_get_state</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::tcpmib_local_port</span></td></tr></table></div></body></html>
Get the local port
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
tcpmib_local_port:long(sk:long)
-</pre></div><div class="refsect1"><a name="idm47245126187008"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688033168"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
pointer to a struct inet_sock
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126183824"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688029984"></a><h2>Description</h2><p>
Returns the sport from a struct inet_sock in host order.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tcpmib-local-addr.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="snmp.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tcpmib-remote-addr.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::tcpmib_local_addr</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::tcpmib_remote_addr</span></td></tr></table></div></body></html>
Get the remote address
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
tcpmib_remote_addr:long(sk:long)
-</pre></div><div class="refsect1"><a name="idm47245126175792"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688022000"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
pointer to a struct inet_sock
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126172608"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688018816"></a><h2>Description</h2><p>
Returns the daddr from a struct inet_sock in host order.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tcpmib-local-port.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="snmp.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tcpmib-remote-port.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::tcpmib_local_port</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::tcpmib_remote_port</span></td></tr></table></div></body></html>
Get the remote port
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
tcpmib_remote_port:long(sk:long)
-</pre></div><div class="refsect1"><a name="idm47245126164624"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511688010784"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sk</code></em></span></dt><dd><p>
pointer to a struct inet_sock
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126161440"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688007600"></a><h2>Description</h2><p>
Returns the dport from a struct inet_sock in host order.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tcpmib-remote-addr.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="snmp.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ipmib-ForwDatagrams.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::tcpmib_remote_addr</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::ipmib.ForwDatagrams</span></td></tr></table></div></body></html>
Escape any non-printable chars in a string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
text_str:string(input:string)
-</pre></div><div class="refsect1"><a name="idm47245123866976"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>input</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685713600"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>input</code></em></span></dt><dd><p>
the string to escape
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123863776"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685710400"></a><h2>Description</h2><p>
This function accepts a string argument,
and any ASCII characters that are not
printable are replaced by the corresponding escape sequence in the
Escape any non-printable chars in a string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
text_strn:string(input:string,len:long,quoted:long)
-</pre></div><div class="refsect1"><a name="idm47245123855616"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>input</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685702288"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>input</code></em></span></dt><dd><p>
the string to escape
</p></dd><dt><span class="term"><em class="parameter"><code>len</code></em></span></dt><dd><p>
maximum length of string to return (0 implies MAXSTRINGLEN)
</p></dd><dt><span class="term"><em class="parameter"><code>quoted</code></em></span></dt><dd><p>
put double quotes around the string. If input string is
truncated it will have <span class="quote">“<span class="quote">...</span>”</span> after the second quote
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123847840"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685694512"></a><h2>Description</h2><p>
This function accepts a string of designated length,
and any ASCII characters that are not
printable are replaced by the corresponding escape sequence in the
returns the nested-depth of the current task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
thread_indent_depth:long(delta:long)
-</pre></div><div class="refsect1"><a name="idm47245123669664"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>delta</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685516352"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>delta</code></em></span></dt><dd><p>
the amount of depth added/removed for each call
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123666432"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685513120"></a><h2>Description</h2><p>
This function returns an integer equal to the nested
function-call depth starting from the outermost initial level. This function
is useful for saving space (consumed by whitespace) in traces with long
returns an amount of space with the current task information
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
thread_indent:string(delta:long)
-</pre></div><div class="refsect1"><a name="idm47245123681232"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>delta</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685527920"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>delta</code></em></span></dt><dd><p>
the amount of space added/removed for each call
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123678000"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685524688"></a><h2>Description</h2><p>
This function returns a string with appropriate
indentation for a thread. Call it with a small positive or
matching negative delta. If this is the real outermost,
Returns the thread ID of a target process
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
tid:long()
-</pre></div><div class="refsect1"><a name="idm47245130617968"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692461376"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130616816"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692460224"></a><h2>Description</h2><p>
This function returns the thread ID of the target process.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-task-uid.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-u32-arg.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::task_uid</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::u32_arg</span></td></tr></table></div></body></html>
Return the next non-empty token in a string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
tokenize:string(input:string,delim:string)
-</pre></div><div class="refsect1"><a name="idm47245123839728"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>input</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685686352"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>input</code></em></span></dt><dd><p>
string to tokenize. If empty, returns the next non-empty token
in the string passed in the previous call to <code class="function">tokenize</code>.
</p></dd><dt><span class="term"><em class="parameter"><code>delim</code></em></span></dt><dd><p>
set of characters that delimit the tokens
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123833696"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685680320"></a><h2>Description</h2><p>
This function returns the next non-empty token in the
given input string, where the tokens are delimited by characters in
the delim string. If the input string is non-empty, it returns the
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tty.init</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="tty.stp.html" title="Chapter 11. TTY Tapset"><link rel="prev" href="tty.stp.html" title="Chapter 11. TTY Tapset"><link rel="next" href="API-tty-ioctl.html" title="probe::tty.ioctl"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tty.init</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="tty.stp.html">Prev</a> </td><th width="60%" align="center">Chapter 11. TTY Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tty-ioctl.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tty-init"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tty.init —
Called when a tty is being initalized
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.init </pre></div><div class="refsect1"><a name="idm47245128857184"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>driver_name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.init </pre></div><div class="refsect1"><a name="idm47511690702672"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>driver_name</code></em></span></dt><dd><p>
the driver name
- </p></dd><dt><span class="term"><em class="parameter"><code>module</code></em></span></dt><dd><p>
- the module name
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
the driver .dev_name name
+ </p></dd><dt><span class="term"><em class="parameter"><code>module</code></em></span></dt><dd><p>
+ the module name
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tty.stp.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tty.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tty-ioctl.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 11. TTY Tapset </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::tty.ioctl</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tty.ioctl</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="tty.stp.html" title="Chapter 11. TTY Tapset"><link rel="prev" href="API-tty-init.html" title="probe::tty.init"><link rel="next" href="API-tty-open.html" title="probe::tty.open"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tty.ioctl</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tty-init.html">Prev</a> </td><th width="60%" align="center">Chapter 11. TTY Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tty-open.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tty-ioctl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tty.ioctl —
called when a ioctl is request to the tty
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.ioctl </pre></div><div class="refsect1"><a name="idm47245128843216"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cmd</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.ioctl </pre></div><div class="refsect1"><a name="idm47511690688704"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ the file name
+ </p></dd><dt><span class="term"><em class="parameter"><code>cmd</code></em></span></dt><dd><p>
the ioctl command
</p></dd><dt><span class="term"><em class="parameter"><code>arg</code></em></span></dt><dd><p>
the ioctl argument
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- the file name
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tty-init.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tty.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tty-open.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::tty.init</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::tty.open</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tty.open</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="tty.stp.html" title="Chapter 11. TTY Tapset"><link rel="prev" href="API-tty-ioctl.html" title="probe::tty.ioctl"><link rel="next" href="API-tty-poll.html" title="probe::tty.poll"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tty.open</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tty-ioctl.html">Prev</a> </td><th width="60%" align="center">Chapter 11. TTY Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tty-poll.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tty-open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tty.open —
Called when a tty is opened
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.open </pre></div><div class="refsect1"><a name="idm47245128829392"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>file_name</code></em></span></dt><dd><p>
- the file name
- </p></dd><dt><span class="term"><em class="parameter"><code>file_mode</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.open </pre></div><div class="refsect1"><a name="idm47511690674816"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>file_mode</code></em></span></dt><dd><p>
the file mode
+ </p></dd><dt><span class="term"><em class="parameter"><code>inode_flags</code></em></span></dt><dd><p>
+ the inode flags
</p></dd><dt><span class="term"><em class="parameter"><code>inode_state</code></em></span></dt><dd><p>
the inode state
+ </p></dd><dt><span class="term"><em class="parameter"><code>file_name</code></em></span></dt><dd><p>
+ the file name
</p></dd><dt><span class="term"><em class="parameter"><code>inode_number</code></em></span></dt><dd><p>
the inode number
</p></dd><dt><span class="term"><em class="parameter"><code>file_flags</code></em></span></dt><dd><p>
the file flags
- </p></dd><dt><span class="term"><em class="parameter"><code>inode_flags</code></em></span></dt><dd><p>
- the inode flags
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tty-ioctl.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tty.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tty-poll.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::tty.ioctl</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::tty.poll</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tty.poll</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="tty.stp.html" title="Chapter 11. TTY Tapset"><link rel="prev" href="API-tty-open.html" title="probe::tty.open"><link rel="next" href="API-tty-read.html" title="probe::tty.read"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tty.poll</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tty-open.html">Prev</a> </td><th width="60%" align="center">Chapter 11. TTY Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tty-read.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tty-poll"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tty.poll —
Called when a tty device is being polled
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.poll </pre></div><div class="refsect1"><a name="idm47245128809424"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>wait_key</code></em></span></dt><dd><p>
- the wait queue key
- </p></dd><dt><span class="term"><em class="parameter"><code>file_name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.poll </pre></div><div class="refsect1"><a name="idm47511690654800"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>file_name</code></em></span></dt><dd><p>
the tty file name
+ </p></dd><dt><span class="term"><em class="parameter"><code>wait_key</code></em></span></dt><dd><p>
+ the wait queue key
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tty-open.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tty.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tty-read.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::tty.open</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::tty.read</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tty.read</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="tty.stp.html" title="Chapter 11. TTY Tapset"><link rel="prev" href="API-tty-poll.html" title="probe::tty.poll"><link rel="next" href="API-tty-receive.html" title="probe::tty.receive"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tty.read</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tty-poll.html">Prev</a> </td><th width="60%" align="center">Chapter 11. TTY Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tty-receive.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tty-read"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tty.read —
called when a tty line will be read
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.read </pre></div><div class="refsect1"><a name="idm47245128797520"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>nr</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.read </pre></div><div class="refsect1"><a name="idm47511690642848"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>driver_name</code></em></span></dt><dd><p>
+ the driver name
+ </p></dd><dt><span class="term"><em class="parameter"><code>buffer</code></em></span></dt><dd><p>
+ the buffer that will receive the characters
+ </p></dd><dt><span class="term"><em class="parameter"><code>nr</code></em></span></dt><dd><p>
The amount of characters to be read
</p></dd><dt><span class="term"><em class="parameter"><code>file_name</code></em></span></dt><dd><p>
the file name lreated to the tty
- </p></dd><dt><span class="term"><em class="parameter"><code>buffer</code></em></span></dt><dd><p>
- the buffer that will receive the characters
- </p></dd><dt><span class="term"><em class="parameter"><code>driver_name</code></em></span></dt><dd><p>
- the driver name
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tty-poll.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tty.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tty-receive.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::tty.poll</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::tty.receive</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tty.receive</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="tty.stp.html" title="Chapter 11. TTY Tapset"><link rel="prev" href="API-tty-read.html" title="probe::tty.read"><link rel="next" href="API-tty-register.html" title="probe::tty.register"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tty.receive</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tty-read.html">Prev</a> </td><th width="60%" align="center">Chapter 11. TTY Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tty-register.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tty-receive"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tty.receive —
called when a tty receives a message
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.receive </pre></div><div class="refsect1"><a name="idm47245128781472"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>fp</code></em></span></dt><dd><p>
- The flag buffer
- </p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.receive </pre></div><div class="refsect1"><a name="idm47511690626864"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
The amount of characters received
+ </p></dd><dt><span class="term"><em class="parameter"><code>cp</code></em></span></dt><dd><p>
+ the buffer that was received
+ </p></dd><dt><span class="term"><em class="parameter"><code>fp</code></em></span></dt><dd><p>
+ The flag buffer
</p></dd><dt><span class="term"><em class="parameter"><code>index</code></em></span></dt><dd><p>
The tty Index
- </p></dd><dt><span class="term"><em class="parameter"><code>id</code></em></span></dt><dd><p>
- the tty id
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
the name of the module file
- </p></dd><dt><span class="term"><em class="parameter"><code>cp</code></em></span></dt><dd><p>
- the buffer that was received
</p></dd><dt><span class="term"><em class="parameter"><code>driver_name</code></em></span></dt><dd><p>
the driver name
+ </p></dd><dt><span class="term"><em class="parameter"><code>id</code></em></span></dt><dd><p>
+ the tty id
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tty-read.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tty.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tty-register.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::tty.read</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::tty.register</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tty.register</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="tty.stp.html" title="Chapter 11. TTY Tapset"><link rel="prev" href="API-tty-receive.html" title="probe::tty.receive"><link rel="next" href="API-tty-release.html" title="probe::tty.release"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tty.register</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tty-receive.html">Prev</a> </td><th width="60%" align="center">Chapter 11. TTY Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tty-release.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tty-register"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tty.register —
Called when a tty device is registred
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.register </pre></div><div class="refsect1"><a name="idm47245128759488"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- the driver .dev_name name
- </p></dd><dt><span class="term"><em class="parameter"><code>index</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.register </pre></div><div class="refsect1"><a name="idm47511690604992"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>index</code></em></span></dt><dd><p>
the tty index requested
</p></dd><dt><span class="term"><em class="parameter"><code>module</code></em></span></dt><dd><p>
the module name
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ the driver .dev_name name
</p></dd><dt><span class="term"><em class="parameter"><code>driver_name</code></em></span></dt><dd><p>
the driver name
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tty-receive.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tty.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tty-release.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::tty.receive</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::tty.release</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tty.release</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="tty.stp.html" title="Chapter 11. TTY Tapset"><link rel="prev" href="API-tty-register.html" title="probe::tty.register"><link rel="next" href="API-tty-resize.html" title="probe::tty.resize"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tty.release</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tty-register.html">Prev</a> </td><th width="60%" align="center">Chapter 11. TTY Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tty-resize.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tty-release"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tty.release —
Called when the tty is closed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.release </pre></div><div class="refsect1"><a name="idm47245128743584"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>file_name</code></em></span></dt><dd><p>
- the file name
- </p></dd><dt><span class="term"><em class="parameter"><code>file_mode</code></em></span></dt><dd><p>
- the file mode
- </p></dd><dt><span class="term"><em class="parameter"><code>inode_state</code></em></span></dt><dd><p>
- the inode state
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.release </pre></div><div class="refsect1"><a name="idm47511690589088"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>inode_number</code></em></span></dt><dd><p>
+ the inode number
</p></dd><dt><span class="term"><em class="parameter"><code>file_flags</code></em></span></dt><dd><p>
the file flags
- </p></dd><dt><span class="term"><em class="parameter"><code>inode_number</code></em></span></dt><dd><p>
- the inode number
+ </p></dd><dt><span class="term"><em class="parameter"><code>inode_state</code></em></span></dt><dd><p>
+ the inode state
+ </p></dd><dt><span class="term"><em class="parameter"><code>file_name</code></em></span></dt><dd><p>
+ the file name
</p></dd><dt><span class="term"><em class="parameter"><code>inode_flags</code></em></span></dt><dd><p>
the inode flags
+ </p></dd><dt><span class="term"><em class="parameter"><code>file_mode</code></em></span></dt><dd><p>
+ the file mode
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tty-register.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tty.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tty-resize.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::tty.register</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::tty.resize</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tty.resize</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="tty.stp.html" title="Chapter 11. TTY Tapset"><link rel="prev" href="API-tty-release.html" title="probe::tty.release"><link rel="next" href="API-tty-unregister.html" title="probe::tty.unregister"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tty.resize</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tty-release.html">Prev</a> </td><th width="60%" align="center">Chapter 11. TTY Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tty-unregister.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tty-resize"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tty.resize —
Called when a terminal resize happens
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.resize </pre></div><div class="refsect1"><a name="idm47245128723568"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>new_xpixel</code></em></span></dt><dd><p>
- the new xpixel value
- </p></dd><dt><span class="term"><em class="parameter"><code>old_xpixel</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.resize </pre></div><div class="refsect1"><a name="idm47511690569184"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>old_xpixel</code></em></span></dt><dd><p>
the old xpixel
</p></dd><dt><span class="term"><em class="parameter"><code>new_ypixel</code></em></span></dt><dd><p>
the new ypixel value
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- the tty name
- </p></dd><dt><span class="term"><em class="parameter"><code>old_row</code></em></span></dt><dd><p>
- the old row value
- </p></dd><dt><span class="term"><em class="parameter"><code>old_col</code></em></span></dt><dd><p>
- the old col value
</p></dd><dt><span class="term"><em class="parameter"><code>new_row</code></em></span></dt><dd><p>
the new row value
- </p></dd><dt><span class="term"><em class="parameter"><code>old_ypixel</code></em></span></dt><dd><p>
- the old ypixel
+ </p></dd><dt><span class="term"><em class="parameter"><code>old_row</code></em></span></dt><dd><p>
+ the old row value
+ </p></dd><dt><span class="term"><em class="parameter"><code>new_xpixel</code></em></span></dt><dd><p>
+ the new xpixel value
</p></dd><dt><span class="term"><em class="parameter"><code>new_col</code></em></span></dt><dd><p>
the new col value
+ </p></dd><dt><span class="term"><em class="parameter"><code>old_ypixel</code></em></span></dt><dd><p>
+ the old ypixel
+ </p></dd><dt><span class="term"><em class="parameter"><code>old_col</code></em></span></dt><dd><p>
+ the old col value
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ the tty name
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tty-release.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tty.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tty-unregister.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::tty.release</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::tty.unregister</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tty.unregister</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="tty.stp.html" title="Chapter 11. TTY Tapset"><link rel="prev" href="API-tty-resize.html" title="probe::tty.resize"><link rel="next" href="API-tty-write.html" title="probe::tty.write"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tty.unregister</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tty-resize.html">Prev</a> </td><th width="60%" align="center">Chapter 11. TTY Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-tty-write.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tty-unregister"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tty.unregister —
Called when a tty device is being unregistered
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.unregister </pre></div><div class="refsect1"><a name="idm47245128697584"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>driver_name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.unregister </pre></div><div class="refsect1"><a name="idm47511690543200"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>driver_name</code></em></span></dt><dd><p>
the driver name
- </p></dd><dt><span class="term"><em class="parameter"><code>module</code></em></span></dt><dd><p>
- the module name
</p></dd><dt><span class="term"><em class="parameter"><code>index</code></em></span></dt><dd><p>
the tty index requested
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
the driver .dev_name name
+ </p></dd><dt><span class="term"><em class="parameter"><code>module</code></em></span></dt><dd><p>
+ the module name
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tty-resize.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tty.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tty-write.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::tty.resize</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::tty.write</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::tty.write</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="tty.stp.html" title="Chapter 11. TTY Tapset"><link rel="prev" href="API-tty-unregister.html" title="probe::tty.unregister"><link rel="next" href="irq.stp.html" title="Chapter 12. Interrupt Request (IRQ) Tapset"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::tty.write</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tty-unregister.html">Prev</a> </td><th width="60%" align="center">Chapter 11. TTY Tapset</th><td width="20%" align="right"> <a accesskey="n" href="irq.stp.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-tty-write"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::tty.write —
write to the tty line
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.write </pre></div><div class="refsect1"><a name="idm47245128681664"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>buffer</code></em></span></dt><dd><p>
- the buffer that will be written
- </p></dd><dt><span class="term"><em class="parameter"><code>driver_name</code></em></span></dt><dd><p>
- the driver name
- </p></dd><dt><span class="term"><em class="parameter"><code>nr</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">tty.write </pre></div><div class="refsect1"><a name="idm47511690527344"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>nr</code></em></span></dt><dd><p>
The amount of characters
</p></dd><dt><span class="term"><em class="parameter"><code>file_name</code></em></span></dt><dd><p>
the file name lreated to the tty
+ </p></dd><dt><span class="term"><em class="parameter"><code>driver_name</code></em></span></dt><dd><p>
+ the driver name
+ </p></dd><dt><span class="term"><em class="parameter"><code>buffer</code></em></span></dt><dd><p>
+ the buffer that will be written
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tty-unregister.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tty.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="irq.stp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::tty.unregister</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 12. Interrupt Request (IRQ) Tapset</td></tr></table></div></body></html>
Convert seconds since epoch into human readable date/time string, with local time zone
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
tz_ctime(epochsecs:)
-</pre></div><div class="refsect1"><a name="idm47245130216400"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>epochsecs</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692059808"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>epochsecs</code></em></span></dt><dd><p>
number of seconds since epoch (as returned by <code class="function">gettimeofday_s</code>)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130212720"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692056128"></a><h2>Description</h2><p>
Takes an argument of seconds since the epoch as returned by
<code class="function">gettimeofday_s</code>. Returns a string of the same form as <code class="function">ctime</code>, but
offsets the epoch time for the local time zone, and appends the name of the
Return local time zone offset
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
tz_gmtoff()
-</pre></div><div class="refsect1"><a name="idm47245130203920"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692047328"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130202768"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692046176"></a><h2>Description</h2><p>
Returns the local time zone offset (seconds west of UTC), as
passed by staprun at script startup only.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tz-ctime.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ctime.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-tz-name.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::tz_ctime</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::tz_name</span></td></tr></table></div></body></html>
Return local time zone name
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
tz_name()
-</pre></div><div class="refsect1"><a name="idm47245130195392"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692038800"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130194240"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692037648"></a><h2>Description</h2><p>
Returns the local time zone name, as passed by staprun at
script startup only.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tz-gmtoff.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ctime.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="system.stp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::tz_gmtoff</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 5. Shell command functions</td></tr></table></div></body></html>
Return the unsigned value of the named CPU register
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
u_register:long(name:string)
-</pre></div><div class="refsect1"><a name="idm47245130588448"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692431856"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
Name of the register to return
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130585392"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692428800"></a><h2>Description</h2><p>
Same as register(name), except that if the register
is 32 bits wide, it is zero-extended to 64 bits.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-u64-arg.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-uaddr.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::u64_arg</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::uaddr</span></td></tr></table></div></body></html>
Return function argument as unsigned 32-bit value
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
u32_arg:long(n:long)
-</pre></div><div class="refsect1"><a name="idm47245130609408"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692452816"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
index of argument to return
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130606352"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692449760"></a><h2>Description</h2><p>
Return the unsigned 32-bit value of argument n,
same as uint_arg.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tid.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-u64-arg.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::tid</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::u64_arg</span></td></tr></table></div></body></html>
Return function argument as unsigned 64-bit value
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
u64_arg:long(n:long)
-</pre></div><div class="refsect1"><a name="idm47245130598928"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692442336"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
index of argument to return
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130595872"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692439280"></a><h2>Description</h2><p>
Return the unsigned 64-bit value of argument n,
same as ulonglong_arg.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-u32-arg.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-u-register.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::u32_arg</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::u_register</span></td></tr></table></div></body></html>
User space address of current running task
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
uaddr:long()
-</pre></div><div class="refsect1"><a name="idm47245130578016"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692421424"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130576864"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692420272"></a><h2>Description</h2><p>
Returns the address in userspace that the current
task was at when the probe occurred. When the current running task
isn't a user space thread, or the address cannot be found, zero
Hex backtrace of current user-space task stack.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ubacktrace:string()
-</pre></div><div class="refsect1"><a name="idm47245130568000"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692411408"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130566848"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692410256"></a><h2>Description</h2><p>
</p><p>
Return a string of hex addresses that are a backtrace of the
stack of the current task. Output may be truncated as per maximum
string length. Returns empty string when current probe point cannot
determine user backtrace. See <code class="function">backtrace</code> for kernel traceback.
-</p></div><div class="refsect1"><a name="idm47245130564560"></a><h2>Note</h2><p>
+</p></div><div class="refsect1"><a name="idm47511692407968"></a><h2>Note</h2><p>
To get (full) backtraces for user space applications and shared
shared libraries not mentioned in the current script run stap with
-d /path/to/exe-or-so and/or add --ldd to load all needed unwind data.
Return first n elements of user stack backtrace
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ucallers:string(n:long)
-</pre></div><div class="refsect1"><a name="idm47245130557088"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692400496"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
number of levels to descend in the stack (not counting the top
level). If n is -1, print the entire stack.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130553888"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692397296"></a><h2>Description</h2><p>
This function returns a string of the first n hex
addresses from the backtrace of the user stack. Output may be
truncated as per maximum string length (MAXSTRINGLEN).
-</p></div><div class="refsect1"><a name="idm47245130552544"></a><h2>Note</h2><p>
+</p></div><div class="refsect1"><a name="idm47511692395952"></a><h2>Note</h2><p>
To get (full) backtraces for user space applications and shared
shared libraries not mentioned in the current script run stap with
-d /path/to/exe-or-so and/or add --ldd to load all needed unwind data.
microsecond delay
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
udelay(us:long)
-</pre></div><div class="refsect1"><a name="idm47245123976416"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>us</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685822688"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>us</code></em></span></dt><dd><p>
Number of microseconds to delay.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245123973232"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685819504"></a><h2>Description</h2><p>
This function inserts a multi-microsecond busy-delay into a probe handler.
It requires guru mode.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-raise.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="guru-delay.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="string.stp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::raise</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 28. A collection of standard string functions</td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::udp.disconnect.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-udp-disconnect.html" title="probe::udp.disconnect"><link rel="next" href="API-udp-recvmsg.html" title="probe::udp.recvmsg"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::udp.disconnect.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-udp-disconnect.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-udp-recvmsg.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-udp-disconnect-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::udp.disconnect.return —
UDP has been disconnected successfully
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">udp.disconnect.return </pre></div><div class="refsect1"><a name="idm47245126969616"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ret</code></em></span></dt><dd><p>
- Error code (0: no error)
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">udp.disconnect.return </pre></div><div class="refsect1"><a name="idm47511688815424"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ IP address family
</p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
A string representing the destination IP address
+ </p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
+ UDP destination port
+ </p></dd><dt><span class="term"><em class="parameter"><code>ret</code></em></span></dt><dd><p>
+ Error code (0: no error)
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
The name of this probe
- </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
- IP address family
</p></dd><dt><span class="term"><em class="parameter"><code>sport</code></em></span></dt><dd><p>
UDP source port
</p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
A string representing the source IP address
- </p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
- UDP destination port
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126954304"></a><h2>Context</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688800112"></a><h2>Context</h2><p>
The process which requested a UDP disconnection
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-udp-disconnect.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-udp-recvmsg.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::udp.disconnect</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::udp.recvmsg</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::udp.disconnect</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-tcp-setsockopt-return.html" title="probe::tcp.setsockopt.return"><link rel="next" href="API-udp-disconnect-return.html" title="probe::udp.disconnect.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::udp.disconnect</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-tcp-setsockopt-return.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-udp-disconnect-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-udp-disconnect"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::udp.disconnect —
Fires when a process requests for a UDP disconnection
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">udp.disconnect </pre></div><div class="refsect1"><a name="idm47245126995040"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">udp.disconnect </pre></div><div class="refsect1"><a name="idm47511688840848"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ IP address family
+ </p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
+ A string representing the destination IP address
+ </p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
UDP destination port
- </p></dd><dt><span class="term"><em class="parameter"><code>sock</code></em></span></dt><dd><p>
- Network socket used by the process
- </p></dd><dt><span class="term"><em class="parameter"><code>sport</code></em></span></dt><dd><p>
- UDP source port
- </p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
- A string representing the source IP address
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
The name of this probe
- </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
- IP address family
+ </p></dd><dt><span class="term"><em class="parameter"><code>sport</code></em></span></dt><dd><p>
+ UDP source port
</p></dd><dt><span class="term"><em class="parameter"><code>flags</code></em></span></dt><dd><p>
Flags (e.g. FIN, etc)
- </p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
- A string representing the destination IP address
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126977664"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
+ A string representing the source IP address
+ </p></dd><dt><span class="term"><em class="parameter"><code>sock</code></em></span></dt><dd><p>
+ Network socket used by the process
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688823472"></a><h2>Context</h2><p>
The process which requests a UDP disconnection
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-tcp-setsockopt-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-udp-disconnect-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::tcp.setsockopt.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::udp.disconnect.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::udp.recvmsg.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-udp-recvmsg.html" title="probe::udp.recvmsg"><link rel="next" href="API-udp-sendmsg.html" title="probe::udp.sendmsg"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::udp.recvmsg.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-udp-recvmsg.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-udp-sendmsg.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-udp-recvmsg-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::udp.recvmsg.return —
Fires whenever an attempt to receive a UDP message received is completed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">udp.recvmsg.return </pre></div><div class="refsect1"><a name="idm47245126920928"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
- UDP destination port
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">udp.recvmsg.return </pre></div><div class="refsect1"><a name="idm47511688766752"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
+ A string representing the source IP address
</p></dd><dt><span class="term"><em class="parameter"><code>sport</code></em></span></dt><dd><p>
UDP source port
- </p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
- A string representing the source IP address
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- Number of bytes received by the process
- </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
- IP address family
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
The name of this probe
+ </p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
+ UDP destination port
</p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
A string representing the destination IP address
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126905568"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ Number of bytes received by the process
+ </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ IP address family
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688751392"></a><h2>Context</h2><p>
The process which received a UDP message
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-udp-recvmsg.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-udp-sendmsg.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::udp.recvmsg</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::udp.sendmsg</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::udp.recvmsg</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-udp-disconnect-return.html" title="probe::udp.disconnect.return"><link rel="next" href="API-udp-recvmsg-return.html" title="probe::udp.recvmsg.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::udp.recvmsg</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-udp-disconnect-return.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-udp-recvmsg-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-udp-recvmsg"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::udp.recvmsg —
Fires whenever a UDP message is received
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">udp.recvmsg </pre></div><div class="refsect1"><a name="idm47245126946320"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
- A string representing the destination IP address
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- The name of this probe
- </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
- IP address family
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- Number of bytes received by the process
- </p></dd><dt><span class="term"><em class="parameter"><code>sport</code></em></span></dt><dd><p>
- UDP source port
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">udp.recvmsg </pre></div><div class="refsect1"><a name="idm47511688792128"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>sock</code></em></span></dt><dd><p>
+ Network socket used by the process
</p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
A string representing the source IP address
- </p></dd><dt><span class="term"><em class="parameter"><code>sock</code></em></span></dt><dd><p>
- Network socket used by the process
+ </p></dd><dt><span class="term"><em class="parameter"><code>sport</code></em></span></dt><dd><p>
+ UDP source port
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ The name of this probe
</p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
UDP destination port
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126928928"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
+ A string representing the destination IP address
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ Number of bytes received by the process
+ </p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
+ IP address family
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688774736"></a><h2>Context</h2><p>
The process which received a UDP message
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-udp-disconnect-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-udp-recvmsg-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::udp.disconnect.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::udp.recvmsg.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::udp.sendmsg.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-udp-sendmsg.html" title="probe::udp.sendmsg"><link rel="next" href="socket.stp.html" title="Chapter 14. Socket Tapset"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::udp.sendmsg.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-udp-sendmsg.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="socket.stp.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-udp-sendmsg-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::udp.sendmsg.return —
Fires whenever an attempt to send a UDP message is completed
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">udp.sendmsg.return </pre></div><div class="refsect1"><a name="idm47245126872208"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- Number of bytes sent by the process
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">udp.sendmsg.return </pre></div><div class="refsect1"><a name="idm47511688718160"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
The name of this probe
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126866976"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ Number of bytes sent by the process
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688712928"></a><h2>Context</h2><p>
The process which sent a UDP message
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-udp-sendmsg.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="socket.stp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::udp.sendmsg</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 14. Socket Tapset</td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::udp.sendmsg</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="networking.stp.html" title="Chapter 13. Networking Tapset"><link rel="prev" href="API-udp-recvmsg-return.html" title="probe::udp.recvmsg.return"><link rel="next" href="API-udp-sendmsg-return.html" title="probe::udp.sendmsg.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::udp.sendmsg</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-udp-recvmsg-return.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Networking Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-udp-sendmsg-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-udp-sendmsg"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::udp.sendmsg —
Fires whenever a process sends a UDP message
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">udp.sendmsg </pre></div><div class="refsect1"><a name="idm47245126897584"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">udp.sendmsg </pre></div><div class="refsect1"><a name="idm47511688743520"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
+ A string representing the destination IP address
+ </p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
+ UDP destination port
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
The name of this probe
- </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
- Number of bytes sent by the process
</p></dd><dt><span class="term"><em class="parameter"><code>family</code></em></span></dt><dd><p>
IP address family
- </p></dd><dt><span class="term"><em class="parameter"><code>daddr</code></em></span></dt><dd><p>
- A string representing the destination IP address
+ </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
+ Number of bytes sent by the process
+ </p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
+ A string representing the source IP address
</p></dd><dt><span class="term"><em class="parameter"><code>sock</code></em></span></dt><dd><p>
Network socket used by the process
- </p></dd><dt><span class="term"><em class="parameter"><code>dport</code></em></span></dt><dd><p>
- UDP destination port
</p></dd><dt><span class="term"><em class="parameter"><code>sport</code></em></span></dt><dd><p>
UDP source port
- </p></dd><dt><span class="term"><em class="parameter"><code>saddr</code></em></span></dt><dd><p>
- A string representing the source IP address
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245126880192"></a><h2>Context</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511688726128"></a><h2>Context</h2><p>
The process which sent a UDP message
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-udp-recvmsg-return.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="networking.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-udp-sendmsg-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::udp.recvmsg.return</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::udp.sendmsg.return</span></td></tr></table></div></body></html>
Returns the user ID of a target process
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
uid:long()
-</pre></div><div class="refsect1"><a name="idm47245130545072"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692388480"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130543920"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692387328"></a><h2>Description</h2><p>
This function returns the user ID of the target process.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ucallers.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-uint-arg.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::ucallers</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::uint_arg</span></td></tr></table></div></body></html>
Return function argument as unsigned int
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
uint_arg:long(n:long)
-</pre></div><div class="refsect1"><a name="idm47245130536592"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692380000"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
index of argument to return
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130533536"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692376944"></a><h2>Description</h2><p>
Return the value of argument n as an unsigned int
(i.e., a 32-bit integer zero-extended to 64 bits).
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-uid.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-ulong-arg.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::uid</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::ulong_arg</span></td></tr></table></div></body></html>
Return function argument as unsigned long
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ulong_arg:long(n:long)
-</pre></div><div class="refsect1"><a name="idm47245130526160"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692369568"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
index of argument to return
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130523104"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692366512"></a><h2>Description</h2><p>
Return the value of argument n as an unsigned long.
On architectures where a long is 32 bits, the value is zero-extended
to 64 bits.
Return function argument as 64-bit value
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ulonglong_arg:long(n:long)
-</pre></div><div class="refsect1"><a name="idm47245130515696"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692359104"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
index of argument to return
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130512640"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692356048"></a><h2>Description</h2><p>
Return the value of argument n as a 64-bit value.
(Same as longlong_arg.)
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-ulong-arg.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="context_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-umodname.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::ulong_arg</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::umodname</span></td></tr></table></div></body></html>
Returns the (short) name of the user module.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
umodname:string(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245130505296"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692348704"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
User-space address
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130502240"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692345648"></a><h2>Description</h2><p>
Returns the short name of the user space module for the current task that
that the given address is part of. Reports an error when the address
isn't in a (mapped in) module, or the module cannot be found for some reason.
Human readable string for given microseconds
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
usecs_to_string:string(usecs:long)
-</pre></div><div class="refsect1"><a name="idm47245129636672"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>usecs</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511691482416"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>usecs</code></em></span></dt><dd><p>
Number of microseconds to translate.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129633456"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691479200"></a><h2>Description</h2><p>
Returns a string representing the number of
microseconds as a human readable string consisting of <span class="quote">“<span class="quote">XmY.ZZZZZZs</span>”</span>,
where X is the number of minutes, Y is the number of seconds and
Retrieves a char value stored in user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_char_warn:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124525984"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686371888"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the char from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124522752"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686368656"></a><h2>Description</h2><p>
Returns the char value from a given user space address.
Returns zero when user space and warns (but does not abort) about the
failure.
Retrieves a char value stored in user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_char:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124537200"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686383168"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the char from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124533968"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686379936"></a><h2>Description</h2><p>
Returns the char value from a given user space address.
Returns zero when user space data is not accessible.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-kernel-string-utf32.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="conversions.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-user-char-warn.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::kernel_string_utf32</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::user_char_warn</span></td></tr></table></div></body></html>
Retrieves an int value stored in user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_int_warn:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124458112"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686304064"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the int from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124454880"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686300832"></a><h2>Description</h2><p>
Returns the int value from a given user space address.
Returns zero when user space and warns (but does not abort) about the
failure.
Retrieves an int value stored in user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_int:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124514656"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686360560"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the int from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124511424"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686357328"></a><h2>Description</h2><p>
Returns the int value from a given user space address.
Returns zero when user space data is not accessible.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-user-char-warn.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="conversions.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-user-int16.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::user_char_warn</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::user_int16</span></td></tr></table></div></body></html>
Retrieves a 16-bit integer value stored in user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_int16:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124503344"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686349296"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the 16-bit integer from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124500112"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686346064"></a><h2>Description</h2><p>
Returns the 16-bit integer value from a given user space
address. Returns zero when user space data is not accessible.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-user-int.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="conversions.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-user-int32.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::user_int</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::user_int32</span></td></tr></table></div></body></html>
Retrieves a 32-bit integer value stored in user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_int32:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124492016"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686337968"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the 32-bit integer from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124488784"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686334736"></a><h2>Description</h2><p>
Returns the 32-bit integer value from a given user space
address. Returns zero when user space data is not accessible.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-user-int16.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="conversions.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-user-int64.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::user_int16</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::user_int64</span></td></tr></table></div></body></html>
Retrieves a 64-bit integer value stored in user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_int64:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124480752"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686326640"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the 64-bit integer from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124477520"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686323408"></a><h2>Description</h2><p>
Returns the 64-bit integer value from a given user space
address. Returns zero when user space data is not accessible.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-user-int32.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="conversions.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-user-int8.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::user_int32</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::user_int8</span></td></tr></table></div></body></html>
Retrieves a 8-bit integer value stored in user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_int8:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124469424"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686315376"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the 8-bit integer from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124466192"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686312144"></a><h2>Description</h2><p>
Returns the 8-bit integer value from a given user space
address. Returns zero when user space data is not accessible.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-user-int64.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="conversions.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-user-int-warn.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::user_int64</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::user_int_warn</span></td></tr></table></div></body></html>
Retrieves a long value stored in user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_long_warn:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124435344"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686281280"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the long from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124432112"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686278048"></a><h2>Description</h2><p>
Returns the long value from a given user space address.
Returns zero when user space and warns (but does not abort) about the
failure. Note that the size of the long depends on the architecture
Retrieves a long value stored in user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_long:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124446848"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686292784"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the long from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124443616"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686289552"></a><h2>Description</h2><p>
Returns the long value from a given user space address.
Returns zero when user space data is not accessible. Note that the
size of the long depends on the architecture of the current user space
Determines if probe point occurs in user-mode
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_mode:long()
-</pre></div><div class="refsect1"><a name="idm47245130494752"></a><h2>Arguments</h2><p>
+</pre></div><div class="refsect1"><a name="idm47511692338160"></a><h2>Arguments</h2><p>
None
- </p></div><div class="refsect1"><a name="idm47245130493600"></a><h2>Description</h2><p>
+ </p></div><div class="refsect1"><a name="idm47511692337008"></a><h2>Description</h2><p>
</p><p>
Return 1 if the probe point occurred in user-mode.
Retrieves a short value stored in user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_short_warn:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124412528"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686258528"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the short from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124409296"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686255296"></a><h2>Description</h2><p>
Returns the short value from a given user space address.
Returns zero when user space and warns (but does not abort) about the
failure.
Retrieves a short value stored in user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_short:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124423856"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686269792"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the short from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124420624"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686266560"></a><h2>Description</h2><p>
Returns the short value from a given user space address.
Returns zero when user space data is not accessible.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-user-long-warn.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="conversions.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-user-short-warn.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::user_long_warn</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::user_short_warn</span></td></tr></table></div></body></html>
Retrieves and quotes string from user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_string_n_quoted:string(addr:long,n:long)
-</pre></div><div class="refsect1"><a name="idm47245124275520"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686121552"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the string from
</p></dd><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
the maximum length of the string (if not null terminated)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124270272"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686116304"></a><h2>Description</h2><p>
Returns up to n characters of a C string from the given
user space memory address where any ASCII characters that are not
printable are replaced by the corresponding escape sequence in the
Retrieves string from user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_string_n_warn:string(addr:long,n:long)
-</pre></div><div class="refsect1"><a name="idm47245124261888"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686107872"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the string from
</p></dd><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
the maximum length of the string (if not null terminated)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124256640"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686102624"></a><h2>Description</h2><p>
Returns up to n characters of a C string from a given
user space memory address. Reports <span class="quote">“<span class="quote"><unknown></span>”</span> on the rare cases
when userspace data is not accessible and warns (but does not abort)
Retrieves string of given length from user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_string_n:string(addr:long,n:long)
-</pre></div><div class="refsect1"><a name="idm47245124320272"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686166416"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the string from
</p></dd><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
the maximum length of the string (if not null terminated)
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124315024"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686161168"></a><h2>Description</h2><p>
Returns the C string of a maximum given length from a
given user space address. Reports an error on the rare cases
when userspace data is not accessible at the given address.
Retrieves and quotes string from user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_string_n2_quoted:string(addr:long,inlen:long,outlen:long)
-</pre></div><div class="refsect1"><a name="idm47245124291296"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686137392"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the string from
</p></dd><dt><span class="term"><em class="parameter"><code>inlen</code></em></span></dt><dd><p>
the maximum length of the string to read (if not null terminated)
</p></dd><dt><span class="term"><em class="parameter"><code>outlen</code></em></span></dt><dd><p>
the maximum length of the output string
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124283968"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686130064"></a><h2>Description</h2><p>
Reads up to inlen characters of a C string from the given user
space memory address, and returns up to outlen characters, where any ASCII
characters that are not printable are replaced by the corresponding escape
Retrieves string of given length from user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_string_n2:string(addr:long,n:long,err_msg:string)
-</pre></div><div class="refsect1"><a name="idm47245124306848"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686152944"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the string from
</p></dd><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
the maximum length of the string (if not null terminated)
</p></dd><dt><span class="term"><em class="parameter"><code>err_msg</code></em></span></dt><dd><p>
the error message to return when data isn't available
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124299552"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686145648"></a><h2>Description</h2><p>
Returns the C string of a maximum given length from a
given user space address. Returns the given error message string on
the rare cases when userspace data is not accessible at the given
Retrieves and quotes string from user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_string_quoted:string(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124248000"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686094048"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the string from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124244768"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686090816"></a><h2>Description</h2><p>
Returns the null terminated C string from a given user space
memory address where any ASCII characters that are not printable are
replaced by the corresponding escape sequence in the returned string. Note
Retrieves UTF-16 string from user memory
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_string_utf16:string(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124236352"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686082400"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The user address to retrieve the string from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124233136"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686079184"></a><h2>Description</h2><p>
This function returns a null terminated UTF-8 string converted
from the UTF-16 string at a given user memory address. Reports an error on
string copy fault or conversion error.
Retrieves UTF-32 string from user memory
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_string_utf32:string(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124225056"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686070992"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The user address to retrieve the string from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124221840"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686067776"></a><h2>Description</h2><p>
This function returns a null terminated UTF-8 string converted
from the UTF-32 string at a given user memory address. Reports an error on
string copy fault or conversion error.
Retrieves string from user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_string_warn:string(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124213696"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686059632"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the string from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124210464"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686056400"></a><h2>Description</h2><p>
Returns the null terminated C string from a given user space
memory address. Reports "" on the rare cases when userspace data is
not accessible and warns (but does not abort) about the failure.
Retrieves string from user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_string:string(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124401216"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686247264"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the string from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124397984"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686244032"></a><h2>Description</h2><p>
Returns the null terminated C string from a given user space
memory address. Reports an error on the rare cases when userspace
data is not accessible.
Retrieves string from user space with alternative warning string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_string2_n_warn:string(addr:long,n:long,warn_msg:string)
-</pre></div><div class="refsect1"><a name="idm47245124376336"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686222480"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the string from
</p></dd><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
the maximum length of the string (if not null terminated)
</p></dd><dt><span class="term"><em class="parameter"><code>warn_msg</code></em></span></dt><dd><p>
the warning message to return when data isn't available
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124369040"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686215184"></a><h2>Description</h2><p>
Returns up to n characters of a C string from a given
user space memory address. Reports the given warning message on the
rare cases when userspace data is not accessible and warns (but does
Retrieves UTF-16 string from user memory with alternative error string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_string2_utf16:string(addr:long,err_msg:string)
-</pre></div><div class="refsect1"><a name="idm47245124360800"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686206896"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The user address to retrieve the string from
</p></dd><dt><span class="term"><em class="parameter"><code>err_msg</code></em></span></dt><dd><p>
The error message to return when data isn't available
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124355536"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686201632"></a><h2>Description</h2><p>
This function returns a null terminated UTF-8 string converted
from the UTF-16 string at a given user memory address. Reports the given
error message on string copy fault or conversion error.
Retrieves UTF-32 string from user memory with alternative error string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_string2_utf32:string(addr:long,err_msg:string)
-</pre></div><div class="refsect1"><a name="idm47245124347280"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686193424"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The user address to retrieve the string from
</p></dd><dt><span class="term"><em class="parameter"><code>err_msg</code></em></span></dt><dd><p>
The error message to return when data isn't available
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124342016"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686188160"></a><h2>Description</h2><p>
This function returns a null terminated UTF-8 string converted
from the UTF-32 string at a given user memory address. Reports the given
error message on string copy fault or conversion error.
Retrieves string from user space with alternative warning string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_string2_warn:string(addr:long,warn_msg:string)
-</pre></div><div class="refsect1"><a name="idm47245124333760"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686179904"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the string from
</p></dd><dt><span class="term"><em class="parameter"><code>warn_msg</code></em></span></dt><dd><p>
the warning message to return when data isn't available
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124328480"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686174624"></a><h2>Description</h2><p>
Returns the null terminated C string from a given user space
memory address. Reports the given warning message on the rare cases
when userspace data is not accessible and warns (but does not abort)
Retrieves string from user space with alternative error string
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_string2:string(addr:long,err_msg:string)
-</pre></div><div class="refsect1"><a name="idm47245124389840"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686235936"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the string from
</p></dd><dt><span class="term"><em class="parameter"><code>err_msg</code></em></span></dt><dd><p>
the error message to return when data isn't available
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124384560"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686230656"></a><h2>Description</h2><p>
Returns the null terminated C string from a given user space
memory address. Reports the given error message on the rare cases when
userspace data is not accessible.
Retrieves an unsigned 16-bit integer value stored in user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_uint16:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124202288"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686048272"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the unsigned 16-bit integer from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124199040"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686045024"></a><h2>Description</h2><p>
Returns the unsigned 16-bit integer value from a given user
space address. Returns zero when user space data is not accessible.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-user-string-warn.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="conversions.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-user-uint32.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::user_string_warn</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::user_uint32</span></td></tr></table></div></body></html>
Retrieves an unsigned 32-bit integer value stored in user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_uint32:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124190928"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686036960"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the unsigned 32-bit integer from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124187680"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686033712"></a><h2>Description</h2><p>
Returns the unsigned 32-bit integer value from a given user
space address. Returns zero when user space data is not accessible.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-user-uint16.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="conversions.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-user-uint64.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::user_uint16</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::user_uint64</span></td></tr></table></div></body></html>
Retrieves an unsigned 64-bit integer value stored in user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_uint64:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124179568"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686025712"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the unsigned 64-bit integer from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124176320"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686022464"></a><h2>Description</h2><p>
Returns the unsigned 64-bit integer value from a given user
space address. Returns zero when user space data is not accessible.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-user-uint32.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="conversions.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-user-uint8.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::user_uint32</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::user_uint8</span></td></tr></table></div></body></html>
Retrieves an unsigned 8-bit integer value stored in user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_uint8:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124168208"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686014400"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the unsigned 8-bit integer from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124164960"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686011152"></a><h2>Description</h2><p>
Returns the unsigned 8-bit integer value from a given user
space address. Returns zero when user space data is not accessible.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-user-uint64.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="conversions.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-user-ulong.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::user_uint64</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::user_ulong</span></td></tr></table></div></body></html>
Retrieves an unsigned long value stored in user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_ulong_warn:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124145328"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685991520"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the unsigned long from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124142096"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685988288"></a><h2>Description</h2><p>
Returns the unsigned long value from a given user
space address. Returns zero when user space and warns (but does not
abort) about the failure. Note that the size of the unsigned long
Retrieves an unsigned long value stored in user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_ulong:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124156864"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686003056"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the unsigned long from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124153632"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685999824"></a><h2>Description</h2><p>
Returns the unsigned long value from a given user
space address. Returns zero when user space data is not
accessible. Note that the size of the unsigned long depends on the
Retrieves an unsigned short value stored in user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_ushort_warn:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124122448"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685968688"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the unsigned short from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124119216"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685965456"></a><h2>Description</h2><p>
Returns the unsigned short value from a given user
space address. Returns zero when user space and warns (but does
not abort) about the failure.
Retrieves an unsigned short value stored in user space
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
user_ushort:long(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245124133808"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511685980000"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
the user space address to retrieve the unsigned short from
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124130576"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511685976768"></a><h2>Description</h2><p>
Returns the unsigned short value from a given user
space address. Returns zero when user space data is not accessible.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-user-ulong-warn.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="conversions.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-user-ushort-warn.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::user_ulong_warn</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">function::user_ushort_warn</span></td></tr></table></div></body></html>
Converts a user-space device number into the format used in the kernel
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
usrdev2kerndev:long(dev:long)
-</pre></div><div class="refsect1"><a name="idm47245125035488"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686881744"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
Device number in user-space format.
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-MKDEV.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="dev.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dentry.stp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::MKDEV</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 21. Directory-entry (dentry) Tapset</td></tr></table></div></body></html>
Return address at given depth of user stack backtrace
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
ustack:long(n:long)
-</pre></div><div class="refsect1"><a name="idm47245130485936"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692329344"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
number of levels to descend in the stack.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130482880"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692326288"></a><h2>Description</h2><p>
Performs a simple (user space) backtrace, and returns the
element at the specified position. The results of the backtrace itself
are cached, so that the backtrace computation is performed at most once
Return the symbol and module offset of an address.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
usymdata:string(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245130474672"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692318080"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The address to translate.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130471616"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692315024"></a><h2>Description</h2><p>
Returns the (function) symbol name associated with the
given address in the current task if known, the offset from the
start and the size of the symbol, plus the module name (between
Return the symbol of an address in the current task.
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
usymname:string(addr:long)
-</pre></div><div class="refsect1"><a name="idm47245130463808"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511692307216"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>addr</code></em></span></dt><dd><p>
The address to translate.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130460752"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511692304160"></a><h2>Description</h2><p>
Returns the (function) symbol name associated with the
given address if known. If not known it will return the hex string
representation of addr.
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::vm.brk</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="memory_stp.html" title="Chapter 6. Memory Tapset"><link rel="prev" href="API-vm-fault-contains.html" title="function::vm_fault_contains"><link rel="next" href="API-vm-kfree.html" title="probe::vm.kfree"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::vm.brk</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-vm-fault-contains.html">Prev</a> </td><th width="60%" align="center">Chapter 6. Memory Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-vm-kfree.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-vm-brk"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::vm.brk —
Fires when a brk is requested (i.e. the heap will be resized)
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.brk </pre></div><div class="refsect1"><a name="idm47245130007360"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.brk </pre></div><div class="refsect1"><a name="idm47511691850768"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
+ the length of the memory segment
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
name of the probe point
</p></dd><dt><span class="term"><em class="parameter"><code>address</code></em></span></dt><dd><p>
the requested address
- </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
- the length of the memory segment
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245130000496"></a><h2>Context</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691843904"></a><h2>Context</h2><p>
The process calling brk.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-vm-fault-contains.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="memory_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-vm-kfree.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">function::vm_fault_contains</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::vm.kfree</span></td></tr></table></div></body></html>
Test return value for page fault reason
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
vm_fault_contains:long(value:long,test:long)
-</pre></div><div class="refsect1"><a name="idm47245130018656"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>value</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511691862064"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>value</code></em></span></dt><dd><p>
the fault_type returned by vm.page_fault.return
</p></dd><dt><span class="term"><em class="parameter"><code>test</code></em></span></dt><dd><p>
the type of fault to test for (VM_FAULT_OOM or similar)
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::vm.kfree</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="memory_stp.html" title="Chapter 6. Memory Tapset"><link rel="prev" href="API-vm-brk.html" title="probe::vm.brk"><link rel="next" href="API-vm-kmalloc.html" title="probe::vm.kmalloc"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::vm.kfree</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-vm-brk.html">Prev</a> </td><th width="60%" align="center">Chapter 6. Memory Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-vm-kmalloc.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-vm-kfree"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::vm.kfree —
Fires when kfree is requested
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.kfree </pre></div><div class="refsect1"><a name="idm47245129993248"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ptr</code></em></span></dt><dd><p>
- pointer to the kmemory allocated which is returned by kmalloc
- </p></dd><dt><span class="term"><em class="parameter"><code>caller_function</code></em></span></dt><dd><p>
- name of the caller function.
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.kfree </pre></div><div class="refsect1"><a name="idm47511691836656"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
name of the probe point
+ </p></dd><dt><span class="term"><em class="parameter"><code>ptr</code></em></span></dt><dd><p>
+ pointer to the kmemory allocated which is returned by kmalloc
</p></dd><dt><span class="term"><em class="parameter"><code>call_site</code></em></span></dt><dd><p>
address of the function calling this kmemory function
+ </p></dd><dt><span class="term"><em class="parameter"><code>caller_function</code></em></span></dt><dd><p>
+ name of the caller function.
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-vm-brk.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="memory_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-vm-kmalloc.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::vm.brk</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::vm.kmalloc</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::vm.kmalloc_node</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="memory_stp.html" title="Chapter 6. Memory Tapset"><link rel="prev" href="API-vm-kmalloc.html" title="probe::vm.kmalloc"><link rel="next" href="API-vm-kmem-cache-alloc.html" title="probe::vm.kmem_cache_alloc"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::vm.kmalloc_node</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-vm-kmalloc.html">Prev</a> </td><th width="60%" align="center">Chapter 6. Memory Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-vm-kmem-cache-alloc.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-vm-kmalloc-node"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::vm.kmalloc_node —
Fires when kmalloc_node is requested
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.kmalloc_node </pre></div><div class="refsect1"><a name="idm47245129955648"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>gfp_flag_name</code></em></span></dt><dd><p>
- type of kmemory to allocate(in string format)
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.kmalloc_node </pre></div><div class="refsect1"><a name="idm47511691799056"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>caller_function</code></em></span></dt><dd><p>
+ name of the caller function
</p></dd><dt><span class="term"><em class="parameter"><code>call_site</code></em></span></dt><dd><p>
address of the function caling this kmemory function
- </p></dd><dt><span class="term"><em class="parameter"><code>bytes_req</code></em></span></dt><dd><p>
- requested Bytes
</p></dd><dt><span class="term"><em class="parameter"><code>gfp_flags</code></em></span></dt><dd><p>
type of kmemory to allocate
- </p></dd><dt><span class="term"><em class="parameter"><code>caller_function</code></em></span></dt><dd><p>
- name of the caller function
+ </p></dd><dt><span class="term"><em class="parameter"><code>gfp_flag_name</code></em></span></dt><dd><p>
+ type of kmemory to allocate(in string format)
</p></dd><dt><span class="term"><em class="parameter"><code>ptr</code></em></span></dt><dd><p>
pointer to the kmemory allocated
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ name of the probe point
+ </p></dd><dt><span class="term"><em class="parameter"><code>bytes_req</code></em></span></dt><dd><p>
+ requested Bytes
</p></dd><dt><span class="term"><em class="parameter"><code>bytes_alloc</code></em></span></dt><dd><p>
allocated Bytes
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-vm-kmalloc.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="memory_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-vm-kmem-cache-alloc.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::vm.kmalloc</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::vm.kmem_cache_alloc</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::vm.kmalloc</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="memory_stp.html" title="Chapter 6. Memory Tapset"><link rel="prev" href="API-vm-kfree.html" title="probe::vm.kfree"><link rel="next" href="API-vm-kmalloc-node.html" title="probe::vm.kmalloc_node"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::vm.kmalloc</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-vm-kfree.html">Prev</a> </td><th width="60%" align="center">Chapter 6. Memory Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-vm-kmalloc-node.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-vm-kmalloc"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::vm.kmalloc —
Fires when kmalloc is requested
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.kmalloc </pre></div><div class="refsect1"><a name="idm47245129978208"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>gfp_flag_name</code></em></span></dt><dd><p>
- type of kmemory to allocate (in String format)
- </p></dd><dt><span class="term"><em class="parameter"><code>call_site</code></em></span></dt><dd><p>
- address of the kmemory function
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>bytes_req</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.kmalloc </pre></div><div class="refsect1"><a name="idm47511691821616"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>bytes_req</code></em></span></dt><dd><p>
requested Bytes
</p></dd><dt><span class="term"><em class="parameter"><code>bytes_alloc</code></em></span></dt><dd><p>
allocated Bytes
</p></dd><dt><span class="term"><em class="parameter"><code>ptr</code></em></span></dt><dd><p>
pointer to the kmemory allocated
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ name of the probe point
</p></dd><dt><span class="term"><em class="parameter"><code>gfp_flags</code></em></span></dt><dd><p>
type of kmemory to allocate
+ </p></dd><dt><span class="term"><em class="parameter"><code>call_site</code></em></span></dt><dd><p>
+ address of the kmemory function
+ </p></dd><dt><span class="term"><em class="parameter"><code>gfp_flag_name</code></em></span></dt><dd><p>
+ type of kmemory to allocate (in String format)
</p></dd><dt><span class="term"><em class="parameter"><code>caller_function</code></em></span></dt><dd><p>
name of the caller function
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-vm-kfree.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="memory_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-vm-kmalloc-node.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::vm.kfree</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::vm.kmalloc_node</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::vm.kmem_cache_alloc_node</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="memory_stp.html" title="Chapter 6. Memory Tapset"><link rel="prev" href="API-vm-kmem-cache-alloc.html" title="probe::vm.kmem_cache_alloc"><link rel="next" href="API-vm-kmem-cache-free.html" title="probe::vm.kmem_cache_free"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::vm.kmem_cache_alloc_node</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-vm-kmem-cache-alloc.html">Prev</a> </td><th width="60%" align="center">Chapter 6. Memory Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-vm-kmem-cache-free.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-vm-kmem-cache-alloc-node"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::vm.kmem_cache_alloc_node —
Fires when kmem_cache_alloc_node is requested
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.kmem_cache_alloc_node </pre></div><div class="refsect1"><a name="idm47245129909072"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>gfp_flag_name</code></em></span></dt><dd><p>
- type of kmemory to allocate(in string format)
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.kmem_cache_alloc_node </pre></div><div class="refsect1"><a name="idm47511691753776"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>gfp_flags</code></em></span></dt><dd><p>
+ type of kmemory to allocate
</p></dd><dt><span class="term"><em class="parameter"><code>call_site</code></em></span></dt><dd><p>
address of the function calling this kmemory function
- </p></dd><dt><span class="term"><em class="parameter"><code>bytes_req</code></em></span></dt><dd><p>
- requested Bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>ptr</code></em></span></dt><dd><p>
- pointer to the kmemory allocated
+ </p></dd><dt><span class="term"><em class="parameter"><code>gfp_flag_name</code></em></span></dt><dd><p>
+ type of kmemory to allocate(in string format)
</p></dd><dt><span class="term"><em class="parameter"><code>caller_function</code></em></span></dt><dd><p>
name of the caller function
- </p></dd><dt><span class="term"><em class="parameter"><code>gfp_flags</code></em></span></dt><dd><p>
- type of kmemory to allocate
+ </p></dd><dt><span class="term"><em class="parameter"><code>bytes_req</code></em></span></dt><dd><p>
+ requested Bytes
</p></dd><dt><span class="term"><em class="parameter"><code>bytes_alloc</code></em></span></dt><dd><p>
allocated Bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>ptr</code></em></span></dt><dd><p>
+ pointer to the kmemory allocated
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ name of the probe point
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-vm-kmem-cache-alloc.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="memory_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-vm-kmem-cache-free.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::vm.kmem_cache_alloc</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::vm.kmem_cache_free</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::vm.kmem_cache_alloc</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="memory_stp.html" title="Chapter 6. Memory Tapset"><link rel="prev" href="API-vm-kmalloc-node.html" title="probe::vm.kmalloc_node"><link rel="next" href="API-vm-kmem-cache-alloc-node.html" title="probe::vm.kmem_cache_alloc_node"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::vm.kmem_cache_alloc</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-vm-kmalloc-node.html">Prev</a> </td><th width="60%" align="center">Chapter 6. Memory Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-vm-kmem-cache-alloc-node.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-vm-kmem-cache-alloc"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::vm.kmem_cache_alloc —
Fires when kmem_cache_alloc is requested
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.kmem_cache_alloc </pre></div><div class="refsect1"><a name="idm47245129933008"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>caller_function</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.kmem_cache_alloc </pre></div><div class="refsect1"><a name="idm47511691776416"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>caller_function</code></em></span></dt><dd><p>
name of the caller function.
+ </p></dd><dt><span class="term"><em class="parameter"><code>call_site</code></em></span></dt><dd><p>
+ address of the function calling this kmemory function.
</p></dd><dt><span class="term"><em class="parameter"><code>gfp_flags</code></em></span></dt><dd><p>
type of kmemory to allocate
- </p></dd><dt><span class="term"><em class="parameter"><code>ptr</code></em></span></dt><dd><p>
- pointer to the kmemory allocated
- </p></dd><dt><span class="term"><em class="parameter"><code>bytes_alloc</code></em></span></dt><dd><p>
- allocated Bytes
- </p></dd><dt><span class="term"><em class="parameter"><code>bytes_req</code></em></span></dt><dd><p>
- requested Bytes
</p></dd><dt><span class="term"><em class="parameter"><code>gfp_flag_name</code></em></span></dt><dd><p>
type of kmemory to allocate(in string format)
- </p></dd><dt><span class="term"><em class="parameter"><code>call_site</code></em></span></dt><dd><p>
- address of the function calling this kmemory function.
+ </p></dd><dt><span class="term"><em class="parameter"><code>ptr</code></em></span></dt><dd><p>
+ pointer to the kmemory allocated
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
name of the probe point
+ </p></dd><dt><span class="term"><em class="parameter"><code>bytes_req</code></em></span></dt><dd><p>
+ requested Bytes
+ </p></dd><dt><span class="term"><em class="parameter"><code>bytes_alloc</code></em></span></dt><dd><p>
+ allocated Bytes
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-vm-kmalloc-node.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="memory_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-vm-kmem-cache-alloc-node.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::vm.kmalloc_node</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::vm.kmem_cache_alloc_node</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::vm.kmem_cache_free</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="memory_stp.html" title="Chapter 6. Memory Tapset"><link rel="prev" href="API-vm-kmem-cache-alloc-node.html" title="probe::vm.kmem_cache_alloc_node"><link rel="next" href="API-vm-mmap.html" title="probe::vm.mmap"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::vm.kmem_cache_free</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-vm-kmem-cache-alloc-node.html">Prev</a> </td><th width="60%" align="center">Chapter 6. Memory Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-vm-mmap.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-vm-kmem-cache-free"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::vm.kmem_cache_free —
Fires when kmem_cache_free is requested
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.kmem_cache_free </pre></div><div class="refsect1"><a name="idm47245129885008"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>call_site</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.kmem_cache_free </pre></div><div class="refsect1"><a name="idm47511691730592"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>call_site</code></em></span></dt><dd><p>
Address of the function calling this kmemory function
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>ptr</code></em></span></dt><dd><p>
- Pointer to the kmemory allocated which is returned by kmem_cache
</p></dd><dt><span class="term"><em class="parameter"><code>caller_function</code></em></span></dt><dd><p>
Name of the caller function.
+ </p></dd><dt><span class="term"><em class="parameter"><code>ptr</code></em></span></dt><dd><p>
+ Pointer to the kmemory allocated which is returned by kmem_cache
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of the probe point
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-vm-kmem-cache-alloc-node.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="memory_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-vm-mmap.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::vm.kmem_cache_alloc_node</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::vm.mmap</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::vm.mmap</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="memory_stp.html" title="Chapter 6. Memory Tapset"><link rel="prev" href="API-vm-kmem-cache-free.html" title="probe::vm.kmem_cache_free"><link rel="next" href="API-vm-munmap.html" title="probe::vm.munmap"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::vm.mmap</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-vm-kmem-cache-free.html">Prev</a> </td><th width="60%" align="center">Chapter 6. Memory Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-vm-munmap.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-vm-mmap"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::vm.mmap —
Fires when an mmap is requested
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.mmap </pre></div><div class="refsect1"><a name="idm47245129869104"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- name of the probe point
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.mmap </pre></div><div class="refsect1"><a name="idm47511691714576"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
+ the length of the memory segment
</p></dd><dt><span class="term"><em class="parameter"><code>address</code></em></span></dt><dd><p>
the requested address
- </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
- the length of the memory segment
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129861856"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ name of the probe point
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691707328"></a><h2>Context</h2><p>
The process calling mmap.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-vm-kmem-cache-free.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="memory_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-vm-munmap.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::vm.kmem_cache_free</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::vm.munmap</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::vm.munmap</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="memory_stp.html" title="Chapter 6. Memory Tapset"><link rel="prev" href="API-vm-mmap.html" title="probe::vm.mmap"><link rel="next" href="API-vm-oom-kill.html" title="probe::vm.oom_kill"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::vm.munmap</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-vm-mmap.html">Prev</a> </td><th width="60%" align="center">Chapter 6. Memory Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-vm-oom-kill.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-vm-munmap"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::vm.munmap —
Fires when an munmap is requested
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.munmap </pre></div><div class="refsect1"><a name="idm47245129853952"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>address</code></em></span></dt><dd><p>
- the requested address
- </p></dd><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.munmap </pre></div><div class="refsect1"><a name="idm47511691699360"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>length</code></em></span></dt><dd><p>
the length of the memory segment
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
name of the probe point
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129846704"></a><h2>Context</h2><p>
+ </p></dd><dt><span class="term"><em class="parameter"><code>address</code></em></span></dt><dd><p>
+ the requested address
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691692112"></a><h2>Context</h2><p>
The process calling munmap.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-vm-mmap.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="memory_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-vm-oom-kill.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::vm.mmap</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::vm.oom_kill</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::vm.oom_kill</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="memory_stp.html" title="Chapter 6. Memory Tapset"><link rel="prev" href="API-vm-munmap.html" title="probe::vm.munmap"><link rel="next" href="API-vm-pagefault.html" title="probe::vm.pagefault"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::vm.oom_kill</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-vm-munmap.html">Prev</a> </td><th width="60%" align="center">Chapter 6. Memory Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-vm-pagefault.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-vm-oom-kill"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::vm.oom_kill —
Fires when a thread is selected for termination by the OOM killer
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.oom_kill </pre></div><div class="refsect1"><a name="idm47245129838704"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.oom_kill </pre></div><div class="refsect1"><a name="idm47511691684224"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>task</code></em></span></dt><dd><p>
the task being killed
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
name of the probe point
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129833488"></a><h2>Context</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691679008"></a><h2>Context</h2><p>
The process that tried to consume excessive memory, and thus
triggered the OOM.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-vm-munmap.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="memory_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-vm-pagefault.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::vm.munmap</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::vm.pagefault</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::vm.pagefault.return</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="memory_stp.html" title="Chapter 6. Memory Tapset"><link rel="prev" href="API-vm-pagefault.html" title="probe::vm.pagefault"><link rel="next" href="API-vm-write-shared.html" title="probe::vm.write_shared"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::vm.pagefault.return</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-vm-pagefault.html">Prev</a> </td><th width="60%" align="center">Chapter 6. Memory Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-vm-write-shared.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-vm-pagefault-return"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::vm.pagefault.return —
Indicates what type of fault occurred
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.pagefault.return </pre></div><div class="refsect1"><a name="idm47245129810256"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>fault_type</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.pagefault.return </pre></div><div class="refsect1"><a name="idm47511691655712"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ name of the probe point
+ </p></dd><dt><span class="term"><em class="parameter"><code>fault_type</code></em></span></dt><dd><p>
returns either
0 (VM_FAULT_OOM) for out of memory faults,
2 (VM_FAULT_MINOR) for minor faults, 3 (VM_FAULT_MAJOR) for
major faults, or 1 (VM_FAULT_SIGBUS) if the fault was neither OOM, minor fault,
nor major fault.
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- name of the probe point
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-vm-pagefault.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="memory_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-vm-write-shared.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::vm.pagefault</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::vm.write_shared</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::vm.pagefault</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="memory_stp.html" title="Chapter 6. Memory Tapset"><link rel="prev" href="API-vm-oom-kill.html" title="probe::vm.oom_kill"><link rel="next" href="API-vm-pagefault-return.html" title="probe::vm.pagefault.return"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::vm.pagefault</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-vm-oom-kill.html">Prev</a> </td><th width="60%" align="center">Chapter 6. Memory Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-vm-pagefault-return.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-vm-pagefault"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::vm.pagefault —
Records that a page fault occurred
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.pagefault </pre></div><div class="refsect1"><a name="idm47245129825584"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- name of the probe point
- </p></dd><dt><span class="term"><em class="parameter"><code>address</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.pagefault </pre></div><div class="refsect1"><a name="idm47511691670992"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>address</code></em></span></dt><dd><p>
the address of the faulting memory access; i.e. the address that caused the page fault
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ name of the probe point
</p></dd><dt><span class="term"><em class="parameter"><code>write_access</code></em></span></dt><dd><p>
indicates whether this was a write or read access; 1 indicates a write,
while 0 indicates a read
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129818208"></a><h2>Context</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691663616"></a><h2>Context</h2><p>
The process which triggered the fault
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-vm-oom-kill.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="memory_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-vm-pagefault-return.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::vm.oom_kill</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::vm.pagefault.return</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::vm.write_shared_copy</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="memory_stp.html" title="Chapter 6. Memory Tapset"><link rel="prev" href="API-vm-write-shared.html" title="probe::vm.write_shared"><link rel="next" href="task_time_stp.html" title="Chapter 7. Task Time Tapset"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::vm.write_shared_copy</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-vm-write-shared.html">Prev</a> </td><th width="60%" align="center">Chapter 6. Memory Tapset</th><td width="20%" align="right"> <a accesskey="n" href="task_time_stp.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-vm-write-shared-copy"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::vm.write_shared_copy —
Page copy for shared page write
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.write_shared_copy </pre></div><div class="refsect1"><a name="idm47245129783472"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>address</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.write_shared_copy </pre></div><div class="refsect1"><a name="idm47511691629040"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>address</code></em></span></dt><dd><p>
The address of the shared write
+ </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
+ Name of the probe point
</p></dd><dt><span class="term"><em class="parameter"><code>zero</code></em></span></dt><dd><p>
boolean indicating whether it is a zero page
(can do a clear instead of a copy)
- </p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
- Name of the probe point
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129776160"></a><h2>Context</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691621728"></a><h2>Context</h2><p>
The process attempting the write.
-</p></div><div class="refsect1"><a name="idm47245129774928"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511691620496"></a><h2>Description</h2><p>
Fires when a write to a shared page requires a page copy. This is
always preceded by a vm.write_shared.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-vm-write-shared.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="memory_stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="task_time_stp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::vm.write_shared</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 7. Task Time Tapset</td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::vm.write_shared</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="memory_stp.html" title="Chapter 6. Memory Tapset"><link rel="prev" href="API-vm-pagefault-return.html" title="probe::vm.pagefault.return"><link rel="next" href="API-vm-write-shared-copy.html" title="probe::vm.write_shared_copy"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::vm.write_shared</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-vm-pagefault-return.html">Prev</a> </td><th width="60%" align="center">Chapter 6. Memory Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-vm-write-shared-copy.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-vm-write-shared"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::vm.write_shared —
Attempts at writing to a shared page
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.write_shared </pre></div><div class="refsect1"><a name="idm47245129798080"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>address</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">vm.write_shared </pre></div><div class="refsect1"><a name="idm47511691643600"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>address</code></em></span></dt><dd><p>
the address of the shared write
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
name of the probe point
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245129792848"></a><h2>Context</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511691638368"></a><h2>Context</h2><p>
The context is the process attempting the write.
-</p></div><div class="refsect1"><a name="idm47245129791600"></a><h2>Description</h2><p>
+</p></div><div class="refsect1"><a name="idm47511691637120"></a><h2>Description</h2><p>
Fires when a process attempts to write to a shared page.
If a copy is necessary, this will be followed by a
vm.write_shared_copy.
Send a line to the warning stream
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
warn(msg:string)
-</pre></div><div class="refsect1"><a name="idm47245124880352"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>msg</code></em></span></dt><dd><p>
+</pre></div><div class="refsect1"><a name="idm47511686726352"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>msg</code></em></span></dt><dd><p>
The formatted message string
- </p></dd></dl></div></div><div class="refsect1"><a name="idm47245124877184"></a><h2>Description</h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm47511686723184"></a><h2>Description</h2><p>
This function sends a warning message immediately to
staprun. It is also sent over the bulk transport (relayfs) if it is
being used. If the last characater is not a newline, the one is added.
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::workqueue.create</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="irq.stp.html" title="Chapter 12. Interrupt Request (IRQ) Tapset"><link rel="prev" href="API-softirq-exit.html" title="probe::softirq.exit"><link rel="next" href="API-workqueue-destroy.html" title="probe::workqueue.destroy"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::workqueue.create</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-softirq-exit.html">Prev</a> </td><th width="60%" align="center">Chapter 12. Interrupt Request (IRQ) Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-workqueue-destroy.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-workqueue-create"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::workqueue.create —
Creating a new workqueue
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">workqueue.create </pre></div><div class="refsect1"><a name="idm47245128565920"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cpu</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">workqueue.create </pre></div><div class="refsect1"><a name="idm47511690411760"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>cpu</code></em></span></dt><dd><p>
cpu for which the worker thread is created
</p></dd><dt><span class="term"><em class="parameter"><code>wq_thread</code></em></span></dt><dd><p>
task_struct of the workqueue thread
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::workqueue.destroy</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="irq.stp.html" title="Chapter 12. Interrupt Request (IRQ) Tapset"><link rel="prev" href="API-workqueue-create.html" title="probe::workqueue.create"><link rel="next" href="API-workqueue-execute.html" title="probe::workqueue.execute"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::workqueue.destroy</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-workqueue-create.html">Prev</a> </td><th width="60%" align="center">Chapter 12. Interrupt Request (IRQ) Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-workqueue-execute.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-workqueue-destroy"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::workqueue.destroy —
Destroying workqueue
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">workqueue.destroy </pre></div><div class="refsect1"><a name="idm47245128554000"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>wq_thread</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">workqueue.destroy </pre></div><div class="refsect1"><a name="idm47511690399856"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>wq_thread</code></em></span></dt><dd><p>
task_struct of the workqueue thread
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-workqueue-create.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="irq.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-workqueue-execute.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::workqueue.create</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::workqueue.execute</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::workqueue.execute</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="irq.stp.html" title="Chapter 12. Interrupt Request (IRQ) Tapset"><link rel="prev" href="API-workqueue-destroy.html" title="probe::workqueue.destroy"><link rel="next" href="API-workqueue-insert.html" title="probe::workqueue.insert"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::workqueue.execute</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-workqueue-destroy.html">Prev</a> </td><th width="60%" align="center">Chapter 12. Interrupt Request (IRQ) Tapset</th><td width="20%" align="right"> <a accesskey="n" href="API-workqueue-insert.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-workqueue-execute"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::workqueue.execute —
Executing deferred work
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">workqueue.execute </pre></div><div class="refsect1"><a name="idm47245128544096"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>wq_thread</code></em></span></dt><dd><p>
- task_struct of the workqueue thread
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">workqueue.execute </pre></div><div class="refsect1"><a name="idm47511690389952"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>work_func</code></em></span></dt><dd><p>
+ pointer to handler function
</p></dd><dt><span class="term"><em class="parameter"><code>work</code></em></span></dt><dd><p>
work_struct* being executed
- </p></dd><dt><span class="term"><em class="parameter"><code>work_func</code></em></span></dt><dd><p>
- pointer to handler function
+ </p></dd><dt><span class="term"><em class="parameter"><code>wq_thread</code></em></span></dt><dd><p>
+ task_struct of the workqueue thread
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-workqueue-destroy.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="irq.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-workqueue-insert.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::workqueue.destroy</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">probe::workqueue.insert</span></td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>probe::workqueue.insert</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="up" href="irq.stp.html" title="Chapter 12. Interrupt Request (IRQ) Tapset"><link rel="prev" href="API-workqueue-execute.html" title="probe::workqueue.execute"><link rel="next" href="networking.stp.html" title="Chapter 13. Networking Tapset"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">probe::workqueue.insert</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-workqueue-execute.html">Prev</a> </td><th width="60%" align="center">Chapter 12. Interrupt Request (IRQ) Tapset</th><td width="20%" align="right"> <a accesskey="n" href="networking.stp.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-workqueue-insert"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>probe::workqueue.insert —
Queuing work on a workqueue
- </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">workqueue.insert </pre></div><div class="refsect1"><a name="idm47245128530128"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>wq_thread</code></em></span></dt><dd><p>
- task_struct of the workqueue thread
- </p></dd><dt><span class="term"><em class="parameter"><code>work</code></em></span></dt><dd><p>
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">workqueue.insert </pre></div><div class="refsect1"><a name="idm47511690376032"></a><h2>Values</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>work</code></em></span></dt><dd><p>
work_struct* being queued
+ </p></dd><dt><span class="term"><em class="parameter"><code>wq_thread</code></em></span></dt><dd><p>
+ task_struct of the workqueue thread
</p></dd><dt><span class="term"><em class="parameter"><code>work_func</code></em></span></dt><dd><p>
pointer to handler function
</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-workqueue-execute.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="irq.stp.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="networking.stp.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">probe::workqueue.execute</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 13. Networking Tapset</td></tr></table></div></body></html>
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>SystemTap Tapset Reference Manual</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="next" href="introduction.html" title="Chapter 1. Introduction"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">SystemTap Tapset Reference Manual</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="introduction.html">Next</a></td></tr></table><hr></div><div class="book"><div class="titlepage"><div><div><h1 class="title"><a name="TapsetRef"></a>SystemTap Tapset Reference Manual</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="othername">SystemTap</span></h3><span class="contrib">Hackers</span> </div></div></div><div><p class="copyright">Copyright © 2008-2013 Red Hat, Inc. and others</p></div><div><div class="legalnotice"><a name="idm47245132407760"></a><p>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>SystemTap Tapset Reference Manual</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SystemTap Tapset Reference Manual"><link rel="next" href="introduction.html" title="Chapter 1. Introduction"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">SystemTap Tapset Reference Manual</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="introduction.html">Next</a></td></tr></table><hr></div><div class="book"><div class="titlepage"><div><div><h1 class="title"><a name="TapsetRef"></a>SystemTap Tapset Reference Manual</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="othername">SystemTap</span></h3><span class="contrib">Hackers</span> </div></div></div><div><p class="copyright">Copyright © 2008-2013 Red Hat, Inc. and others</p></div><div><div class="legalnotice"><a name="idm47511697818640"></a><p>
This documentation is free software; you can redistribute
it and/or modify it under the terms of the GNU General Public
License version 2 as published by the Free Software Foundation.
Mathematics Department, Macquarie University, Sydney.
<P>
The command line arguments were: <BR>
- <STRONG>latex2html</STRONG> <TT>-noaddress -show_section_numbers -custom_titles -local_icons -split 4 tutorial.tex -dir /tmp/stapdocsyVN/htdocs/tutorial/</TT>
+ <STRONG>latex2html</STRONG> <TT>-noaddress -show_section_numbers -custom_titles -local_icons -split 4 tutorial.tex -dir /tmp/stapdocsoFd/htdocs/tutorial/</TT>
<P>
The translation was initiated by Frank Ch. Eigler on 2014-12-22
<BR><HR>
# Associate images original text with physical files.
-$key = q/{makeimage}center{Sbox{minipage{{4.5in}preform{<verbatim_mark>verbatim41#preform{minipage{Sbox{{fbox{TheSbox}{center{{makeimage};MSF=1.6;AAT/;
+$key = q/{makeimage}center{Sbox{minipage{{4.5in}preform{<verbatim_mark>verbatim42#preform{minipage{Sbox{{fbox{TheSbox}{center{{makeimage};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
- WIDTH="529" HEIGHT="327" ALIGN="BOTTOM" BORDER="0"
- SRC="|."$dir".q|img4.png"
+ WIDTH="529" HEIGHT="478" ALIGN="BOTTOM" BORDER="0"
+ SRC="|."$dir".q|img5.png"
+ ALT="\begin{center}\begin{Sbox}\begin{minipage}{4.5in}
+\begin{verbatim}...">|;
+
+$key = q/{makeimage}center{Sbox{minipage{{4.5in}preform{<verbatim_mark>verbatim48#preform{minipage{Sbox{{fbox{TheSbox}{center{{makeimage};MSF=1.6;AAT/;
+$cached_env_img{$key} = q|<IMG
+ WIDTH="529" HEIGHT="554" ALIGN="BOTTOM" BORDER="0"
+ SRC="|."$dir".q|img12.png"
ALT="\begin{center}\begin{Sbox}\begin{minipage}{4.5in}
\begin{verbatim}...">|;
+$key = q/{makeimage}center{Sbox{minipage{{6in}preform{<verbatim_mark>verbatim46#preform{minipage{Sbox{{fbox{TheSbox}{center{{makeimage};MSF=1.6;AAT/;
+$cached_env_img{$key} = q|<IMG
+ WIDTH="702" HEIGHT="385" ALIGN="BOTTOM" BORDER="0"
+ SRC="|."$dir".q|img10.png"
+ ALT="\begin{center}\begin{Sbox}\begin{minipage}{6in}
+\begin{verbatim}...">|;
+
+$key = q/10;MSF=1.6;AAT/;
+$cached_env_img{$key} = q|<IMG
+ WIDTH="20" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
+ SRC="|."$dir".q|img8.png"
+ ALT="$10$">|;
+
$key = q/{makeimage}center{Sbox{minipage{{4.5in}preform{<verbatim_mark>verbatim40#preform{minipage{Sbox{{fbox{TheSbox}{center{{makeimage};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="529" HEIGHT="612" ALIGN="BOTTOM" BORDER="0"
ALT="\begin{center}\begin{Sbox}\begin{minipage}{6in}
\begin{verbatim}...">|;
-$key = q/{makeimage}center{Sbox{minipage{{4.5in}preform{<verbatim_mark>verbatim38#preform{minipage{Sbox{{fbox{TheSbox}{center{{makeimage};MSF=1.6;AAT/;
-$cached_env_img{$key} = q|<IMG
- WIDTH="529" HEIGHT="423" ALIGN="BOTTOM" BORDER="0"
- SRC="|."$dir".q|img2.png"
- ALT="\begin{center}\begin{Sbox}\begin{minipage}{4.5in}
-\begin{verbatim}...">|;
-
-$key = q/{makeimage}center{Sbox{minipage{{4.5in}preform{<verbatim_mark>verbatim47#preform{minipage{Sbox{{fbox{TheSbox}{center{{makeimage};MSF=1.6;AAT/;
+$key = q/{makeimage}center{Sbox{minipage{{4.5in}preform{<verbatim_mark>verbatim43#preform{minipage{Sbox{{fbox{TheSbox}{center{{makeimage};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
- WIDTH="529" HEIGHT="728" ALIGN="BOTTOM" BORDER="0"
- SRC="|."$dir".q|img11.png"
+ WIDTH="529" HEIGHT="402" ALIGN="BOTTOM" BORDER="0"
+ SRC="|."$dir".q|img6.png"
ALT="\begin{center}\begin{Sbox}\begin{minipage}{4.5in}
\begin{verbatim}...">|;
-$key = q/ldots;MSF=1.6;AAT/;
-$cached_env_img{$key} = q|<IMG
- WIDTH="22" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
- SRC="|."$dir".q|img13.png"
- ALT="$\ldots$">|;
-
$key = q/0ldots100;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="60" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img7.png"
ALT="$0 \ldots 100$">|;
-$key = q/{makeimage}center{Sbox{minipage{{4.5in}preform{<verbatim_mark>verbatim43#preform{minipage{Sbox{{fbox{TheSbox}{center{{makeimage};MSF=1.6;AAT/;
+$key = q/{makeimage}center{Sbox{minipage{{4.5in}preform{<verbatim_mark>verbatim38#preform{minipage{Sbox{{fbox{TheSbox}{center{{makeimage};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
- WIDTH="529" HEIGHT="402" ALIGN="BOTTOM" BORDER="0"
- SRC="|."$dir".q|img6.png"
+ WIDTH="529" HEIGHT="423" ALIGN="BOTTOM" BORDER="0"
+ SRC="|."$dir".q|img2.png"
ALT="\begin{center}\begin{Sbox}\begin{minipage}{4.5in}
\begin{verbatim}...">|;
-$key = q/10;MSF=1.6;AAT/;
-$cached_env_img{$key} = q|<IMG
- WIDTH="20" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
- SRC="|."$dir".q|img8.png"
- ALT="$10$">|;
-
-$key = q/{makeimage}center{Sbox{minipage{{6in}preform{<verbatim_mark>verbatim46#preform{minipage{Sbox{{fbox{TheSbox}{center{{makeimage};MSF=1.6;AAT/;
+$key = q/{makeimage}center{Sbox{minipage{{4.5in}preform{<verbatim_mark>verbatim37#preform{minipage{Sbox{{fbox{TheSbox}{center{{makeimage};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
- WIDTH="702" HEIGHT="385" ALIGN="BOTTOM" BORDER="0"
- SRC="|."$dir".q|img10.png"
- ALT="\begin{center}\begin{Sbox}\begin{minipage}{6in}
+ WIDTH="529" HEIGHT="228" ALIGN="BOTTOM" BORDER="0"
+ SRC="|."$dir".q|img1.png"
+ ALT="\begin{center}\begin{Sbox}\begin{minipage}{4.5in}
\begin{verbatim}...">|;
-$key = q/{makeimage}center{Sbox{minipage{{4.5in}preform{<verbatim_mark>verbatim48#preform{minipage{Sbox{{fbox{TheSbox}{center{{makeimage};MSF=1.6;AAT/;
+$key = q/ldots;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
- WIDTH="529" HEIGHT="554" ALIGN="BOTTOM" BORDER="0"
- SRC="|."$dir".q|img12.png"
- ALT="\begin{center}\begin{Sbox}\begin{minipage}{4.5in}
-\begin{verbatim}...">|;
+ WIDTH="22" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
+ SRC="|."$dir".q|img13.png"
+ ALT="$\ldots$">|;
-$key = q/{makeimage}center{Sbox{minipage{{4.5in}preform{<verbatim_mark>verbatim37#preform{minipage{Sbox{{fbox{TheSbox}{center{{makeimage};MSF=1.6;AAT/;
+$key = q/{makeimage}center{Sbox{minipage{{4.5in}preform{<verbatim_mark>verbatim41#preform{minipage{Sbox{{fbox{TheSbox}{center{{makeimage};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
- WIDTH="529" HEIGHT="228" ALIGN="BOTTOM" BORDER="0"
- SRC="|."$dir".q|img1.png"
+ WIDTH="529" HEIGHT="327" ALIGN="BOTTOM" BORDER="0"
+ SRC="|."$dir".q|img4.png"
ALT="\begin{center}\begin{Sbox}\begin{minipage}{4.5in}
\begin{verbatim}...">|;
-$key = q/{makeimage}center{Sbox{minipage{{4.5in}preform{<verbatim_mark>verbatim42#preform{minipage{Sbox{{fbox{TheSbox}{center{{makeimage};MSF=1.6;AAT/;
+$key = q/{makeimage}center{Sbox{minipage{{4.5in}preform{<verbatim_mark>verbatim47#preform{minipage{Sbox{{fbox{TheSbox}{center{{makeimage};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
- WIDTH="529" HEIGHT="478" ALIGN="BOTTOM" BORDER="0"
- SRC="|."$dir".q|img5.png"
+ WIDTH="529" HEIGHT="728" ALIGN="BOTTOM" BORDER="0"
+ SRC="|."$dir".q|img11.png"
ALT="\begin{center}\begin{Sbox}\begin{minipage}{4.5in}
\begin{verbatim}...">|;
# Associate labels original text with physical files.
-$key = q/embedded-c/;
-$external_labels{$key} = "$URL/" . q|Tapsets.html|;
-$noresave{$key} = "$nosave";
-
-$key = q/fig:hello-world/;
-$external_labels{$key} = "$URL/" . q|Introduction.html|;
-$noresave{$key} = "$nosave";
-
-$key = q/fig:embedded-C/;
+$key = q/fig:tapset-search/;
$external_labels{$key} = "$URL/" . q|Tapsets.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|Analysis.html|;
$noresave{$key} = "$nosave";
-$key = q/fig:inode-watch/;
-$external_labels{$key} = "$URL/" . q|Analysis.html|;
-$noresave{$key} = "$nosave";
-
$key = q/fig:socket-trace/;
$external_labels{$key} = "$URL/" . q|Tracing.html|;
$noresave{$key} = "$nosave";
-$key = q/fig:strace-open/;
-$external_labels{$key} = "$URL/" . q|Introduction.html|;
+$key = q/fig:probe-alias/;
+$external_labels{$key} = "$URL/" . q|Tapsets.html|;
$noresave{$key} = "$nosave";
-$key = q/fig:tapset-search/;
+$key = q/fig:embedded-C/;
$external_labels{$key} = "$URL/" . q|Tapsets.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|Tapsets.html|;
$noresave{$key} = "$nosave";
-$key = q/fig:probe-alias/;
-$external_labels{$key} = "$URL/" . q|Tapsets.html|;
+$key = q/fig:strace-open/;
+$external_labels{$key} = "$URL/" . q|Introduction.html|;
$noresave{$key} = "$nosave";
$key = q/sec:safety/;
$external_labels{$key} = "$URL/" . q|Analysis.html|;
$noresave{$key} = "$nosave";
+$key = q/fig:hello-world/;
+$external_labels{$key} = "$URL/" . q|Introduction.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/fig:inode-watch/;
+$external_labels{$key} = "$URL/" . q|Analysis.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/embedded-c/;
+$external_labels{$key} = "$URL/" . q|Tapsets.html|;
+$noresave{$key} = "$nosave";
+
1;