<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book SYSTEM "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<book id="TapsetRef">
<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="Introduction.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="Tapset_Dev_Guide.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<!-- pls dont remove marker comments, as they are used in publican conversion-->
<chapter id="context_stp"><title>Context Functions</title><para>
The 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.
</para><refentry id="API-addr">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::addr</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::addr</refname>
<refpurpose>
Address of the current probe point.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
addr:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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 <function moreinfo="none">symname</function> and <function moreinfo="none">symdata</function>.
</para>
</refsection>
</refentry><refentry id="API-asmlinkage">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::asmlinkage</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::asmlinkage</refname>
<refpurpose>
Mark function as declared asmlinkage
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
asmlinkage()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Call this function before accessing arguments
using the *_arg functions
if the probed kernel function was declared asmlinkage in the source.
</para>
</refsection>
</refentry><refentry id="API-backtrace">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::backtrace</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::backtrace</refname>
<refpurpose>
Hex backtrace of current kernel stack
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
backtrace:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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
<function moreinfo="none">ubacktrace</function> for user-space backtrace.
</para>
</refsection>
</refentry><refentry id="API-caller">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::caller</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::caller</refname>
<refpurpose>
Return name and address of calling function
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
caller:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the address and name of the 
calling function. This is equivalent to calling:
sprintf(<quote><constant>s</constant> 0x<constant>x</constant></quote>, symname(<function moreinfo="none">caller_addr</function>), <function moreinfo="none">caller_addr</function>)
</para>
</refsection>
</refentry><refentry id="API-caller-addr">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::caller_addr</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::caller_addr</refname>
<refpurpose>
Return caller address
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
caller_addr:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the address of the calling function. 
</para>
</refsection>
</refentry><refentry id="API-callers">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::callers</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::callers</refname>
<refpurpose>
Return first n elements of kernel stack backtrace
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
callers:string(n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
number of levels to descend in the stack (not counting the top
level). If n is -1, print the entire stack.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
</refentry><refentry id="API-cmdline-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::cmdline_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::cmdline_arg</refname>
<refpurpose>
Fetch a command line argument
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
cmdline_arg:string(n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
Argument to get (zero is the program itself)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-cmdline-args">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::cmdline_args</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::cmdline_args</refname>
<refpurpose>
Fetch command line arguments from current process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
cmdline_args:string(n:long,m:long,delim:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
First argument to get (zero is normally the program itself)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">m</parameter></term>
<listitem>
<para>
Last argument to get (or minus one for all arguments after n)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">delim</parameter></term>
<listitem>
<para>
String to use to separate arguments when more than one.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-cmdline-str">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::cmdline_str</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::cmdline_str</refname>
<refpurpose>
Fetch all command line arguments from current process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
cmdline_str:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns all arguments from the current process
delimited by spaces. Returns the empty string when the arguments
cannot be retrieved.
</para>
</refsection>
</refentry><refentry id="API-cpu">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::cpu</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::cpu</refname>
<refpurpose>
Returns the current cpu number
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
cpu:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the current cpu number.
</para>
</refsection>
</refentry><refentry id="API-cpuid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::cpuid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::cpuid</refname>
<refpurpose>
Returns the current cpu number
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
cpuid:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the current cpu number.
Deprecated in SystemTap 1.4 and removed in SystemTap 1.5.
</para>
</refsection>
</refentry><refentry id="API-current-exe-file">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::current_exe_file</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::current_exe_file</refname>
<refpurpose>
get the file struct pointer for the current task's executable file
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
current_exe_file:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the file struct pointer for the
current task's executable file. Note that the file struct pointer
isn't locked on return. The return value of this function can be
passed to <function moreinfo="none">fullpath_struct_file</function> to get the path from the file
struct.
</para>
</refsection>
</refentry><refentry id="API-egid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::egid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::egid</refname>
<refpurpose>
Returns the effective gid of a target process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
egid:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the effective gid of a target process
</para>
</refsection>
</refentry><refentry id="API-env-var">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::env_var</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::env_var</refname>
<refpurpose>
Fetch environment variable from current process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
env_var:string(name:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the environment variable to fetch
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the contents of the specified environment value
for the current process. If the variable isn't set an empty string
is returned.
</para>
</refsection>
</refentry><refentry id="API-euid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::euid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::euid</refname>
<refpurpose>
Return the effective uid of a target process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
euid:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the effective user ID of the target process.
</para>
</refsection>
</refentry><refentry id="API-execname">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::execname</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::execname</refname>
<refpurpose>
Returns the execname of a target process (or group of processes)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
execname:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the execname of a target process (or group of processes).
</para>
</refsection>
</refentry><refentry id="API-fastcall">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::fastcall</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::fastcall</refname>
<refpurpose>
Mark function as declared fastcall
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
fastcall()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Call this function before accessing arguments
using the *_arg functions
if the probed kernel function was declared fastcall in the source.
</para>
</refsection>
</refentry><refentry id="API-gid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::gid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::gid</refname>
<refpurpose>
Returns the group ID of a target process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
gid:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the group ID of a target process.
</para>
</refsection>
</refentry><refentry id="API-int-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::int_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::int_arg</refname>
<refpurpose>
Return function argument as signed int
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
int_arg:long(n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to return
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Return the value of argument n as a signed int
(i.e., a 32-bit integer sign-extended to 64 bits).
</para>
</refsection>
</refentry><refentry id="API-is-myproc">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::is_myproc</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::is_myproc</refname>
<refpurpose>
Determines if the current probe point has occurred in the user's own process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
is_myproc:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns 1 if the current probe
point has occurred in the user's own process.
</para>
</refsection>
</refentry><refentry id="API-is-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::is_return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::is_return</refname>
<refpurpose>
Whether the current probe context is a return probe
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
is_return:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns 1 if the current probe context is a return probe,
returns 0 otherwise.
</para>
</refsection>
</refentry><refentry id="API-long-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::long_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::long_arg</refname>
<refpurpose>
Return function argument as signed long
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
long_arg:long(n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to return
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-longlong-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::longlong_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::longlong_arg</refname>
<refpurpose>
Return function argument as 64-bit value
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
longlong_arg:long(n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to return
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Return the value of argument n as a 64-bit value.
</para>
</refsection>
</refentry><refentry id="API-modname">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::modname</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::modname</refname>
<refpurpose>
Return the kernel module name loaded at the address
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
modname:string(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The address to map to a kernel module name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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 <quote>kernel</quote> will be returned.
</para>
</refsection>
</refentry><refentry id="API-module-name">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::module_name</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::module_name</refname>
<refpurpose>
The module name of the current script
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
module_name:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the name of the stap module.
Either generated randomly (stap_[0-9a-f]+_[0-9a-f]+)
or set by stap -m &lt;module_name&gt;.
</para>
</refsection>
</refentry><refentry id="API-module-size">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::module_size</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::module_size</refname>
<refpurpose>
The module size of the current script
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
module_size:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the sizes of various sections
of the stap module.
</para>
</refsection>
</refentry><refentry id="API-ns-egid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ns_egid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ns_egid</refname>
<refpurpose>
Returns the effective gid of a target process as seen in a user namespace
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ns_egid:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the effective gid of a target process as seen in the target user namespace if provided, or the stap process namespace
</para>
</refsection>
</refentry><refentry id="API-ns-euid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ns_euid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ns_euid</refname>
<refpurpose>
Returns the effective user ID of a target process as seen in a user namespace
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ns_euid:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the effective user ID of the target process as seen in the target user namespace if provided, or the stap process namespace.
</para>
</refsection>
</refentry><refentry id="API-ns-gid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ns_gid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ns_gid</refname>
<refpurpose>
Returns the group ID of a target process as seen in a user namespace
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ns_gid:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the group ID of a target process as seen in the target user namespace if provided, or the stap process namespace.
</para>
</refsection>
</refentry><refentry id="API-ns-pgrp">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ns_pgrp</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ns_pgrp</refname>
<refpurpose>
Returns the process group ID of the current process as seen in a pid namespace
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ns_pgrp:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the process group ID of the
current process as seen in  the target pid namespace if provided, or the stap process namespace.
</para>
</refsection>
</refentry><refentry id="API-ns-pid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ns_pid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ns_pid</refname>
<refpurpose>
Returns the ID of a target process as seen in a pid namespace
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ns_pid:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the ID of a target process as seen in
the target pid namespace.
</para>
</refsection>
</refentry><refentry id="API-ns-ppid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ns_ppid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ns_ppid</refname>
<refpurpose>
Returns the process ID of a target process's parent process as seen in a pid namespace
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ns_ppid:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function return the process ID of the target proccess's parent process as seen in  the target pid namespace if provided, or the stap process namespace.
</para>
</refsection>
</refentry><refentry id="API-ns-sid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ns_sid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ns_sid</refname>
<refpurpose>
Returns the session ID of the current process as seen in a pid namespace
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ns_sid:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
The namespace-aware session ID of a process is the process group ID
of the session leader as seen in  the target pid namespace if provided, or the stap process namespace. Session ID is stored in the signal_struct
since Kernel 2.6.0.
</para>
</refsection>
</refentry><refentry id="API-ns-tid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ns_tid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ns_tid</refname>
<refpurpose>
Returns the thread ID of a target process as seen in a pid namespace
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ns_tid:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the thread ID of a target process as seen
in  the target pid namespace if provided, or the stap process namespace.
</para>
</refsection>
</refentry><refentry id="API-ns-uid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ns_uid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ns_uid</refname>
<refpurpose>
Returns the user ID of a target process as seen in a user namespace
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ns_uid:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the user ID of the target process as seen in the target user namespace if provided, or the stap process namespace.
</para>
</refsection>
</refentry><refentry id="API-pexecname">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::pexecname</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::pexecname</refname>
<refpurpose>
Returns the execname of a target process's parent process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
pexecname:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the execname of a target
process's parent procces.
</para>
</refsection>
</refentry><refentry id="API-pgrp">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::pgrp</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::pgrp</refname>
<refpurpose>
Returns the process group ID of the current process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
pgrp:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the process group ID of the
current process.
</para>
</refsection>
</refentry><refentry id="API-pid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::pid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::pid</refname>
<refpurpose>
Returns the ID of a target process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
pid:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the ID of a target process.
</para>
</refsection>
</refentry><refentry id="API-pid2execname">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::pid2execname</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::pid2execname</refname>
<refpurpose>
The name of the given process identifier
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
pid2execname:string(pid:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">pid</parameter></term>
<listitem>
<para>
process identifier
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Return the name of the given process id.
</para>
</refsection>
</refentry><refentry id="API-pid2task">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::pid2task</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::pid2task</refname>
<refpurpose>
The task_struct of the given process identifier
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
pid2task:long(pid:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">pid</parameter></term>
<listitem>
<para>
process identifier
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Return the task struct of the given process id.
</para>
</refsection>
</refentry><refentry id="API-pn">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::pn</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::pn</refname>
<refpurpose>
Returns the active probe name
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
pn:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-pnlabel">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::pnlabel</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::pnlabel</refname>
<refpurpose>
Returns the label name parsed from the probe name
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
pnlabel:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
<refsection>
<title>Context</title>
<para>
The current probe point.
</para>
</refsection>
</refentry><refentry id="API-pointer-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::pointer_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::pointer_arg</refname>
<refpurpose>
Return function argument as pointer value
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
pointer_arg:long(n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to return
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Return the unsigned value of argument n, same as ulong_arg.
Can be used with any type of pointer.
</para>
</refsection>
</refentry><refentry id="API-pp">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::pp</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::pp</refname>
<refpurpose>
Returns the active probe point
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
pp:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-ppfunc">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ppfunc</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ppfunc</refname>
<refpurpose>
Returns the function name parsed from <function moreinfo="none">pp</function>
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ppfunc:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This returns the function name from the current <function moreinfo="none">pp</function>.
Not all <function moreinfo="none">pp</function> have functions in them, in which case "" is returned.
</para>
</refsection>
</refentry><refentry id="API-ppid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ppid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ppid</refname>
<refpurpose>
Returns the process ID of a target process's parent process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ppid:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function return the process ID of the target proccess's parent process.
</para>
</refsection>
</refentry><refentry id="API-print-backtrace">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::print_backtrace</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::print_backtrace</refname>
<refpurpose>
Print kernel stack back trace
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
print_backtrace()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function is equivalent to print_stack(<function moreinfo="none">backtrace</function>), 
except that deeper stack nesting may be supported.  See print_ubacktrace
for user-space backtrace.
The function does not return a value.
</para>
</refsection>
</refentry><refentry id="API-print-backtrace-fileline">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::print_backtrace_fileline</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::print_backtrace_fileline</refname>
<refpurpose>
Print kernel stack back trace
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
print_backtrace_fileline()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function is equivalent to <function moreinfo="none">print_backtrace</function>, but output
for each symbol is longer including file names and line numbers.
The function does not return a value.
</para>
</refsection>
</refentry><refentry id="API-print-regs">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::print_regs</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::print_regs</refname>
<refpurpose>
Print a register dump
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
print_regs()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function prints a register dump. Does nothing if no registers are available for the probe point.
</para>
</refsection>
</refentry><refentry id="API-print-stack">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::print_stack</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::print_stack</refname>
<refpurpose>
Print out kernel stack from string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
print_stack(stk:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">stk</parameter></term>
<listitem>
<para>
String with list of hexadecimal addresses
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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 
<function moreinfo="none">backtrace</function>.
</para><para>

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.
</para>
</refsection>
<refsection>
<title>NOTE</title>
<para>
it is recommended to use <function moreinfo="none">print_syms</function> instead of this function.
</para>
</refsection>
</refentry><refentry id="API-print-syms">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::print_syms</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::print_syms</refname>
<refpurpose>
Print out kernel stack from string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
print_syms(callers:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">callers</parameter></term>
<listitem>
<para>
String with list of hexadecimal (kernel) addresses
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function performs a symbolic lookup of the addresses
in the given string,
which are assumed to be the result of prior calls to <function moreinfo="none">stack</function>,
<function moreinfo="none">callers</function>, and similar functions.
</para><para>

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 <function moreinfo="none">symdata</function>.
Returns nothing.
</para>
</refsection>
</refentry><refentry id="API-print-ubacktrace">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::print_ubacktrace</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::print_ubacktrace</refname>
<refpurpose>
Print stack back trace for current user-space task.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) print_ubacktrace()</programlisting>
<programlisting format="linespecific">2) print_ubacktrace(pc:long,sp:long,fp:long)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist><varlistentry>
<term><parameter moreinfo="none">pc</parameter></term>
<listitem>
<para>
override PC
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sp</parameter></term>
<listitem>
<para>
override SP
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fp</parameter></term>
<listitem>
<para>
override FP
</para>
</listitem>
</varlistentry>
</variablelist></refsection>
<refsection>
<title>Description</title>
<para>1) </para><para>2) Equivalent to print_ustack(<function moreinfo="none">ubacktrace</function>), except that deeper stack
nesting may be supported.  Returns nothing.  See <function moreinfo="none">print_backtrace</function>
for kernel backtrace.
</para>
<para>
Equivalent to <function moreinfo="none">print_ubacktrace</function>, but it performs the backtrace
using the pc, sp, and fp provided.  Useful 
</para>
</refsection>
<refsection>
<title>Note</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-print-ubacktrace-brief">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::print_ubacktrace_brief</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::print_ubacktrace_brief</refname>
<refpurpose>
Print stack back trace for current user-space task.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
print_ubacktrace_brief()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>

Equivalent to <function moreinfo="none">print_ubacktrace</function>, but output for each symbol is
shorter (just name and offset, or just the hex address of no symbol
could be found).
</para>
</refsection>
<refsection>
<title>Note</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-print-ubacktrace-fileline">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::print_ubacktrace_fileline</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::print_ubacktrace_fileline</refname>
<refpurpose>
Print stack back trace for current user-space task.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) print_ubacktrace_fileline()</programlisting>
<programlisting format="linespecific">2) print_ubacktrace_fileline(pc:long,sp:long,fp:long)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist><varlistentry>
<term><parameter moreinfo="none">pc</parameter></term>
<listitem>
<para>
override PC
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sp</parameter></term>
<listitem>
<para>
override SP
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fp</parameter></term>
<listitem>
<para>
override FP
</para>
</listitem>
</varlistentry>
</variablelist></refsection>
<refsection>
<title>Description</title>
<para>1) </para><para>2) Equivalent to<function moreinfo="none">print_ubacktrace</function>, but output for each symbol is
longer including file names and line numbers.
</para>
<para>
Equivalent to <function moreinfo="none">print_ubacktrace_fileline</function>, but it performs the backtrace
using the pc, sp, and fp passed in.
</para>
</refsection>
<refsection>
<title>Note</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-print-ustack">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::print_ustack</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::print_ustack</refname>
<refpurpose>
Print out stack for the current task from string.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
print_ustack(stk:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">stk</parameter></term>
<listitem>
<para>
String with list of hexadecimal addresses for the current task.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Perform a symbolic lookup of the addresses in the given string,
which is assumed to be the result of a prior call to 
<function moreinfo="none">ubacktrace</function> for the current task.
</para><para>

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.
</para>
</refsection>
<refsection>
<title>NOTE</title>
<para>
it is recommended to use <function moreinfo="none">print_usyms</function> instead of this function.
</para>
</refsection>
</refentry><refentry id="API-print-usyms">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::print_usyms</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::print_usyms</refname>
<refpurpose>
Print out user stack from string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
print_usyms(callers:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">callers</parameter></term>
<listitem>
<para>
String with list of hexadecimal (user) addresses
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function performs a symbolic lookup of the addresses
in the given string,
which are assumed to be the result of prior calls to <function moreinfo="none">ustack</function>,
<function moreinfo="none">ucallers</function>, and similar functions.
</para><para>

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 <function moreinfo="none">usymdata</function>.
Returns nothing.
</para>
</refsection>
</refentry><refentry id="API-probe-type">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::probe_type</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::probe_type</refname>
<refpurpose>
The low level probe handler type of the current probe.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
probe_type:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
</refentry><refentry id="API-probefunc">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::probefunc</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::probefunc</refname>
<refpurpose>
Return the probe point's function name, if known
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
probefunc:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the name of the function being probed
based on the current address, as computed by symname(<function moreinfo="none">addr</function>) or
usymname(<function moreinfo="none">uaddr</function>) depending on probe context (whether the probe is
a user probe or a kernel probe).
</para>
</refsection>
<refsection>
<title>Please note</title>
<para>
this function's behaviour differs between SystemTap 2.0
and earlier versions. Prior to 2.0, <function moreinfo="none">probefunc</function> obtained the function
name from the probe point string as returned by <function moreinfo="none">pp</function>, and used the
current address as a fallback.
</para><para>

Consider using <function moreinfo="none">ppfunc</function> instead.
</para>
</refsection>
</refentry><refentry id="API-probemod">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::probemod</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::probemod</refname>
<refpurpose>
Return the probe point's kernel module name
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
probemod:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the name of the kernel module
containing the probe point, if known.
</para>
</refsection>
</refentry><refentry id="API-pstrace">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::pstrace</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::pstrace</refname>
<refpurpose>
Chain of processes and pids back to init(1)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
pstrace:string(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
Pointer to task struct of process
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns a string listing execname and pid for each
process starting from <parameter moreinfo="none">task</parameter> back to the process ancestor
that init(1) spawned.
</para>
</refsection>
</refentry><refentry id="API-register">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::register</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::register</refname>
<refpurpose>
Return the signed value of the named CPU register
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
register:long(name:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the register to return
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para><para>

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.
</para><para>

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.
</para><para>

For powerpc, the following names are recognized:
r0, r1, ... r31, nip, msr, orig_gpr3, ctr, link, xer, ccr, softe, trap,
dar, dsisr, result.
</para><para>

For s390x, the following names are recognized:
r0, r1, ... r15, args, psw.mask, psw.addr, orig_gpr2, ilc, trap.
</para><para>

For AArch64, the following names are recognized:
x0, x1, ... x30, fp, lr, sp, pc, and orig_x0.
</para>
</refsection>
</refentry><refentry id="API-registers-valid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::registers_valid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::registers_valid</refname>
<refpurpose>
Determines validity of <function moreinfo="none">register</function> and <function moreinfo="none">u_register</function> in current context
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
registers_valid:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns 1 if <function moreinfo="none">register</function> and <function moreinfo="none">u_register</function>
can be used in the current context, or 0 otherwise.
For example, <function moreinfo="none">registers_valid</function> returns 0
when called from a begin or end probe.
</para>
</refsection>
</refentry><refentry id="API-regparm">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::regparm</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::regparm</refname>
<refpurpose>
Specify regparm value used to compile function
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
regparm(n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
original regparm value
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para><para>

(The i386 kernel is built with \-mregparm=3, so systemtap considers
regparm(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.
</para>
</refsection>
</refentry><refentry id="API-remote-id">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::remote_id</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::remote_id</refname>
<refpurpose>
The index of this instance in a remote execution.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
remote_id:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns a number 0..N, which is the unique
index of this particular script execution from a swarm of
<quote>stap --remote A --remote B ...</quote> runs, and is the same number
<quote>stap --remote-prefix</quote> would print.  The function returns -1 if the
script was not launched with <quote>stap --remote</quote>, or if the remote
staprun/stapsh are older than version 1.7.
</para>
</refsection>
</refentry><refentry id="API-remote-uri">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::remote_uri</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::remote_uri</refname>
<refpurpose>
The name of this instance in a remote execution.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
remote_uri:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the remote host used to invoke
this particular script execution from a swarm of <quote>stap --remote</quote> runs.
It may not be unique among the swarm.
The function returns an empty string if the script was not launched with
<quote>stap --remote</quote>.
</para>
</refsection>
</refentry><refentry id="API-s32-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::s32_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::s32_arg</refname>
<refpurpose>
Return function argument as signed 32-bit value
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
s32_arg:long(n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to return
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Return the signed 32-bit value of argument n,
same as int_arg.
</para>
</refsection>
</refentry><refentry id="API-s64-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::s64_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::s64_arg</refname>
<refpurpose>
Return function argument as signed 64-bit value
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
s64_arg:long(n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to return
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Return the signed 64-bit value of argument n,
same as longlong_arg.
</para>
</refsection>
</refentry><refentry id="API-set-int-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_int_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_int_arg</refname>
<refpurpose>
Set function argument as signed int
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_int_arg(n:long,v:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to return
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">v</parameter></term>
<listitem>
<para>
value to set
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Set the value of argument n as a signed int
(i.e., a 32-bit integer sign-extended to 64 bits).
</para>
</refsection>
</refentry><refentry id="API-set-long-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_long_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_long_arg</refname>
<refpurpose>
Set argument as signed long
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_long_arg(n:long,v:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to set
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">v</parameter></term>
<listitem>
<para>
value to set
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Set 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.
</para>
</refsection>
</refentry><refentry id="API-set-longlong-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_longlong_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_longlong_arg</refname>
<refpurpose>
Set function argument as 64-bit value
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_longlong_arg:long(n:long,v:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to return
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">v</parameter></term>
<listitem>
<para>
value to set
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Set the value of argument n as a 64-bit value.
</para>
</refsection>
</refentry><refentry id="API-set-pointer-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_pointer_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_pointer_arg</refname>
<refpurpose>
Set function argument as pointer value
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_pointer_arg(n:long,v:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to return
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">v</parameter></term>
<listitem>
<para>
value to set
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Set the unsigned value of argument n, same as ulong_arg.
Can be used with any type of pointer.
</para>
</refsection>
</refentry><refentry id="API-set-s32-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_s32_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_s32_arg</refname>
<refpurpose>
Set function argument as signed 32-bit value
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_s32_arg(n:long,v:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to return
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">v</parameter></term>
<listitem>
<para>
value to set
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Set the signed 32-bit value of argument n,
same as int_arg.
</para>
</refsection>
</refentry><refentry id="API-set-s64-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_s64_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_s64_arg</refname>
<refpurpose>
Set function argument as signed 64-bit value
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_s64_arg(n:long,v:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to return
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">v</parameter></term>
<listitem>
<para>
value to set
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Set the signed 64-bit value of argument n,
same as longlong_arg.
</para>
</refsection>
</refentry><refentry id="API-set-u32-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_u32_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_u32_arg</refname>
<refpurpose>
Set function argument as unsigned 32-bit value
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_u32_arg(n:long,v:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to return
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">v</parameter></term>
<listitem>
<para>
value to set
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Set the unsigned 32-bit value of argument n,
same as uint_arg.
</para>
</refsection>
</refentry><refentry id="API-set-u64-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_u64_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_u64_arg</refname>
<refpurpose>
Set function argument as unsigned 64-bit value
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_u64_arg(n:long,v:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to return
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">v</parameter></term>
<listitem>
<para>
value to set
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Set the unsigned 64-bit value of argument n,
same as ulonglong_arg.
</para>
</refsection>
</refentry><refentry id="API-set-uint-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_uint_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_uint_arg</refname>
<refpurpose>
Set argument as unsigned int
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_uint_arg:long(n:long,v:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to set
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">v</parameter></term>
<listitem>
<para>
value to set
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Set the value of argument n as an unsigned int
(i.e., a 32-bit integer zero-extended to 64 bits).
</para>
</refsection>
</refentry><refentry id="API-set-ulong-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_ulong_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_ulong_arg</refname>
<refpurpose>
Set function argument as unsigned long
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_ulong_arg(n:long,v:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to return
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">v</parameter></term>
<listitem>
<para>
value to set
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Set 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.
</para>
</refsection>
</refentry><refentry id="API-set-ulonglong-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_ulonglong_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_ulonglong_arg</refname>
<refpurpose>
Set function argument as 64-bit value
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_ulonglong_arg(n:long,v:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to return
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">v</parameter></term>
<listitem>
<para>
value to set
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Set the value of argument n as a 64-bit value.
(Same as longlong_arg.)
</para>
</refsection>
</refentry><refentry id="API-sid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::sid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::sid</refname>
<refpurpose>
Returns the session ID of the current process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
sid:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-sprint-backtrace">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::sprint_backtrace</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::sprint_backtrace</refname>
<refpurpose>
Return stack back trace as string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
sprint_backtrace:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>

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
<function moreinfo="none">print_backtrace</function>. Equivalent to sprint_stack(<function moreinfo="none">backtrace</function>),
but more efficient (no need to translate between hex strings and
final backtrace string).
</para>
</refsection>
</refentry><refentry id="API-sprint-stack">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::sprint_stack</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::sprint_stack</refname>
<refpurpose>
Return stack for kernel addresses from string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
sprint_stack:string(stk:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">stk</parameter></term>
<listitem>
<para>
String with list of hexadecimal (kernel) addresses
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Perform a symbolic lookup of the addresses in the given string,
which is assumed to be the result of a prior call to <function moreinfo="none">backtrace</function>.
</para><para>

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.
</para>
</refsection>
<refsection>
<title>NOTE</title>
<para>
it is recommended to use <function moreinfo="none">sprint_syms</function> instead of this function.
</para>
</refsection>
</refentry><refentry id="API-sprint-syms">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::sprint_syms</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::sprint_syms</refname>
<refpurpose>
Return stack for kernel addresses from string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
sprint_syms(callers:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">callers</parameter></term>
<listitem>
<para>
String with list of hexadecimal (kernel) addresses
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Perform a symbolic lookup of the addresses in the given string,
which are assumed to be the result of a prior calls to <function moreinfo="none">stack</function>,
<function moreinfo="none">callers</function>, and similar functions.
</para><para>

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
<function moreinfo="none">symdata</function>. 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
<function moreinfo="none">print_syms</function>.
</para>
</refsection>
</refentry><refentry id="API-sprint-ubacktrace">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::sprint_ubacktrace</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::sprint_ubacktrace</refname>
<refpurpose>
Return stack back trace for current user-space task as string.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
sprint_ubacktrace:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>

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
<function moreinfo="none">print_ubacktrace</function>. Equivalent to sprint_ustack(<function moreinfo="none">ubacktrace</function>),
but more efficient (no need to translate between hex strings and
final backtrace string).
</para>
</refsection>
<refsection>
<title>Note</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-sprint-ustack">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::sprint_ustack</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::sprint_ustack</refname>
<refpurpose>
Return stack for the current task from string.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
sprint_ustack:string(stk:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">stk</parameter></term>
<listitem>
<para>
String with list of hexadecimal addresses for the current task.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Perform a symbolic lookup of the addresses in the given string,
which is assumed to be the result of a prior call to
<function moreinfo="none">ubacktrace</function> for the current task.
</para><para>

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.
</para>
</refsection>
<refsection>
<title>NOTE</title>
<para>
it is recommended to use <function moreinfo="none">sprint_usyms</function> instead of this function.
</para>
</refsection>
</refentry><refentry id="API-sprint-usyms">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::sprint_usyms</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::sprint_usyms</refname>
<refpurpose>
Return stack for user addresses from string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
sprint_usyms(callers:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">callers</parameter></term>
<listitem>
<para>
String with list of hexadecimal (user) addresses
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Perform a symbolic lookup of the addresses in the given string,
which are assumed to be the result of a prior calls to <function moreinfo="none">ustack</function>,
<function moreinfo="none">ucallers</function>, and similar functions.
</para><para>

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
<function moreinfo="none">usymdata</function>. 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
<function moreinfo="none">print_usyms</function>.
</para>
</refsection>
</refentry><refentry id="API-stack">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::stack</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::stack</refname>
<refpurpose>
Return address at given depth of kernel stack backtrace
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
stack:long(n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
number of levels to descend in the stack.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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 <function moreinfo="none">stack</function> is called, or in what order.
</para>
</refsection>
</refentry><refentry id="API-stack-size">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::stack_size</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::stack_size</refname>
<refpurpose>
Return the size of the kernel stack
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
stack_size:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the size of the kernel stack.
</para>
</refsection>
</refentry><refentry id="API-stack-unused">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::stack_unused</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::stack_unused</refname>
<refpurpose>
Returns the amount of kernel stack currently available
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
stack_unused:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function determines how many bytes are
currently available in the kernel stack.
</para>
</refsection>
</refentry><refentry id="API-stack-used">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::stack_used</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::stack_used</refname>
<refpurpose>
Returns the amount of kernel stack used
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
stack_used:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function determines how many bytes are
currently used in the kernel stack.
</para>
</refsection>
</refentry><refentry id="API-stp-pid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::stp_pid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::stp_pid</refname>
<refpurpose>
The process id of the stapio process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
stp_pid:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-symdata">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::symdata</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::symdata</refname>
<refpurpose>
Return the kernel symbol and module offset for the address
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
symdata:string(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The address to translate
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-symfile">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::symfile</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::symfile</refname>
<refpurpose>
Return the file name of a given address.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
symfile:string(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The address to translate.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the file name of the  given address, if known. If the
file name cannot be found, the hex string representation of the address
will be returned.
</para>
</refsection>
</refentry><refentry id="API-symfileline">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::symfileline</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::symfileline</refname>
<refpurpose>
Return the file name and line number of an address.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
symfileline:string(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The address to translate.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the file name and the (approximate) line number of the
given address, if known. If the file name or the line number cannot be
found, the hex string representation of the address will be returned.
</para>
</refsection>
</refentry><refentry id="API-symline">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::symline</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::symline</refname>
<refpurpose>
Return the line number of an address.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
symline:string(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The address to translate.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the (approximate) line number of the given address, if
known. If the line number cannot be found, the hex string representation of
the address will be returned.
</para>
</refsection>
</refentry><refentry id="API-symname">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::symname</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::symname</refname>
<refpurpose>
Return the kernel symbol associated with the given address
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
symname:string(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The address to translate
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the (function) symbol name associated with the
given address if known. If not known it will return the hex string
representation of addr.
</para>
</refsection>
</refentry><refentry id="API-target">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::target</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::target</refname>
<refpurpose>
Return the process ID of the target process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
target:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para><para>

-x &lt;pid&gt;
<function moreinfo="none">target</function> returns the pid specified by -x
</para><para>

-c <command>
<function moreinfo="none">target</function> returns the pid for the executed command specified by -c
</para>
</refsection>
</refentry><refentry id="API-task-ancestry">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_ancestry</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_ancestry</refname>
<refpurpose>
The ancestry of the given task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_ancestry:string(task:long,with_time:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">with_time</parameter></term>
<listitem>
<para>
set to 1 to also print the start time of processes (given as a
delta from boot time)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Return the ancestry of the given task in the form of
<quote>grandparent_process=&gt;parent_process=&gt;process</quote>.
</para>
</refsection>
</refentry><refentry id="API-task-backtrace">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_backtrace</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_backtrace</refname>
<refpurpose>
Hex backtrace of an arbitrary task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_backtrace:string(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
pointer to task_struct
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-task-cpu">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_cpu</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_cpu</refname>
<refpurpose>
The scheduled cpu of the task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_cpu:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the scheduled cpu for the given task.
</para>
</refsection>
</refentry><refentry id="API-task-current">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_current</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_current</refname>
<refpurpose>
The current task_struct of the current task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_current:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-task-cwd-path">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_cwd_path</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_cwd_path</refname>
<refpurpose>
get the path struct pointer for a task's current working directory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_cwd_path:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-task-egid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_egid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_egid</refname>
<refpurpose>
The effective group identifier of the task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_egid:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the effective group id of the given task.
</para>
</refsection>
</refentry><refentry id="API-task-euid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_euid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_euid</refname>
<refpurpose>
The effective user identifier of the task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_euid:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the effective user id of the given task.
</para>
</refsection>
</refentry><refentry id="API-task-exe-file">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_exe_file</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_exe_file</refname>
<refpurpose>
get the file struct pointer for a task's executable file
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_exe_file:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-task-execname">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_execname</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_execname</refname>
<refpurpose>
The name of the task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_execname:string(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Return the name of the given task.
</para>
</refsection>
</refentry><refentry id="API-task-fd-lookup">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_fd_lookup</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_fd_lookup</refname>
<refpurpose>
get the file struct for a task's fd
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_fd_lookup:long(task:long,fd:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fd</parameter></term>
<listitem>
<para>
file descriptor number.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the file struct pointer for a task's file
descriptor.
</para>
</refsection>
</refentry><refentry id="API-task-gid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_gid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_gid</refname>
<refpurpose>
The group identifier of the task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_gid:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the group id of the given task.
</para>
</refsection>
</refentry><refentry id="API-task-max-file-handles">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_max_file_handles</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_max_file_handles</refname>
<refpurpose>
The max number of open files for the task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_max_file_handles:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the maximum number of file handlers for the given task.
</para>
</refsection>
</refentry><refentry id="API-task-nice">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_nice</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_nice</refname>
<refpurpose>
The nice value of the task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_nice:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the nice value of the given task.
</para>
</refsection>
</refentry><refentry id="API-task-ns-egid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_ns_egid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_ns_egid</refname>
<refpurpose>
The effective group identifier of the task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_ns_egid:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the effective group id of the given task.
</para>
</refsection>
</refentry><refentry id="API-task-ns-euid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_ns_euid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_ns_euid</refname>
<refpurpose>
The effective user identifier of the task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_ns_euid:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the effective user id of the given task.
</para>
</refsection>
</refentry><refentry id="API-task-ns-gid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_ns_gid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_ns_gid</refname>
<refpurpose>
The group identifier of the task as seen in a namespace
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_ns_gid:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the group id of the given task as seen in
in the given user namespace.
</para>
</refsection>
</refentry><refentry id="API-task-ns-pid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_ns_pid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_ns_pid</refname>
<refpurpose>
The process identifier of the task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_ns_pid:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This fucntion returns the process id of the given task based on
the specified pid namespace..
</para>
</refsection>
</refentry><refentry id="API-task-ns-tid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_ns_tid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_ns_tid</refname>
<refpurpose>
The thread identifier of the task as seen in a namespace
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_ns_tid:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the thread id of the given task as seen 
in the pid namespace.
</para>
</refsection>
</refentry><refentry id="API-task-ns-uid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_ns_uid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_ns_uid</refname>
<refpurpose>
The user identifier of the task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_ns_uid:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the user id of the given task.
</para>
</refsection>
</refentry><refentry id="API-task-open-file-handles">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_open_file_handles</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_open_file_handles</refname>
<refpurpose>
The number of open files of the task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_open_file_handles:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the number of open file handlers for the given task.
</para>
</refsection>
</refentry><refentry id="API-task-parent">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_parent</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_parent</refname>
<refpurpose>
The task_struct of the parent task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_parent:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-task-pid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_pid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_pid</refname>
<refpurpose>
The process identifier of the task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_pid:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This fucntion returns the process id of the given task.
</para>
</refsection>
</refentry><refentry id="API-task-prio">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_prio</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_prio</refname>
<refpurpose>
The priority value of the task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_prio:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the priority value of the given task.
</para>
</refsection>
</refentry><refentry id="API-task-state">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_state</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_state</refname>
<refpurpose>
The state of the task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_state:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
</refentry><refentry id="API-task-tid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_tid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_tid</refname>
<refpurpose>
The thread identifier of the task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_tid:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the thread id of the given task.
</para>
</refsection>
</refentry><refentry id="API-task-uid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_uid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_uid</refname>
<refpurpose>
The user identifier of the task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_uid:long(task:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the user id of the given task.
</para>
</refsection>
</refentry><refentry id="API-tid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::tid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::tid</refname>
<refpurpose>
Returns the thread ID of a target process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
tid:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the thread ID of the target process.
</para>
</refsection>
</refentry><refentry id="API-u32-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::u32_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::u32_arg</refname>
<refpurpose>
Return function argument as unsigned 32-bit value
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
u32_arg:long(n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to return
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Return the unsigned 32-bit value of argument n,
same as uint_arg.
</para>
</refsection>
</refentry><refentry id="API-u64-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::u64_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::u64_arg</refname>
<refpurpose>
Return function argument as unsigned 64-bit value
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
u64_arg:long(n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to return
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Return the unsigned 64-bit value of argument n,
same as ulonglong_arg.
</para>
</refsection>
</refentry><refentry id="API-u-register">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::u_register</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::u_register</refname>
<refpurpose>
Return the unsigned value of the named CPU register
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
u_register:long(name:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the register to return
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Same as register(name), except that if the register
is 32 bits wide, it is zero-extended to 64 bits.
</para>
</refsection>
</refentry><refentry id="API-uaddr">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::uaddr</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::uaddr</refname>
<refpurpose>
User space address of current running task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
uaddr:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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 <function moreinfo="none">usymname</function> or <function moreinfo="none">usymdata</function>. Often the task will be in the VDSO
where it entered the kernel.
</para>
</refsection>
</refentry><refentry id="API-ubacktrace">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ubacktrace</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ubacktrace</refname>
<refpurpose>
Hex backtrace of current user-space task stack.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ubacktrace:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>

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 <function moreinfo="none">backtrace</function> for kernel traceback.
</para>
</refsection>
<refsection>
<title>Note</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-ucallers">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ucallers</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ucallers</refname>
<refpurpose>
Return first n elements of user stack backtrace
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ucallers:string(n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
number of levels to descend in the stack (not counting the top
level). If n is -1, print the entire stack.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
<refsection>
<title>Note</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-uid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::uid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::uid</refname>
<refpurpose>
Returns the user ID of a target process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
uid:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the user ID of the target process.
</para>
</refsection>
</refentry><refentry id="API-uint-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::uint_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::uint_arg</refname>
<refpurpose>
Return function argument as unsigned int
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
uint_arg:long(n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to return
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Return the value of argument n as an unsigned int
(i.e., a 32-bit integer zero-extended to 64 bits).
</para>
</refsection>
</refentry><refentry id="API-ulong-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ulong_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ulong_arg</refname>
<refpurpose>
Return function argument as unsigned long
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ulong_arg:long(n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to return
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-ulonglong-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ulonglong_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ulonglong_arg</refname>
<refpurpose>
Return function argument as 64-bit value
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ulonglong_arg:long(n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index of argument to return
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Return the value of argument n as a 64-bit value.
(Same as longlong_arg.)
</para>
</refsection>
</refentry><refentry id="API-umodname">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::umodname</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::umodname</refname>
<refpurpose>
Returns the (short) name of the user module.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
umodname:string(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
User-space address
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-user-mode">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_mode</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_mode</refname>
<refpurpose>
Determines if probe point occurs in user-mode
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_mode:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>

Return 1 if the probe point occurred in user-mode.
</para>
</refsection>
</refentry><refentry id="API-ustack">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ustack</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ustack</refname>
<refpurpose>
Return address at given depth of user stack backtrace
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ustack:long(n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
number of levels to descend in the stack.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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 <function moreinfo="none">ustack</function> is called, or in what order.
</para>
</refsection>
</refentry><refentry id="API-usymdata">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::usymdata</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::usymdata</refname>
<refpurpose>
Return the symbol and module offset of an address.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
usymdata:string(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The address to translate.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-usymfile">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::usymfile</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::usymfile</refname>
<refpurpose>
Return the file name of a given address.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
usymfile:string(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The address to translate.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the file name of the  given address, if known. If the
file name cannot be found, the hex string representation of the address
will be returned.
</para>
</refsection>
</refentry><refentry id="API-usymfileline">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::usymfileline</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::usymfileline</refname>
<refpurpose>
Return the file name and line number of an address.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
usymfileline:string(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The address to translate.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the file name and the (approximate) line number of the
given address, if known. If the file name or the line number cannot be
found, the hex string representation of the address will be returned.
</para>
</refsection>
</refentry><refentry id="API-usymline">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::usymline</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::usymline</refname>
<refpurpose>
Return the line number of an address.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
usymline:string(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The address to translate.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the (approximate) line number of the given address, if
known. If the line number cannot be found, the hex string representation of
the address will be returned.
</para>
</refsection>
</refentry><refentry id="API-usymname">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::usymname</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::usymname</refname>
<refpurpose>
Return the symbol of an address in the current task.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
usymname:string(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The address to translate.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the (function) symbol name associated with the
given address if known. If not known it will return the hex string
representation of addr.
</para>
</refsection>
</refentry></chapter>

<chapter id="timestamp_stp"><title>Timestamp Functions</title><para>
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.
</para><refentry id="API-HZ">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::HZ</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::HZ</refname>
<refpurpose>
Kernel HZ
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
HZ:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the value of the kernel HZ macro,
which corresponds to the rate of increase of the jiffies value.
</para>
</refsection>
</refentry><refentry id="API-cpu-clock-ms">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::cpu_clock_ms</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::cpu_clock_ms</refname>
<refpurpose>
Number of milliseconds on the given cpu's clock
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
cpu_clock_ms:long(cpu:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">cpu</parameter></term>
<listitem>
<para>
Which processor's clock to read
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
</refentry><refentry id="API-cpu-clock-ns">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::cpu_clock_ns</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::cpu_clock_ns</refname>
<refpurpose>
Number of nanoseconds on the given cpu's clock
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
cpu_clock_ns:long(cpu:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">cpu</parameter></term>
<listitem>
<para>
Which processor's clock to read
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
</refentry><refentry id="API-cpu-clock-s">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::cpu_clock_s</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::cpu_clock_s</refname>
<refpurpose>
Number of seconds on the given cpu's clock
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
cpu_clock_s:long(cpu:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">cpu</parameter></term>
<listitem>
<para>
Which processor's clock to read
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
</refentry><refentry id="API-cpu-clock-us">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::cpu_clock_us</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::cpu_clock_us</refname>
<refpurpose>
Number of microseconds on the given cpu's clock
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
cpu_clock_us:long(cpu:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">cpu</parameter></term>
<listitem>
<para>
Which processor's clock to read
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
</refentry><refentry id="API-delete-stopwatch">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::delete_stopwatch</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::delete_stopwatch</refname>
<refpurpose>
Remove an existing stopwatch
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
delete_stopwatch(name:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
the stopwatch name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Remove stopwatch <parameter moreinfo="none">name</parameter>.
</para>
</refsection>
</refentry><refentry id="API-get-cycles">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::get_cycles</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::get_cycles</refname>
<refpurpose>
Processor cycle count
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
get_cycles:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-gettimeofday-ms">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::gettimeofday_ms</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::gettimeofday_ms</refname>
<refpurpose>
Number of milliseconds since UNIX epoch
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
gettimeofday_ms:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the number of milliseconds
since the UNIX epoch.
</para>
</refsection>
</refentry><refentry id="API-gettimeofday-ns">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::gettimeofday_ns</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::gettimeofday_ns</refname>
<refpurpose>
Number of nanoseconds since UNIX epoch
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
gettimeofday_ns:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the number of nanoseconds
since the UNIX epoch.
</para>
</refsection>
</refentry><refentry id="API-gettimeofday-s">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::gettimeofday_s</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::gettimeofday_s</refname>
<refpurpose>
Number of seconds since UNIX epoch
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
gettimeofday_s:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the number of seconds since
the UNIX epoch.
</para>
</refsection>
</refentry><refentry id="API-gettimeofday-us">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::gettimeofday_us</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::gettimeofday_us</refname>
<refpurpose>
Number of microseconds since UNIX epoch
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
gettimeofday_us:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the number of microseconds
since the UNIX epoch.
</para>
</refsection>
</refentry><refentry id="API-jiffies">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::jiffies</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::jiffies</refname>
<refpurpose>
Kernel jiffies count
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
jiffies:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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 <function moreinfo="none">HZ</function>.
</para>
</refsection>
</refentry><refentry id="API-ktime-get-ns">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ktime_get_ns</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ktime_get_ns</refname>
<refpurpose>
Number of nanoseconds since boot
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ktime_get_ns:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the system ktime.
</para>
</refsection>
</refentry><refentry id="API-local-clock-ms">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::local_clock_ms</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::local_clock_ms</refname>
<refpurpose>
Number of milliseconds on the local cpu's clock
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
local_clock_ms:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
</refentry><refentry id="API-local-clock-ns">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::local_clock_ns</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::local_clock_ns</refname>
<refpurpose>
Number of nanoseconds on the local cpu's clock
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
local_clock_ns:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
</refentry><refentry id="API-local-clock-s">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::local_clock_s</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::local_clock_s</refname>
<refpurpose>
Number of seconds on the local cpu's clock
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
local_clock_s:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
</refentry><refentry id="API-local-clock-us">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::local_clock_us</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::local_clock_us</refname>
<refpurpose>
Number of microseconds on the local cpu's clock
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
local_clock_us:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
</refentry><refentry id="API-read-stopwatch-ms">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::read_stopwatch_ms</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::read_stopwatch_ms</refname>
<refpurpose>
Reads the time in milliseconds for a stopwatch
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
read_stopwatch_ms:long(name:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
stopwatch name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns time in milliseconds for stopwatch <parameter moreinfo="none">name</parameter>.
Creates stopwatch <parameter moreinfo="none">name</parameter> if it does not currently exist.
</para>
</refsection>
</refentry><refentry id="API-read-stopwatch-ns">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::read_stopwatch_ns</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::read_stopwatch_ns</refname>
<refpurpose>
Reads the time in nanoseconds for a stopwatch
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
read_stopwatch_ns:long(name:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
stopwatch name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns time in nanoseconds for stopwatch <parameter moreinfo="none">name</parameter>.
Creates stopwatch <parameter moreinfo="none">name</parameter> if it does not currently exist.
</para>
</refsection>
</refentry><refentry id="API-read-stopwatch-s">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::read_stopwatch_s</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::read_stopwatch_s</refname>
<refpurpose>
Reads the time in seconds for a stopwatch
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
read_stopwatch_s:long(name:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
stopwatch name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns time in seconds for stopwatch <parameter moreinfo="none">name</parameter>.
Creates stopwatch <parameter moreinfo="none">name</parameter> if it does not currently exist.
</para>
</refsection>
</refentry><refentry id="API-read-stopwatch-us">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::read_stopwatch_us</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::read_stopwatch_us</refname>
<refpurpose>
Reads the time in microseconds for a stopwatch
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
read_stopwatch_us:long(name:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
stopwatch name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns time in microseconds for stopwatch <parameter moreinfo="none">name</parameter>.
Creates stopwatch <parameter moreinfo="none">name</parameter> if it does not currently exist.
</para>
</refsection>
</refentry><refentry id="API-start-stopwatch">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::start_stopwatch</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::start_stopwatch</refname>
<refpurpose>
Start a stopwatch
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
start_stopwatch(name:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
the stopwatch name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Start stopwatch <parameter moreinfo="none">name</parameter>.
Creates stopwatch <parameter moreinfo="none">name</parameter> if it does not currently exist.
</para>
</refsection>
</refentry><refentry id="API-stop-stopwatch">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::stop_stopwatch</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::stop_stopwatch</refname>
<refpurpose>
Stop a stopwatch
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
stop_stopwatch(name:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
the stopwatch name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Stop stopwatch <parameter moreinfo="none">name</parameter>.
Creates stopwatch <parameter moreinfo="none">name</parameter> if it does not currently exist.
</para>
</refsection>
</refentry></chapter>

<chapter id="ctime.stp"><title>Time utility functions</title><para>
Utility functions to turn seconds since the epoch (as returned by
the timestamp function gettimeofday_s()) into a human readable
date/time strings.
</para><refentry id="API-ctime">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ctime</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ctime</refname>
<refpurpose>
Convert seconds since epoch into human readable date/time string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) ctime:string(epochsecs:long)</programlisting>
<programlisting format="linespecific">2) ctime:string()</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">epochsecs</parameter></term>
<listitem>
<para>
Number of seconds since epoch (as returned by <function moreinfo="none">gettimeofday_s</function>)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>1) Takes an argument of seconds since the epoch as returned by<function moreinfo="none">gettimeofday_s</function>. Returns a string of the form
</para><para>2) <quote>Wed Jun 30 21:49:08 1993</quote>
</para><para>

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.
</para><para>

Note that the epoch (zero) corresponds to
</para><para>

<quote>Thu Jan  1 00:00:00 1970</quote>
</para><para>

The earliest full date given by ctime, corresponding to epochsecs
-2147483648 is <quote>Fri Dec 13 20:45:52 1901</quote>. The latest full date
given by ctime, corresponding to epochsecs 2147483647 is
<quote>Tue Jan 19 03:14:07 2038</quote>.
</para><para>

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’.
</para><para>

Note that the real C library <function moreinfo="none">ctime</function> 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.
</para>
</refsection>
</refentry><refentry id="API-tz-ctime">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::tz_ctime</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::tz_ctime</refname>
<refpurpose>
Convert seconds since epoch into human readable date/time string, with local time zone
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
tz_ctime(epochsecs:)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">epochsecs</parameter></term>
<listitem>
<para>
number of seconds since epoch (as returned by <function moreinfo="none">gettimeofday_s</function>)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Takes an argument of seconds since the epoch as returned by
<function moreinfo="none">gettimeofday_s</function>.  Returns a string of the same form as <function moreinfo="none">ctime</function>, 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.
</para>
</refsection>
</refentry><refentry id="API-tz-gmtoff">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::tz_gmtoff</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::tz_gmtoff</refname>
<refpurpose>
Return local time zone offset
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
tz_gmtoff()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the local time zone offset (seconds west of UTC), as
passed by staprun at script startup only.
</para>
</refsection>
</refentry><refentry id="API-tz-name">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::tz_name</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::tz_name</refname>
<refpurpose>
Return local time zone name
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
tz_name()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the local time zone name, as passed by staprun at
script startup only.
</para>
</refsection>
</refentry></chapter>


<chapter id="system.stp"><title>Shell command functions</title><para>
Utility functions to enqueue shell commands.
</para><refentry id="API-system">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::system</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::system</refname>
<refpurpose>
Issue a command to the system
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
system(cmd:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">cmd</parameter></term>
<listitem>
<para>
the command to issue to the system
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.  The runtime may impose a
relatively short length limit on the command string.  Exceeding it
may print a warning.
</para>
</refsection>
</refentry></chapter>

<chapter id="memory_stp"><title>Memory Tapset</title><para>
This family of probe points is used to probe memory-related events
or query the memory usage of the current process.
It contains the following probe points:
</para><refentry id="API-addr-to-node">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::addr_to_node</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::addr_to_node</refname>
<refpurpose>
Returns which node a given address belongs to within a NUMA system
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
addr_to_node:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the address of the faulting memory access
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function accepts an address, and returns the 
node that the given address belongs to in a NUMA system.
</para>
</refsection>
</refentry><refentry id="API-bytes-to-string">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::bytes_to_string</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::bytes_to_string</refname>
<refpurpose>
Human readable string for given bytes
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
bytes_to_string:string(bytes:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">bytes</parameter></term>
<listitem>
<para>
Number of bytes to translate.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-mem-page-size">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::mem_page_size</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::mem_page_size</refname>
<refpurpose>
Number of bytes in a page for this architecture
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
mem_page_size:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
</refentry><refentry id="API-pages-to-string">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::pages_to_string</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::pages_to_string</refname>
<refpurpose>
Turns pages into a human readable string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
pages_to_string:string(pages:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">pages</parameter></term>
<listitem>
<para>
Number of pages to translate.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Multiplies pages by <function moreinfo="none">page_size</function> to get the number of
bytes and returns the result of <function moreinfo="none">bytes_to_string</function>.
</para>
</refsection>
</refentry><refentry id="API-proc-mem-data">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::proc_mem_data</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::proc_mem_data</refname>
<refpurpose>
Program data size (data + stack) in pages
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) proc_mem_data:long()</programlisting>
<programlisting format="linespecific">2) proc_mem_data:long(pid:long)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist><varlistentry>
<term><parameter moreinfo="none">pid</parameter></term>
<listitem>
<para>
The pid of process to examine
</para>
</listitem>
</varlistentry>
</variablelist></refsection>
<refsection>
<title>Description</title>
<para>1) 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.</para>
<para>2) 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.</para>
</refsection>
</refentry><refentry id="API-proc-mem-rss">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::proc_mem_rss</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::proc_mem_rss</refname>
<refpurpose>
Program resident set size in pages
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) proc_mem_rss:long()</programlisting>
<programlisting format="linespecific">2) proc_mem_rss:long(pid:long)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist><varlistentry>
<term><parameter moreinfo="none">pid</parameter></term>
<listitem>
<para>
The pid of process to examine
</para>
</listitem>
</varlistentry>
</variablelist></refsection>
<refsection>
<title>Description</title>
<para>1) 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.</para>
<para>2) 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.</para>
</refsection>
</refentry><refentry id="API-proc-mem-shr">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::proc_mem_shr</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::proc_mem_shr</refname>
<refpurpose>
Program shared pages (from shared mappings)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) proc_mem_shr:long()</programlisting>
<programlisting format="linespecific">2) proc_mem_shr:long(pid:long)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist><varlistentry>
<term><parameter moreinfo="none">pid</parameter></term>
<listitem>
<para>
The pid of process to examine
</para>
</listitem>
</varlistentry>
</variablelist></refsection>
<refsection>
<title>Description</title>
<para>1) 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.</para>
<para>2) 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.</para>
</refsection>
</refentry><refentry id="API-proc-mem-size">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::proc_mem_size</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::proc_mem_size</refname>
<refpurpose>
Total program virtual memory size in pages
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) proc_mem_size:long()</programlisting>
<programlisting format="linespecific">2) proc_mem_size:long(pid:long)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist><varlistentry>
<term><parameter moreinfo="none">pid</parameter></term>
<listitem>
<para>
The pid of process to examine
</para>
</listitem>
</varlistentry>
</variablelist></refsection>
<refsection>
<title>Description</title>
<para>1) 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.</para>
<para>2) 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.</para>
</refsection>
</refentry><refentry id="API-proc-mem-string">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::proc_mem_string</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::proc_mem_string</refname>
<refpurpose>
Human readable string of process memory usage
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) proc_mem_string:string()</programlisting>
<programlisting format="linespecific">2) proc_mem_string:string(pid:long)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist><varlistentry>
<term><parameter moreinfo="none">pid</parameter></term>
<listitem>
<para>
The pid of process to examine
</para>
</listitem>
</varlistentry>
</variablelist></refsection>
<refsection>
<title>Description</title>
<para>1) Returns a human readable string showing the size, rss,
shr, txt and data of the memory used by the current process.
For example<quote>size: 301m, rss: 11m, shr: 8m, txt: 52k, data: 2248k</quote>.
</para>
<para>2) Returns a human readable string showing the size, rss,
shr, txt and data of the memory used by the given process.
For example<quote>size: 301m, rss: 11m, shr: 8m, txt: 52k, data: 2248k</quote>.
</para>
</refsection>
</refentry><refentry id="API-proc-mem-txt">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::proc_mem_txt</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::proc_mem_txt</refname>
<refpurpose>
Program text (code) size in pages
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) proc_mem_txt:long()</programlisting>
<programlisting format="linespecific">2) proc_mem_txt:long(pid:long)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist><varlistentry>
<term><parameter moreinfo="none">pid</parameter></term>
<listitem>
<para>
The pid of process to examine
</para>
</listitem>
</varlistentry>
</variablelist></refsection>
<refsection>
<title>Description</title>
<para>1) 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.</para>
<para>2) 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.</para>
</refsection>
</refentry><refentry id="API-vm-fault-contains">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::vm_fault_contains</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::vm_fault_contains</refname>
<refpurpose>
Test return value for page fault reason
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
vm_fault_contains:long(value:long,test:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">value</parameter></term>
<listitem>
<para>
the fault_type returned by vm.page_fault.return
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">test</parameter></term>
<listitem>
<para>
the type of fault to test for (VM_FAULT_OOM or similar)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-vm-brk">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::vm.brk</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::vm.brk</refname>
<refpurpose>
Fires when a brk is requested (i.e. the heap will be resized)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">vm.brk </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">length</parameter></term>
<listitem>
<para>
the length of the memory segment 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">address</parameter></term>
<listitem>
<para>
the requested address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process calling brk.
</para>
</refsection>
</refentry><refentry id="API-vm-kfree">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::vm.kfree</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::vm.kfree</refname>
<refpurpose>
Fires when kfree is requested
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">vm.kfree </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">caller_function</parameter></term>
<listitem>
<para>
name of the caller function.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">call_site</parameter></term>
<listitem>
<para>
address of the function calling this kmemory function
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ptr</parameter></term>
<listitem>
<para>
pointer to the kmemory allocated which is returned by kmalloc
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-vm-kmalloc">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::vm.kmalloc</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::vm.kmalloc</refname>
<refpurpose>
Fires when kmalloc is requested
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">vm.kmalloc </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">caller_function</parameter></term>
<listitem>
<para>
name of the caller function
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">gfp_flags</parameter></term>
<listitem>
<para>
type of kmemory to allocate
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">gfp_flag_name</parameter></term>
<listitem>
<para>
type of kmemory to allocate (in String format)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bytes_req</parameter></term>
<listitem>
<para>
requested Bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">call_site</parameter></term>
<listitem>
<para>
address of the kmemory function
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ptr</parameter></term>
<listitem>
<para>
pointer to the kmemory allocated
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bytes_alloc</parameter></term>
<listitem>
<para>
allocated Bytes
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-vm-kmalloc-node">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::vm.kmalloc_node</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::vm.kmalloc_node</refname>
<refpurpose>
Fires when kmalloc_node is requested
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">vm.kmalloc_node </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">gfp_flags</parameter></term>
<listitem>
<para>
type of kmemory to allocate
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">caller_function</parameter></term>
<listitem>
<para>
name of the caller function
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">call_site</parameter></term>
<listitem>
<para>
address of the function caling this  kmemory function
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">gfp_flag_name</parameter></term>
<listitem>
<para>
type of kmemory to allocate(in string format)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bytes_req</parameter></term>
<listitem>
<para>
requested Bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ptr</parameter></term>
<listitem>
<para>
pointer to the kmemory allocated
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bytes_alloc</parameter></term>
<listitem>
<para>
allocated Bytes
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-vm-kmem-cache-alloc">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::vm.kmem_cache_alloc</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::vm.kmem_cache_alloc</refname>
<refpurpose>
Fires when kmem_cache_alloc is requested
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">vm.kmem_cache_alloc </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">call_site</parameter></term>
<listitem>
<para>
address of the function calling this kmemory function.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">gfp_flag_name</parameter></term>
<listitem>
<para>
type of kmemory to allocate(in string format)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bytes_req</parameter></term>
<listitem>
<para>
requested Bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">caller_function</parameter></term>
<listitem>
<para>
name of the caller function.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">gfp_flags</parameter></term>
<listitem>
<para>
type of kmemory to allocate
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bytes_alloc</parameter></term>
<listitem>
<para>
allocated Bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ptr</parameter></term>
<listitem>
<para>
pointer to the kmemory allocated
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-vm-kmem-cache-alloc-node">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::vm.kmem_cache_alloc_node</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::vm.kmem_cache_alloc_node</refname>
<refpurpose>
Fires when kmem_cache_alloc_node is requested
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">vm.kmem_cache_alloc_node </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">gfp_flag_name</parameter></term>
<listitem>
<para>
type of kmemory to allocate(in string format)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bytes_req</parameter></term>
<listitem>
<para>
requested Bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">call_site</parameter></term>
<listitem>
<para>
address of the function calling this kmemory function
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">caller_function</parameter></term>
<listitem>
<para>
name of the caller function
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">gfp_flags</parameter></term>
<listitem>
<para>
type of kmemory to allocate
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bytes_alloc</parameter></term>
<listitem>
<para>
allocated Bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ptr</parameter></term>
<listitem>
<para>
pointer to the kmemory allocated
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-vm-kmem-cache-free">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::vm.kmem_cache_free</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::vm.kmem_cache_free</refname>
<refpurpose>
Fires when kmem_cache_free is requested
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">vm.kmem_cache_free </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">ptr</parameter></term>
<listitem>
<para>
Pointer to the kmemory allocated which is returned by kmem_cache
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">caller_function</parameter></term>
<listitem>
<para>
Name of the caller function.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">call_site</parameter></term>
<listitem>
<para>
Address of the function calling this kmemory function
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-vm-mmap">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::vm.mmap</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::vm.mmap</refname>
<refpurpose>
Fires when an mmap is requested
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">vm.mmap </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">length</parameter></term>
<listitem>
<para>
the length of the memory segment 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">address</parameter></term>
<listitem>
<para>
the requested address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process calling mmap.
</para>
</refsection>
</refentry><refentry id="API-vm-munmap">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::vm.munmap</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::vm.munmap</refname>
<refpurpose>
Fires when an munmap is requested
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">vm.munmap </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">address</parameter></term>
<listitem>
<para>
the requested address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">length</parameter></term>
<listitem>
<para>
the length of the memory segment 
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process calling munmap.
</para>
</refsection>
</refentry><refentry id="API-vm-oom-kill">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::vm.oom_kill</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::vm.oom_kill</refname>
<refpurpose>
Fires when a thread is selected for termination by the OOM killer
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">vm.oom_kill </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
the task being killed
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process that tried to consume excessive memory, and thus
triggered the OOM.
</para>
</refsection>
</refentry><refentry id="API-vm-pagefault">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::vm.pagefault</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::vm.pagefault</refname>
<refpurpose>
Records that a page fault occurred
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">vm.pagefault </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">address</parameter></term>
<listitem>
<para>
the address of the faulting memory access; i.e. the address that caused the page fault
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">write_access</parameter></term>
<listitem>
<para>
indicates whether this was a write or read access; 1 indicates a write, 
while 0 indicates a read
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process which triggered the fault
</para>
</refsection>
</refentry><refentry id="API-vm-pagefault-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::vm.pagefault.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::vm.pagefault.return</refname>
<refpurpose>
Indicates what type of fault occurred
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">vm.pagefault.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">fault_type</parameter></term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-vm-write-shared">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::vm.write_shared</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::vm.write_shared</refname>
<refpurpose>
Attempts at writing to a shared page
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">vm.write_shared </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">address</parameter></term>
<listitem>
<para>
the address of the shared write
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The context is the process attempting the write.
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-vm-write-shared-copy">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::vm.write_shared_copy</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::vm.write_shared_copy</refname>
<refpurpose>
Page copy for shared page write
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">vm.write_shared_copy </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">address</parameter></term>
<listitem>
<para>
The address of the shared write
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">zero</parameter></term>
<listitem>
<para>
boolean indicating whether it is a zero page
(can do a clear instead of a copy)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process attempting the write.
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires when a write to a shared page requires a page copy.  This is
always preceded by a vm.write_shared.
</para>
</refsection>
</refentry></chapter>

<chapter id="task_time_stp"><title>Task Time Tapset</title><para>
This tapset defines utility functions to query time related
properties of the current tasks, translate those in miliseconds
and human readable strings.
</para><refentry id="API-cputime-to-msecs">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::cputime_to_msecs</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::cputime_to_msecs</refname>
<refpurpose>
Translates the given cputime into milliseconds
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
cputime_to_msecs:long(cputime:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">cputime</parameter></term>
<listitem>
<para>
Time to convert to milliseconds.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-cputime-to-string">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::cputime_to_string</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::cputime_to_string</refname>
<refpurpose>
Human readable string for given cputime
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
cputime_to_string:string(cputime:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">cputime</parameter></term>
<listitem>
<para>
Time to translate.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Equivalent to calling:
msec_to_string (cputime_to_msecs (cputime).
</para>
</refsection>
</refentry><refentry id="API-cputime-to-usecs">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::cputime_to_usecs</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::cputime_to_usecs</refname>
<refpurpose>
Translates the given cputime into microseconds
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
cputime_to_usecs:long(cputime:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">cputime</parameter></term>
<listitem>
<para>
Time to convert to microseconds.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-msecs-to-string">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::msecs_to_string</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::msecs_to_string</refname>
<refpurpose>
Human readable string for given milliseconds
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
msecs_to_string:string(msecs:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">msecs</parameter></term>
<listitem>
<para>
Number of milliseconds to translate.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns a string representing the number of
milliseconds as a human readable string consisting of <quote>XmY.ZZZs</quote>,
where X is the number of minutes, Y is the number of seconds and
ZZZ is the number of milliseconds.
</para>
</refsection>
</refentry><refentry id="API-nsecs-to-string">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::nsecs_to_string</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::nsecs_to_string</refname>
<refpurpose>
Human readable string for given nanoseconds
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
nsecs_to_string:string(nsecs:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">nsecs</parameter></term>
<listitem>
<para>
Number of nanoseconds to translate.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns a string representing the number of
nanoseconds as a human readable string consisting of <quote>XmY.ZZZZZZs</quote>,
where X is the number of minutes, Y is the number of seconds and
ZZZZZZZZZ is the number of nanoseconds.
</para>
</refsection>
</refentry><refentry id="API-task-start-time">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_start_time</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_start_time</refname>
<refpurpose>
Start time of the given task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_start_time:long(tid:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">tid</parameter></term>
<listitem>
<para>
Thread id of the given task
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the start time of the given task in nanoseconds since
boot time or 0 if the task does not exist.
</para>
</refsection>
</refentry><refentry id="API-task-stime">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_stime</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_stime</refname>
<refpurpose>
System time of the task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) task_stime:long()</programlisting>
<programlisting format="linespecific">2) task_stime:long(tid:long)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist><varlistentry>
<term><parameter moreinfo="none">tid</parameter></term>
<listitem>
<para>
Thread id of the given task
</para>
</listitem>
</varlistentry>
</variablelist></refsection>
<refsection>
<title>Description</title>
<para>1) 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.</para>
<para>2) 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.</para>
</refsection>
</refentry><refentry id="API-task-time-string">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_time_string</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_time_string</refname>
<refpurpose>
Human readable string of task time usage
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_time_string:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns a human readable string showing the user and
system time the current task has used up to now.  For example
<quote>usr: 0m12.908s, sys: 1m6.851s</quote>.
</para>
</refsection>
</refentry><refentry id="API-task-time-string-tid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_time_string_tid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_time_string_tid</refname>
<refpurpose>
Human readable string of task time usage
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_time_string_tid:string(tid:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">tid</parameter></term>
<listitem>
<para>
Thread id of the given task
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns a human readable string showing the user and
system time the given task has used up to now.  For example
<quote>usr: 0m12.908s, sys: 1m6.851s</quote>.
</para>
</refsection>
</refentry><refentry id="API-task-utime">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_utime</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_utime</refname>
<refpurpose>
User time of the task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) task_utime:long()</programlisting>
<programlisting format="linespecific">2) task_utime:long(tid:long)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist><varlistentry>
<term><parameter moreinfo="none">tid</parameter></term>
<listitem>
<para>
Thread id of the given task
</para>
</listitem>
</varlistentry>
</variablelist></refsection>
<refsection>
<title>Description</title>
<para>1) 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.</para>
<para>2) 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.</para>
</refsection>
</refentry><refentry id="API-usecs-to-string">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::usecs_to_string</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::usecs_to_string</refname>
<refpurpose>
Human readable string for given microseconds
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
usecs_to_string:string(usecs:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">usecs</parameter></term>
<listitem>
<para>
Number of microseconds to translate.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns a string representing the number of
microseconds as a human readable string consisting of <quote>XmY.ZZZZZZs</quote>,
where X is the number of minutes, Y is the number of seconds and
ZZZZZZ is the number of microseconds.
</para>
</refsection>
</refentry></chapter>

<chapter id="sched.stp"><title>Scheduler Tapset</title><para>
This family of probe points is used to probe the task scheduler activities.
It contains the following probe points:
</para><refentry id="API-scheduler-balance">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scheduler.balance</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scheduler.balance</refname>
<refpurpose>
A cpu attempting to find more work.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scheduler.balance </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The cpu looking for more work.
</para>
</refsection>
</refentry><refentry id="API-scheduler-cpu-off">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scheduler.cpu_off</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scheduler.cpu_off</refname>
<refpurpose>
Process is about to stop running on a cpu
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scheduler.cpu_off </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task_prev</parameter></term>
<listitem>
<para>
the process leaving the cpu (same as current)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">idle</parameter></term>
<listitem>
<para>
boolean indicating whether current is the idle process
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">task_next</parameter></term>
<listitem>
<para>
the process replacing current
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process leaving the cpu.
</para>
</refsection>
</refentry><refentry id="API-scheduler-cpu-on">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scheduler.cpu_on</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scheduler.cpu_on</refname>
<refpurpose>
Process is beginning execution on a cpu
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scheduler.cpu_on </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">idle</parameter></term>
<listitem>
<para>
- boolean indicating whether current is the idle process
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">task_prev</parameter></term>
<listitem>
<para>
the process that was previously running on this cpu
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The resuming process.
</para>
</refsection>
</refentry><refentry id="API-scheduler-ctxswitch">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scheduler.ctxswitch</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scheduler.ctxswitch</refname>
<refpurpose>
A context switch is occuring.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scheduler.ctxswitch </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">prevtsk_state</parameter></term>
<listitem>
<para>
the state of the process to be switched out
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prev_tid</parameter></term>
<listitem>
<para>
The TID of the process to be switched out
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">next_priority</parameter></term>
<listitem>
<para>
The priority of the process to be switched in
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">next_task_name</parameter></term>
<listitem>
<para>
The name of the process to be switched in
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prev_priority</parameter></term>
<listitem>
<para>
The priority of the process to be switched out
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prev_task_name</parameter></term>
<listitem>
<para>
The name of the process to be switched out
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">next_tid</parameter></term>
<listitem>
<para>
The TID of the process to be switched in	 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nexttsk_state</parameter></term>
<listitem>
<para>
the state of the process to be switched in
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">next_pid</parameter></term>
<listitem>
<para>
The PID of the process to be switched in
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prev_pid</parameter></term>
<listitem>
<para>
The PID of the process to be switched out
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-scheduler-kthread-stop">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scheduler.kthread_stop</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scheduler.kthread_stop</refname>
<refpurpose>
A thread created by kthread_create is being stopped
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scheduler.kthread_stop </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">thread_priority</parameter></term>
<listitem>
<para>
priority of the thread
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">thread_pid</parameter></term>
<listitem>
<para>
PID of the thread being stopped
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-scheduler-kthread-stop-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scheduler.kthread_stop.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scheduler.kthread_stop.return</refname>
<refpurpose>
A kthread is stopped and gets the return value
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scheduler.kthread_stop.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">return_value</parameter></term>
<listitem>
<para>
return value after stopping the thread
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-scheduler-migrate">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scheduler.migrate</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scheduler.migrate</refname>
<refpurpose>
Task migrating across cpus
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scheduler.migrate </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">priority</parameter></term>
<listitem>
<para>
priority of the task being migrated
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">cpu_from</parameter></term>
<listitem>
<para>
the original cpu
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pid</parameter></term>
<listitem>
<para>
PID of the task being migrated
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
the process that is being migrated
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">cpu_to</parameter></term>
<listitem>
<para>
the destination cpu
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-scheduler-process-exit">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scheduler.process_exit</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scheduler.process_exit</refname>
<refpurpose>
Process exiting
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scheduler.process_exit </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">priority</parameter></term>
<listitem>
<para>
priority of the process exiting
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pid</parameter></term>
<listitem>
<para>
PID of the process exiting
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-scheduler-process-fork">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scheduler.process_fork</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scheduler.process_fork</refname>
<refpurpose>
Process forked
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scheduler.process_fork </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">child_pid</parameter></term>
<listitem>
<para>
PID of the child process
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">parent_pid</parameter></term>
<listitem>
<para>
PID of the parent process
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-scheduler-process-free">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scheduler.process_free</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scheduler.process_free</refname>
<refpurpose>
Scheduler freeing a data structure for a process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scheduler.process_free </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">priority</parameter></term>
<listitem>
<para>
priority of the process getting freed
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pid</parameter></term>
<listitem>
<para>
PID of the process getting freed
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-scheduler-process-wait">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scheduler.process_wait</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scheduler.process_wait</refname>
<refpurpose>
Scheduler starting to wait on a process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scheduler.process_wait </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pid</parameter></term>
<listitem>
<para>
PID of the process scheduler is waiting on
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-scheduler-signal-send">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scheduler.signal_send</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scheduler.signal_send</refname>
<refpurpose>
Sending a signal
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scheduler.signal_send </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">signal_number</parameter></term>
<listitem>
<para>
signal number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pid</parameter></term>
<listitem>
<para>
pid of the process sending signal
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-scheduler-tick">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scheduler.tick</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scheduler.tick</refname>
<refpurpose>
Schedulers internal tick, a processes timeslice accounting is updated
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scheduler.tick </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">idle</parameter></term>
<listitem>
<para>
boolean indicating whether current is the idle process
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process whose accounting will be updated.
</para>
</refsection>
</refentry><refentry id="API-scheduler-wait-task">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scheduler.wait_task</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scheduler.wait_task</refname>
<refpurpose>
Waiting on a task to unschedule (become inactive)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scheduler.wait_task </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task_priority</parameter></term>
<listitem>
<para>
priority of the task
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">task_pid</parameter></term>
<listitem>
<para>
PID of the task the scheduler is waiting on
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-scheduler-wakeup">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scheduler.wakeup</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scheduler.wakeup</refname>
<refpurpose>
Task is woken up
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scheduler.wakeup </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task_pid</parameter></term>
<listitem>
<para>
PID of the task being woken up
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">task_cpu</parameter></term>
<listitem>
<para>
cpu of the task being woken up
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">task_priority</parameter></term>
<listitem>
<para>
priority of the task being woken up
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">task_state</parameter></term>
<listitem>
<para>
state of the task being woken up
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">task_tid</parameter></term>
<listitem>
<para>
tid of the task being woken up
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-scheduler-wakeup-new">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scheduler.wakeup_new</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scheduler.wakeup_new</refname>
<refpurpose>
Newly created task is woken up for the first time
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scheduler.wakeup_new </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task_pid</parameter></term>
<listitem>
<para>
PID of the new task woken up
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">task_cpu</parameter></term>
<listitem>
<para>
cpu of the task woken up
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">task_state</parameter></term>
<listitem>
<para>
state of the task woken up
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">task_tid</parameter></term>
<listitem>
<para>
TID of the new task woken up
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">task_priority</parameter></term>
<listitem>
<para>
priority of the new task
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry></chapter>

<chapter id="iosched.stp"><title>IO Scheduler and block IO Tapset</title><para>
This family of probe points is used to probe block IO layer and IO scheduler activities.
It contains the following probe points:
</para><refentry id="API-ioblock-end">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ioblock.end</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ioblock.end</refname>
<refpurpose>
Fires whenever a block I/O transfer is complete.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ioblock.end </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">rw</parameter></term>
<listitem>
<para>
binary trace for read/write request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
i-node number of the mapped file
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
total size in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">hw_segments</parameter></term>
<listitem>
<para>
number of segments after physical and DMA remapping hardware coalescing is performed
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sector</parameter></term>
<listitem>
<para>
beginning sector for the entire bio
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">idx</parameter></term>
<listitem>
<para>
offset into the bio vector array
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">phys_segments</parameter></term>
<listitem>
<para>
number of segments in this bio after physical address coalescing is performed.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vcnt</parameter></term>
<listitem>
<para>
bio vector count which represents number of array element (page, offset, length) which makes up this I/O request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">error</parameter></term>
<listitem>
<para>
0 on success
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">opf</parameter></term>
<listitem>
<para>
operations and flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bytes_done</parameter></term>
<listitem>
<para>
number of bytes transferred
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
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
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">devname</parameter></term>
<listitem>
<para>
block device name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process signals the transfer is done.
</para>
</refsection>
</refentry><refentry id="API-ioblock-request">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ioblock.request</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ioblock.request</refname>
<refpurpose>
Fires whenever making a generic block I/O request.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ioblock.request </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sector</parameter></term>
<listitem>
<para>
beginning sector for the entire bio
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">idx</parameter></term>
<listitem>
<para>
offset into the bio vector array
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">hw_segments</parameter></term>
<listitem>
<para>
number of segments after physical and DMA remapping hardware coalescing is performed
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
i-node number of the mapped file
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
total size in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rw</parameter></term>
<listitem>
<para>
binary trace for read/write request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bdev_contains</parameter></term>
<listitem>
<para>
points to the device object which contains the partition (when bio structure represents a partition)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">p_start_sect</parameter></term>
<listitem>
<para>
points to the start sector of the partition structure of the device
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">devname</parameter></term>
<listitem>
<para>
block device name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
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
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">opf</parameter></term>
<listitem>
<para>
operations and flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">phys_segments</parameter></term>
<listitem>
<para>
number of segments in this bio after physical address coalescing is performed
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bdev</parameter></term>
<listitem>
<para>
target block device
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vcnt</parameter></term>
<listitem>
<para>
bio vector count which represents number of array element (page, offset, length) which make up this I/O request
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process makes block I/O request
</para>
</refsection>
</refentry><refentry id="API-ioblock-trace-bounce">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ioblock_trace.bounce</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ioblock_trace.bounce</refname>
<refpurpose>
Fires whenever a buffer bounce is needed for at least one page of a block IO request.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ioblock_trace.bounce </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">bdev_contains</parameter></term>
<listitem>
<para>
points to the device object which contains the partition (when bio structure represents a partition)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
total size in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
i-node number of the mapped file
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rw</parameter></term>
<listitem>
<para>
binary trace for read/write request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sector</parameter></term>
<listitem>
<para>
beginning sector for the entire bio
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">idx</parameter></term>
<listitem>
<para>
offset into the bio vector array
<parameter moreinfo="none">phys_segments</parameter> - number of segments in this bio after physical address coalescing is performed.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bdev</parameter></term>
<listitem>
<para>
target block device
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vcnt</parameter></term>
<listitem>
<para>
bio vector count which represents number of array element (page, offset, length) which makes up this I/O request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">q</parameter></term>
<listitem>
<para>
request queue on which this bio was queued.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bytes_done</parameter></term>
<listitem>
<para>
number of bytes transferred
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
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
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">p_start_sect</parameter></term>
<listitem>
<para>
points to the start sector of the partition structure of the device
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">devname</parameter></term>
<listitem>
<para>
device for which a buffer bounce was needed.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">opf</parameter></term>
<listitem>
<para>
operations and flags
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context </title>
<para>
The process creating a block IO request.
</para>
</refsection>
</refentry><refentry id="API-ioblock-trace-end">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ioblock_trace.end</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ioblock_trace.end</refname>
<refpurpose>
Fires whenever a block I/O transfer is complete.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ioblock_trace.end </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">idx</parameter></term>
<listitem>
<para>
offset into the bio vector array
<parameter moreinfo="none">phys_segments</parameter> - number of segments in this bio after physical address coalescing is performed.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sector</parameter></term>
<listitem>
<para>
beginning sector for the entire bio
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rw</parameter></term>
<listitem>
<para>
binary trace for read/write request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
i-node number of the mapped file
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
total size in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bdev_contains</parameter></term>
<listitem>
<para>
points to the device object which contains the partition (when bio structure represents a partition)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">opf</parameter></term>
<listitem>
<para>
operations and flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bytes_done</parameter></term>
<listitem>
<para>
number of bytes transferred
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
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
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">devname</parameter></term>
<listitem>
<para>
block device name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">p_start_sect</parameter></term>
<listitem>
<para>
points to the start sector of the partition structure of the device
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">q</parameter></term>
<listitem>
<para>
request queue on which this bio was queued.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vcnt</parameter></term>
<listitem>
<para>
bio vector count which represents number of array element (page, offset, length) which makes up this I/O request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bdev</parameter></term>
<listitem>
<para>
target block device
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process signals the transfer is done.
</para>
</refsection>
</refentry><refentry id="API-ioblock-trace-request">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ioblock_trace.request</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ioblock_trace.request</refname>
<refpurpose>
Fires just as a generic block I/O request is created for a bio.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ioblock_trace.request </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">bdev</parameter></term>
<listitem>
<para>
target block device
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vcnt</parameter></term>
<listitem>
<para>
bio vector count which represents number of array element (page, offset, length) which make up this I/O request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">p_start_sect</parameter></term>
<listitem>
<para>
points to the start sector of the partition structure of the device
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">devname</parameter></term>
<listitem>
<para>
block device name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
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
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bytes_done</parameter></term>
<listitem>
<para>
number of bytes transferred
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">opf</parameter></term>
<listitem>
<para>
operations and flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">q</parameter></term>
<listitem>
<para>
request queue on which this bio was queued.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
i-node number of the mapped file
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
total size in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rw</parameter></term>
<listitem>
<para>
binary trace for read/write request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bdev_contains</parameter></term>
<listitem>
<para>
points to the device object which contains the partition (when bio structure represents a partition)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">idx</parameter></term>
<listitem>
<para>
offset into the bio vector array
<parameter moreinfo="none">phys_segments</parameter> - number of segments in this bio after physical address coalescing is performed.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sector</parameter></term>
<listitem>
<para>
beginning sector for the entire bio
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process makes block I/O request
</para>
</refsection>
</refentry><refentry id="API-ioscheduler-elv-add-request">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ioscheduler.elv_add_request</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ioscheduler.elv_add_request</refname>
<refpurpose>
probe to indicate request is added to the request queue.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ioscheduler.elv_add_request </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">disk_minor</parameter></term>
<listitem>
<para>
Disk minor number of request.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">disk_major</parameter></term>
<listitem>
<para>
Disk major no of request.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">elevator_name</parameter></term>
<listitem>
<para>
The type of I/O elevator currently enabled.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">q</parameter></term>
<listitem>
<para>
Pointer to request queue.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_flags</parameter></term>
<listitem>
<para>
Request flags.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq</parameter></term>
<listitem>
<para>
Address of request.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-ioscheduler-elv-add-request-kp">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ioscheduler.elv_add_request.kp</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ioscheduler.elv_add_request.kp</refname>
<refpurpose>
kprobe based probe to indicate that a request was added to the request queue
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ioscheduler.elv_add_request.kp </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">disk_major</parameter></term>
<listitem>
<para>
Disk major number of the request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">disk_minor</parameter></term>
<listitem>
<para>
Disk minor number of the request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_flags</parameter></term>
<listitem>
<para>
Request flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq</parameter></term>
<listitem>
<para>
Address of the request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">elevator_name</parameter></term>
<listitem>
<para>
The type of I/O elevator currently enabled
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">q</parameter></term>
<listitem>
<para>
pointer to request queue
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-ioscheduler-elv-add-request-tp">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ioscheduler.elv_add_request.tp</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ioscheduler.elv_add_request.tp</refname>
<refpurpose>
tracepoint based probe to indicate a request is added to the request queue.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ioscheduler.elv_add_request.tp </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">elevator_name</parameter></term>
<listitem>
<para>
The type of I/O elevator currently enabled.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">q</parameter></term>
<listitem>
<para>
Pointer to request queue.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_flags</parameter></term>
<listitem>
<para>
Request flags.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq</parameter></term>
<listitem>
<para>
Address of request.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">disk_minor</parameter></term>
<listitem>
<para>
Disk minor number of request.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">disk_major</parameter></term>
<listitem>
<para>
Disk major no of request.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-ioscheduler-elv-completed-request">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ioscheduler.elv_completed_request</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ioscheduler.elv_completed_request</refname>
<refpurpose>
Fires when a request is completed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ioscheduler.elv_completed_request </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">elevator_name</parameter></term>
<listitem>
<para>
The type of I/O elevator currently enabled
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_flags</parameter></term>
<listitem>
<para>
Request flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq</parameter></term>
<listitem>
<para>
Address of the request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">disk_minor</parameter></term>
<listitem>
<para>
Disk minor number of the request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">disk_major</parameter></term>
<listitem>
<para>
Disk major number of the request
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-ioscheduler-elv-next-request">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ioscheduler.elv_next_request</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ioscheduler.elv_next_request</refname>
<refpurpose>
Fires when a request is retrieved from the request queue
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ioscheduler.elv_next_request </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">elevator_name</parameter></term>
<listitem>
<para>
The type of I/O elevator currently enabled
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-ioscheduler-elv-next-request-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ioscheduler.elv_next_request.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ioscheduler.elv_next_request.return</refname>
<refpurpose>
Fires when a request retrieval issues a return signal
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ioscheduler.elv_next_request.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">disk_minor</parameter></term>
<listitem>
<para>
Disk minor number of the request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_flags</parameter></term>
<listitem>
<para>
Request flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq</parameter></term>
<listitem>
<para>
Address of the request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">disk_major</parameter></term>
<listitem>
<para>
Disk major number of the request
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-ioscheduler-trace-elv-abort-request">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ioscheduler_trace.elv_abort_request</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ioscheduler_trace.elv_abort_request</refname>
<refpurpose>
Fires when a request is aborted.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ioscheduler_trace.elv_abort_request </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">disk_major</parameter></term>
<listitem>
<para>
Disk major no of request.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">disk_minor</parameter></term>
<listitem>
<para>
Disk minor number of request.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_flags</parameter></term>
<listitem>
<para>
Request flags.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq</parameter></term>
<listitem>
<para>
Address of request.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">elevator_name</parameter></term>
<listitem>
<para>
The type of I/O elevator currently enabled.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-ioscheduler-trace-elv-completed-request">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ioscheduler_trace.elv_completed_request</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ioscheduler_trace.elv_completed_request</refname>
<refpurpose>
Fires when a request is
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ioscheduler_trace.elv_completed_request </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">elevator_name</parameter></term>
<listitem>
<para>
The type of I/O elevator currently enabled.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq</parameter></term>
<listitem>
<para>
Address of request.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_flags</parameter></term>
<listitem>
<para>
Request flags.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">disk_minor</parameter></term>
<listitem>
<para>
Disk minor number of request.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">disk_major</parameter></term>
<listitem>
<para>
Disk major no of request.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
completed.
</para>
</refsection>
</refentry><refentry id="API-ioscheduler-trace-elv-issue-request">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ioscheduler_trace.elv_issue_request</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ioscheduler_trace.elv_issue_request</refname>
<refpurpose>
Fires when a request is
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ioscheduler_trace.elv_issue_request </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">rq</parameter></term>
<listitem>
<para>
Address of request.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_flags</parameter></term>
<listitem>
<para>
Request flags.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">elevator_name</parameter></term>
<listitem>
<para>
The type of I/O elevator currently enabled.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">disk_major</parameter></term>
<listitem>
<para>
Disk major no of request.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">disk_minor</parameter></term>
<listitem>
<para>
Disk minor number of request.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
scheduled.
</para>
</refsection>
</refentry><refentry id="API-ioscheduler-trace-elv-requeue-request">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ioscheduler_trace.elv_requeue_request</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ioscheduler_trace.elv_requeue_request</refname>
<refpurpose>
Fires when a request is
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ioscheduler_trace.elv_requeue_request </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">elevator_name</parameter></term>
<listitem>
<para>
The type of I/O elevator currently enabled.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq</parameter></term>
<listitem>
<para>
Address of request.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_flags</parameter></term>
<listitem>
<para>
Request flags.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">disk_minor</parameter></term>
<listitem>
<para>
Disk minor number of request.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">disk_major</parameter></term>
<listitem>
<para>
Disk major no of request.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
put back on the queue, when the hadware cannot accept more requests.
</para>
</refsection>
</refentry><refentry id="API-ioscheduler-trace-plug">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ioscheduler_trace.plug</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ioscheduler_trace.plug</refname>
<refpurpose>
Fires when a request queue is plugged;
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ioscheduler_trace.plug </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_queue</parameter></term>
<listitem>
<para>
request queue
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
ie, requests in the queue cannot be serviced by block driver.
</para>
</refsection>
</refentry><refentry id="API-ioscheduler-trace-unplug-io">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ioscheduler_trace.unplug_io</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ioscheduler_trace.unplug_io</refname>
<refpurpose>
Fires when a request queue is unplugged;
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ioscheduler_trace.unplug_io </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">rq_queue</parameter></term>
<listitem>
<para>
request queue
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Either, when number of pending requests in the queue exceeds threshold
or, upon expiration of timer that was activated when queue was plugged.
</para>
</refsection>
</refentry><refentry id="API-ioscheduler-trace-unplug-timer">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ioscheduler_trace.unplug_timer</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ioscheduler_trace.unplug_timer</refname>
<refpurpose>
Fires when unplug timer associated
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ioscheduler_trace.unplug_timer </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_queue</parameter></term>
<listitem>
<para>
request queue
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
with a request queue expires.
</para>
</refsection>
</refentry></chapter>

<chapter id="scsi.stp"><title>SCSI Tapset</title><para>
This family of probe points is used to probe SCSI activities.  
It contains the following probe points:
</para><refentry id="API-scsi-iocompleted">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scsi.iocompleted</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scsi.iocompleted</refname>
<refpurpose>
SCSI mid-layer running the completion processing for block device I/O requests
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scsi.iocompleted </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">data_direction</parameter></term>
<listitem>
<para>
The data_direction specifies whether this command is from/to
the device
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">channel</parameter></term>
<listitem>
<para>
The channel number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">lun</parameter></term>
<listitem>
<para>
The lun number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">device_state_str</parameter></term>
<listitem>
<para>
The current state of the device, as a string
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">req_addr</parameter></term>
<listitem>
<para>
The current struct request pointer, as a number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">host_no</parameter></term>
<listitem>
<para>
The host number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">goodbytes</parameter></term>
<listitem>
<para>
The bytes completed
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">device_state</parameter></term>
<listitem>
<para>
The current state of the device
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev_id</parameter></term>
<listitem>
<para>
The scsi device id
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_direction_str</parameter></term>
<listitem>
<para>
Data direction, as a string
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-scsi-iodispatching">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scsi.iodispatching</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scsi.iodispatching</refname>
<refpurpose>
SCSI mid-layer dispatched low-level SCSI command
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scsi.iodispatching </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">data_direction_str</parameter></term>
<listitem>
<para>
Data direction, as a string
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">device_state</parameter></term>
<listitem>
<para>
The current state of the device
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">request_buffer</parameter></term>
<listitem>
<para>
The request buffer address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev_id</parameter></term>
<listitem>
<para>
The scsi device id
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">host_no</parameter></term>
<listitem>
<para>
The host number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">req_addr</parameter></term>
<listitem>
<para>
The current struct request pointer, as a number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">device_state_str</parameter></term>
<listitem>
<para>
The current state of the device, as a string
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">channel</parameter></term>
<listitem>
<para>
The channel number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">lun</parameter></term>
<listitem>
<para>
The lun number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">request_bufflen</parameter></term>
<listitem>
<para>
The request buffer length
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_direction</parameter></term>
<listitem>
<para>
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)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-scsi-iodone">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scsi.iodone</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scsi.iodone</refname>
<refpurpose>
SCSI command completed by low level driver and enqueued into the done queue.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scsi.iodone </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">scsi_timer_pending</parameter></term>
<listitem>
<para>
1 if a timer is pending on this request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_direction</parameter></term>
<listitem>
<para>
The data_direction specifies whether this command is
from/to the device.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">device_state_str</parameter></term>
<listitem>
<para>
The current state of the device, as a string
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">lun</parameter></term>
<listitem>
<para>
The lun number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">channel</parameter></term>
<listitem>
<para>
The channel number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">host_no</parameter></term>
<listitem>
<para>
The host number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">req_addr</parameter></term>
<listitem>
<para>
The current struct request pointer, as a number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_direction_str</parameter></term>
<listitem>
<para>
Data direction, as a string
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">device_state</parameter></term>
<listitem>
<para>
The current state of the device
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev_id</parameter></term>
<listitem>
<para>
The scsi device id
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-scsi-ioentry">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scsi.ioentry</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scsi.ioentry</refname>
<refpurpose>
Prepares a SCSI mid-layer request
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scsi.ioentry </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">device_state_str</parameter></term>
<listitem>
<para>
The current state of the device, as a string
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">disk_minor</parameter></term>
<listitem>
<para>
The minor number of the disk (-1 if no information)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">disk_major</parameter></term>
<listitem>
<para>
The major number of the disk (-1 if no information)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">device_state</parameter></term>
<listitem>
<para>
The current state of the device
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">req_addr</parameter></term>
<listitem>
<para>
The current struct request pointer, as a number
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-scsi-ioexecute">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scsi.ioexecute</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scsi.ioexecute</refname>
<refpurpose>
Create mid-layer SCSI request and wait for the result
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scsi.ioexecute </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">request_buffer</parameter></term>
<listitem>
<para>
The data buffer address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">host_no</parameter></term>
<listitem>
<para>
The host number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">device_state_str</parameter></term>
<listitem>
<para>
The current state of the device, as a string
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">timeout</parameter></term>
<listitem>
<para>
Request timeout in seconds
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">lun</parameter></term>
<listitem>
<para>
The lun number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">channel</parameter></term>
<listitem>
<para>
The channel number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">request_bufflen</parameter></term>
<listitem>
<para>
The data buffer buffer length
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">retries</parameter></term>
<listitem>
<para>
Number of times to retry request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_direction_str</parameter></term>
<listitem>
<para>
Data direction, as a string
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">device_state</parameter></term>
<listitem>
<para>
The current state of the device
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev_id</parameter></term>
<listitem>
<para>
The scsi device id
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_direction</parameter></term>
<listitem>
<para>
The data_direction specifies whether this command is
from/to the device.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-scsi-set-state">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::scsi.set_state</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::scsi.set_state</refname>
<refpurpose>
Order SCSI device state change
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">scsi.set_state </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">state_str</parameter></term>
<listitem>
<para>
The new state of the device, as a string
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
The new state of the device
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">lun</parameter></term>
<listitem>
<para>
The lun number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">channel</parameter></term>
<listitem>
<para>
The channel number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">old_state_str</parameter></term>
<listitem>
<para>
The current state of the device, as a string
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">host_no</parameter></term>
<listitem>
<para>
The host number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">old_state</parameter></term>
<listitem>
<para>
The current state of the device
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev_id</parameter></term>
<listitem>
<para>
The scsi device id
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry></chapter>

<chapter id="tty.stp"><title>TTY Tapset</title><para>
This family of probe points is used to probe TTY (Teletype) activities.
It contains the following probe points:
</para><refentry id="API-tty-init">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tty.init</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tty.init</refname>
<refpurpose>
Called when a tty is being initalized
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tty.init </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">driver_name</parameter></term>
<listitem>
<para>
the driver name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">module</parameter></term>
<listitem>
<para>
the module name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
the driver  .dev_name name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-tty-ioctl">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tty.ioctl</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tty.ioctl</refname>
<refpurpose>
called when a ioctl is request to the tty
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tty.ioctl </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">cmd</parameter></term>
<listitem>
<para>
the ioctl command
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
the file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">arg</parameter></term>
<listitem>
<para>
the ioctl argument
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-tty-open">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tty.open</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tty.open</refname>
<refpurpose>
Called when a tty is opened
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tty.open </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">file_mode</parameter></term>
<listitem>
<para>
the file mode
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">file_name</parameter></term>
<listitem>
<para>
the file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">inode_number</parameter></term>
<listitem>
<para>
the inode number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">inode_state</parameter></term>
<listitem>
<para>
the inode state
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">file_flags</parameter></term>
<listitem>
<para>
the file flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">inode_flags</parameter></term>
<listitem>
<para>
the inode flags
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-tty-poll">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tty.poll</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tty.poll</refname>
<refpurpose>
Called when a tty device is being polled
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tty.poll </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">wait_key</parameter></term>
<listitem>
<para>
the wait queue key
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">file_name</parameter></term>
<listitem>
<para>
the tty file name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-tty-read">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tty.read</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tty.read</refname>
<refpurpose>
called when a tty line will be read
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tty.read </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">buffer</parameter></term>
<listitem>
<para>
the buffer that will receive the characters
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nr</parameter></term>
<listitem>
<para>
The amount of characters to be read
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">file_name</parameter></term>
<listitem>
<para>
the file name lreated to the tty
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">driver_name</parameter></term>
<listitem>
<para>
the driver name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-tty-receive">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tty.receive</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tty.receive</refname>
<refpurpose>
called when a tty receives a message
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tty.receive </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">cp</parameter></term>
<listitem>
<para>
the buffer that was received
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">index</parameter></term>
<listitem>
<para>
The tty Index
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
the name of the module file
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fp</parameter></term>
<listitem>
<para>
The flag buffer
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">driver_name</parameter></term>
<listitem>
<para>
the driver name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">count</parameter></term>
<listitem>
<para>
The amount of characters received
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">id</parameter></term>
<listitem>
<para>
the tty id
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-tty-register">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tty.register</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tty.register</refname>
<refpurpose>
Called when a tty device is registred
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tty.register </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">module</parameter></term>
<listitem>
<para>
the module name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
the driver  .dev_name name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">index</parameter></term>
<listitem>
<para>
the tty index requested
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">driver_name</parameter></term>
<listitem>
<para>
the driver name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-tty-release">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tty.release</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tty.release</refname>
<refpurpose>
Called when the tty is closed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tty.release </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">file_name</parameter></term>
<listitem>
<para>
the file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">file_mode</parameter></term>
<listitem>
<para>
the file mode
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">inode_state</parameter></term>
<listitem>
<para>
the inode state
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">inode_number</parameter></term>
<listitem>
<para>
the inode number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">file_flags</parameter></term>
<listitem>
<para>
the file flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">inode_flags</parameter></term>
<listitem>
<para>
the inode flags
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-tty-resize">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tty.resize</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tty.resize</refname>
<refpurpose>
Called when a terminal resize happens
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tty.resize </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">new_ypixel</parameter></term>
<listitem>
<para>
the new ypixel value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">old_ypixel</parameter></term>
<listitem>
<para>
the old ypixel
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">old_col</parameter></term>
<listitem>
<para>
the old col value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">new_xpixel</parameter></term>
<listitem>
<para>
the new xpixel value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">new_col</parameter></term>
<listitem>
<para>
the new col value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">old_xpixel</parameter></term>
<listitem>
<para>
the old xpixel
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
the tty name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">old_row</parameter></term>
<listitem>
<para>
the old row value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">new_row</parameter></term>
<listitem>
<para>
the new row value
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-tty-unregister">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tty.unregister</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tty.unregister</refname>
<refpurpose>
Called when a tty device is being unregistered
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tty.unregister </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">index</parameter></term>
<listitem>
<para>
the tty index requested
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
the driver  .dev_name name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">module</parameter></term>
<listitem>
<para>
the module name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">driver_name</parameter></term>
<listitem>
<para>
the driver name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-tty-write">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tty.write</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tty.write</refname>
<refpurpose>
write to the tty line
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tty.write </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">buffer</parameter></term>
<listitem>
<para>
the buffer that will be written
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">file_name</parameter></term>
<listitem>
<para>
the file name lreated to the tty
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nr</parameter></term>
<listitem>
<para>
The amount of characters
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">driver_name</parameter></term>
<listitem>
<para>
the driver name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry></chapter>

<chapter id="irq.stp"><title>Interrupt Request (IRQ) Tapset</title><para>
This family of probe points is used to probe interrupt request
(IRQ) activities.
It contains the following probe points:
</para><refentry id="API-irq-handler-entry">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::irq_handler.entry</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::irq_handler.entry</refname>
<refpurpose>
Execution of interrupt handler starting
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">irq_handler.entry </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Flags for IRQ handler
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev_id</parameter></term>
<listitem>
<para>
Cookie to identify device
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">irq</parameter></term>
<listitem>
<para>
irq number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev_name</parameter></term>
<listitem>
<para>
name of device
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">thread</parameter></term>
<listitem>
<para>
thread pointer for threaded interrupts
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dir</parameter></term>
<listitem>
<para>
pointer to the proc/irq/NN/name entry
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">action</parameter></term>
<listitem>
<para>
struct irqaction* for this interrupt num
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">thread_flags</parameter></term>
<listitem>
<para>
Flags related to thread
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">handler</parameter></term>
<listitem>
<para>
interrupt handler function
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">thread_fn</parameter></term>
<listitem>
<para>
interrupt handler function for threaded interrupts
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">next_irqaction</parameter></term>
<listitem>
<para>
pointer to next irqaction for shared interrupts
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags_str</parameter></term>
<listitem>
<para>
symbolic string representation of IRQ flags
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-irq-handler-exit">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::irq_handler.exit</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::irq_handler.exit</refname>
<refpurpose>
Execution of interrupt handler completed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">irq_handler.exit </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dev_name</parameter></term>
<listitem>
<para>
name of device
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">irq</parameter></term>
<listitem>
<para>
interrupt number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
flags for IRQ handler
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev_id</parameter></term>
<listitem>
<para>
Cookie to identify device
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">handler</parameter></term>
<listitem>
<para>
interrupt handler function that was executed
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">thread_flags</parameter></term>
<listitem>
<para>
Flags related to thread
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">action</parameter></term>
<listitem>
<para>
struct irqaction*
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">thread</parameter></term>
<listitem>
<para>
thread pointer for threaded interrupts
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dir</parameter></term>
<listitem>
<para>
pointer to the proc/irq/NN/name entry
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags_str</parameter></term>
<listitem>
<para>
symbolic string representation of IRQ flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">next_irqaction</parameter></term>
<listitem>
<para>
pointer to next irqaction for shared interrupts
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">thread_fn</parameter></term>
<listitem>
<para>
interrupt handler function for threaded interrupts
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ret</parameter></term>
<listitem>
<para>
return value of the handler
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-softirq-entry">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::softirq.entry</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::softirq.entry</refname>
<refpurpose>
Execution of handler for a pending softirq starting
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">softirq.entry </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">vec</parameter></term>
<listitem>
<para>
softirq_action vector
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">action</parameter></term>
<listitem>
<para>
pointer to softirq handler just about to execute
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vec_nr</parameter></term>
<listitem>
<para>
softirq vector number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">h</parameter></term>
<listitem>
<para>
struct softirq_action* for current pending softirq
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-softirq-exit">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::softirq.exit</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::softirq.exit</refname>
<refpurpose>
Execution of handler for a pending softirq completed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">softirq.exit </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">h</parameter></term>
<listitem>
<para>
struct softirq_action* for just executed softirq
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vec_nr</parameter></term>
<listitem>
<para>
softirq vector number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">action</parameter></term>
<listitem>
<para>
pointer to softirq handler that just finished execution
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vec</parameter></term>
<listitem>
<para>
softirq_action vector
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-workqueue-create">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::workqueue.create</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::workqueue.create</refname>
<refpurpose>
Creating a new workqueue
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">workqueue.create </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">wq_thread</parameter></term>
<listitem>
<para>
task_struct of the workqueue thread
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">cpu</parameter></term>
<listitem>
<para>
cpu for which the worker thread is created
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-workqueue-destroy">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::workqueue.destroy</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::workqueue.destroy</refname>
<refpurpose>
Destroying workqueue
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">workqueue.destroy </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">wq_thread</parameter></term>
<listitem>
<para>
task_struct of the workqueue thread
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-workqueue-execute">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::workqueue.execute</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::workqueue.execute</refname>
<refpurpose>
Executing deferred work
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">workqueue.execute </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">work_func</parameter></term>
<listitem>
<para>
pointer to handler function
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">wq_thread</parameter></term>
<listitem>
<para>
task_struct of the workqueue thread
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">work</parameter></term>
<listitem>
<para>
work_struct* being executed
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-workqueue-insert">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::workqueue.insert</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::workqueue.insert</refname>
<refpurpose>
Queuing work on a workqueue
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">workqueue.insert </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">work_func</parameter></term>
<listitem>
<para>
pointer to handler function
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">wq_thread</parameter></term>
<listitem>
<para>
task_struct of the workqueue thread
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">work</parameter></term>
<listitem>
<para>
work_struct* being queued
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry></chapter>

<chapter id="networking.stp"><title>Networking Tapset</title><para>
This family of probe points is used to probe the activities of
the network device and protocol layers.
</para><refentry id="API-format-ipaddr">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::format_ipaddr</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::format_ipaddr</refname>
<refpurpose>
Returns a string representation for an IP address
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
format_ipaddr:string(addr:long,family:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
the IP address family (either AF_INET or AF_INET6)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-htonl">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::htonl</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::htonl</refname>
<refpurpose>
Convert 32-bit long from host to network order
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
htonl:long(x:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">x</parameter></term>
<listitem>
<para>
Value to convert
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-htonll">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::htonll</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::htonll</refname>
<refpurpose>
Convert 64-bit long long from host to network order
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
htonll:long(x:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">x</parameter></term>
<listitem>
<para>
Value to convert
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-htons">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::htons</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::htons</refname>
<refpurpose>
Convert 16-bit short from host to network order
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
htons:long(x:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">x</parameter></term>
<listitem>
<para>
Value to convert
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-ip-ntop">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ip_ntop</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ip_ntop</refname>
<refpurpose>
Returns a string representation for an IPv4 address
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ip_ntop:string(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the IPv4 address represented as an integer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-ntohl">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ntohl</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ntohl</refname>
<refpurpose>
Convert 32-bit long from network to host order
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ntohl:long(x:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">x</parameter></term>
<listitem>
<para>
Value to convert
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-ntohll">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ntohll</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ntohll</refname>
<refpurpose>
Convert 64-bit long long from network to host order
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ntohll:long(x:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">x</parameter></term>
<listitem>
<para>
Value to convert
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-ntohs">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ntohs</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ntohs</refname>
<refpurpose>
Convert 16-bit short from network to host order
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ntohs:long(x:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">x</parameter></term>
<listitem>
<para>
Value to convert
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netdev-change-mac">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netdev.change_mac</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netdev.change_mac</refname>
<refpurpose>
Called when the netdev_name has the MAC changed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netdev.change_mac </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dev_name</parameter></term>
<listitem>
<para>
The device that will have the MAC changed
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">new_mac</parameter></term>
<listitem>
<para>
The new MAC address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">old_mac</parameter></term>
<listitem>
<para>
The current MAC address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">mac_len</parameter></term>
<listitem>
<para>
The MAC length
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netdev-change-mtu">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netdev.change_mtu</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netdev.change_mtu</refname>
<refpurpose>
Called when the netdev MTU is changed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netdev.change_mtu </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dev_name</parameter></term>
<listitem>
<para>
The device that will have the MTU changed
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">old_mtu</parameter></term>
<listitem>
<para>
The current MTU
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">new_mtu</parameter></term>
<listitem>
<para>
The new MTU
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netdev-change-rx-flag">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netdev.change_rx_flag</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netdev.change_rx_flag</refname>
<refpurpose>
Called when the device RX flag will be changed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netdev.change_rx_flag </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dev_name</parameter></term>
<listitem>
<para>
The device that will be changed
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
The new flags
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netdev-close">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netdev.close</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netdev.close</refname>
<refpurpose>
Called when the device is closed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netdev.close </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dev_name</parameter></term>
<listitem>
<para>
The device that is going to be closed
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netdev-get-stats">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netdev.get_stats</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netdev.get_stats</refname>
<refpurpose>
Called when someone asks the device statistics
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netdev.get_stats </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dev_name</parameter></term>
<listitem>
<para>
The device that is going to provide the statistics
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netdev-hard-transmit">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netdev.hard_transmit</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netdev.hard_transmit</refname>
<refpurpose>
Called when the devices is going to TX (hard)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netdev.hard_transmit </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
The protocol used in the transmission
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">truesize</parameter></term>
<listitem>
<para>
The size of the data to be transmitted.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">length</parameter></term>
<listitem>
<para>
The length of the transmit buffer.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev_name</parameter></term>
<listitem>
<para>
The device scheduled to transmit
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netdev-ioctl">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netdev.ioctl</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netdev.ioctl</refname>
<refpurpose>
Called when the device suffers an IOCTL
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netdev.ioctl </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">arg</parameter></term>
<listitem>
<para>
The IOCTL argument (usually the netdev interface)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">cmd</parameter></term>
<listitem>
<para>
The IOCTL request
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netdev-open">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netdev.open</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netdev.open</refname>
<refpurpose>
Called when the device is opened
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netdev.open </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dev_name</parameter></term>
<listitem>
<para>
The device that is going to be opened
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netdev-receive">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netdev.receive</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netdev.receive</refname>
<refpurpose>
Data received from network device.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netdev.receive </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dev_name</parameter></term>
<listitem>
<para>
The name of the device. e.g: eth0, ath1.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">length</parameter></term>
<listitem>
<para>
The length of the receiving buffer.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol of received packet.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netdev-register">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netdev.register</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netdev.register</refname>
<refpurpose>
Called when the device is registered
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netdev.register </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dev_name</parameter></term>
<listitem>
<para>
The device that is going to be registered
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netdev-rx">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netdev.rx</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netdev.rx</refname>
<refpurpose>
Called when the device is going to receive a packet
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netdev.rx </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dev_name</parameter></term>
<listitem>
<para>
The device received the packet
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
The packet protocol
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netdev-set-promiscuity">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netdev.set_promiscuity</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netdev.set_promiscuity</refname>
<refpurpose>
Called when the device enters/leaves promiscuity
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netdev.set_promiscuity </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">inc</parameter></term>
<listitem>
<para>
Count the number of promiscuity openers
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">enable</parameter></term>
<listitem>
<para>
If the device is entering promiscuity mode
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">disable</parameter></term>
<listitem>
<para>
If the device is leaving promiscuity mode
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev_name</parameter></term>
<listitem>
<para>
The device that is entering/leaving promiscuity mode
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netdev-transmit">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netdev.transmit</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netdev.transmit</refname>
<refpurpose>
Network device transmitting buffer
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netdev.transmit </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">truesize</parameter></term>
<listitem>
<para>
The size of the data to be transmitted.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
The protocol of this packet(defined in include/linux/if_ether.h).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">length</parameter></term>
<listitem>
<para>
The length of the transmit buffer.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev_name</parameter></term>
<listitem>
<para>
The name of the device. e.g: eth0, ath1.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netdev-unregister">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netdev.unregister</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netdev.unregister</refname>
<refpurpose>
Called when the device is being unregistered
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netdev.unregister </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dev_name</parameter></term>
<listitem>
<para>
The device that is going to be unregistered
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netfilter-arp-forward">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netfilter.arp.forward</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netfilter.arp.forward</refname>
<refpurpose>
- Called for each ARP packet to be forwarded
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netfilter.arp.forward </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">ar_pro</parameter></term>
<listitem>
<para>
Format of protocol address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_hrd</parameter></term>
<listitem>
<para>
Format of hardware address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev</parameter></term>
<listitem>
<para>
Address of net_device representing output device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pf</parameter></term>
<listitem>
<para>
Protocol family -- always <quote>arp</quote>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">arphdr</parameter></term>
<listitem>
<para>
Address of ARP header
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_data</parameter></term>
<listitem>
<para>
Address of ARP packet data region (after the header)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stolen</parameter></term>
<listitem>
<para>
Constant used to signify a 'stolen' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stop</parameter></term>
<listitem>
<para>
Constant used to signify a 'stop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev</parameter></term>
<listitem>
<para>
Address of net_device representing input device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_str</parameter></term>
<listitem>
<para>
A string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_tha</parameter></term>
<listitem>
<para>
Ethernet+IP only (ar_pro==0x800): target hardware (MAC) address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev_name</parameter></term>
<listitem>
<para>
Name of network device packet was received on (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_sip</parameter></term>
<listitem>
<para>
Ethernet+IP only (ar_pro==0x800): source IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_drop</parameter></term>
<listitem>
<para>
Constant used to signify a 'drop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_pln</parameter></term>
<listitem>
<para>
Length of protocol address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_accept</parameter></term>
<listitem>
<para>
Constant used to signify an 'accept' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_hln</parameter></term>
<listitem>
<para>
Length of hardware address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_op</parameter></term>
<listitem>
<para>
ARP opcode (command)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_repeat</parameter></term>
<listitem>
<para>
Constant used to signify a 'repeat' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">length</parameter></term>
<listitem>
<para>
The length of the packet buffer contents, in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_queue</parameter></term>
<listitem>
<para>
Constant used to signify a 'queue' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_hex</parameter></term>
<listitem>
<para>
A hexadecimal string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_sha</parameter></term>
<listitem>
<para>
Ethernet+IP only (ar_pro==0x800): source hardware (MAC) address 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_tip</parameter></term>
<listitem>
<para>
Ethernet+IP only (ar_pro==0x800): target IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev_name</parameter></term>
<listitem>
<para>
Name of network device packet will be routed to (if known)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netfilter-arp-in">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netfilter.arp.in</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netfilter.arp.in</refname>
<refpurpose>
- Called for each incoming ARP packet
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netfilter.arp.in </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">data_str</parameter></term>
<listitem>
<para>
A string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev</parameter></term>
<listitem>
<para>
Address of net_device representing input device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stop</parameter></term>
<listitem>
<para>
Constant used to signify a 'stop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stolen</parameter></term>
<listitem>
<para>
Constant used to signify a 'stolen' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_data</parameter></term>
<listitem>
<para>
Address of ARP packet data region (after the header)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">arphdr</parameter></term>
<listitem>
<para>
Address of ARP header
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pf</parameter></term>
<listitem>
<para>
Protocol family -- always <quote>arp</quote>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_hrd</parameter></term>
<listitem>
<para>
Format of hardware address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev</parameter></term>
<listitem>
<para>
Address of net_device representing output device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_pro</parameter></term>
<listitem>
<para>
Format of protocol address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev_name</parameter></term>
<listitem>
<para>
Name of network device packet will be routed to (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_tip</parameter></term>
<listitem>
<para>
Ethernet+IP only (ar_pro==0x800): target IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_sha</parameter></term>
<listitem>
<para>
Ethernet+IP only (ar_pro==0x800): source hardware (MAC) address 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_hex</parameter></term>
<listitem>
<para>
A hexadecimal string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_queue</parameter></term>
<listitem>
<para>
Constant used to signify a 'queue' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_repeat</parameter></term>
<listitem>
<para>
Constant used to signify a 'repeat' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">length</parameter></term>
<listitem>
<para>
The length of the packet buffer contents, in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_accept</parameter></term>
<listitem>
<para>
Constant used to signify an 'accept' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_hln</parameter></term>
<listitem>
<para>
Length of hardware address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_op</parameter></term>
<listitem>
<para>
ARP opcode (command)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_pln</parameter></term>
<listitem>
<para>
Length of protocol address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_sip</parameter></term>
<listitem>
<para>
Ethernet+IP only (ar_pro==0x800): source IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_drop</parameter></term>
<listitem>
<para>
Constant used to signify a 'drop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev_name</parameter></term>
<listitem>
<para>
Name of network device packet was received on (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_tha</parameter></term>
<listitem>
<para>
Ethernet+IP only (ar_pro==0x800): target hardware (MAC) address
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netfilter-arp-out">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netfilter.arp.out</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netfilter.arp.out</refname>
<refpurpose>
- Called for each outgoing ARP packet
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netfilter.arp.out </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">ar_tip</parameter></term>
<listitem>
<para>
Ethernet+IP only (ar_pro==0x800): target IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_sha</parameter></term>
<listitem>
<para>
Ethernet+IP only (ar_pro==0x800): source hardware (MAC) address 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_hex</parameter></term>
<listitem>
<para>
A hexadecimal string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev_name</parameter></term>
<listitem>
<para>
Name of network device packet will be routed to (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_pln</parameter></term>
<listitem>
<para>
Length of protocol address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_sip</parameter></term>
<listitem>
<para>
Ethernet+IP only (ar_pro==0x800): source IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_drop</parameter></term>
<listitem>
<para>
Constant used to signify a 'drop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev_name</parameter></term>
<listitem>
<para>
Name of network device packet was received on (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_tha</parameter></term>
<listitem>
<para>
Ethernet+IP only (ar_pro==0x800): target hardware (MAC) address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_queue</parameter></term>
<listitem>
<para>
Constant used to signify a 'queue' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_repeat</parameter></term>
<listitem>
<para>
Constant used to signify a 'repeat' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">length</parameter></term>
<listitem>
<para>
The length of the packet buffer contents, in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_accept</parameter></term>
<listitem>
<para>
Constant used to signify an 'accept' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_hln</parameter></term>
<listitem>
<para>
Length of hardware address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_op</parameter></term>
<listitem>
<para>
ARP opcode (command)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev</parameter></term>
<listitem>
<para>
Address of net_device representing input device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stop</parameter></term>
<listitem>
<para>
Constant used to signify a 'stop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_str</parameter></term>
<listitem>
<para>
A string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_hrd</parameter></term>
<listitem>
<para>
Format of hardware address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev</parameter></term>
<listitem>
<para>
Address of net_device representing output device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_pro</parameter></term>
<listitem>
<para>
Format of protocol address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stolen</parameter></term>
<listitem>
<para>
Constant used to signify a 'stolen' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ar_data</parameter></term>
<listitem>
<para>
Address of ARP packet data region (after the header)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">arphdr</parameter></term>
<listitem>
<para>
Address of ARP header
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pf</parameter></term>
<listitem>
<para>
Protocol family -- always <quote>arp</quote>
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netfilter-bridge-forward">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netfilter.bridge.forward</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netfilter.bridge.forward</refname>
<refpurpose>
Called on an incoming bridging packet destined for some other computer
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netfilter.bridge.forward </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">br_msg</parameter></term>
<listitem>
<para>
Message age in 1/256 secs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_type</parameter></term>
<listitem>
<para>
BPDU type
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stolen</parameter></term>
<listitem>
<para>
Constant used to signify a 'stolen' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pf</parameter></term>
<listitem>
<para>
Protocol family -- always <quote>bridge</quote>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev</parameter></term>
<listitem>
<para>
Address of net_device representing output device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_rmac</parameter></term>
<listitem>
<para>
Root bridge MAC address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_rid</parameter></term>
<listitem>
<para>
Identity of root bridge
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_bid</parameter></term>
<listitem>
<para>
Identity of bridge
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_str</parameter></term>
<listitem>
<para>
A string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">brhdr</parameter></term>
<listitem>
<para>
Address of bridge header
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stop</parameter></term>
<listitem>
<para>
Constant used to signify a 'stop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Packet protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev</parameter></term>
<listitem>
<para>
Address of net_device representing input device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_poid</parameter></term>
<listitem>
<para>
Port identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">length</parameter></term>
<listitem>
<para>
The length of the packet buffer contents, in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_repeat</parameter></term>
<listitem>
<para>
Constant used to signify a 'repeat' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">llcproto_stp</parameter></term>
<listitem>
<para>
Constant used to signify Bridge Spanning Tree Protocol packet
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_queue</parameter></term>
<listitem>
<para>
Constant used to signify a 'queue' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_accept</parameter></term>
<listitem>
<para>
Constant used to signify an 'accept' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_max</parameter></term>
<listitem>
<para>
Max age in 1/256 secs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_drop</parameter></term>
<listitem>
<para>
Constant used to signify a 'drop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_vid</parameter></term>
<listitem>
<para>
Protocol version identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_mac</parameter></term>
<listitem>
<para>
Bridge MAC address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev_name</parameter></term>
<listitem>
<para>
Name of network device packet was received on (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">llcpdu</parameter></term>
<listitem>
<para>
Address of LLC Protocol Data Unit
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_fd</parameter></term>
<listitem>
<para>
Forward delay in 1/256 secs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev_name</parameter></term>
<listitem>
<para>
Name of network device packet will be routed to (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_htime</parameter></term>
<listitem>
<para>
Hello time in 1/256 secs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_prid</parameter></term>
<listitem>
<para>
Protocol identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_flags</parameter></term>
<listitem>
<para>
BPDU flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_cost</parameter></term>
<listitem>
<para>
Total cost from transmitting bridge to root
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_hex</parameter></term>
<listitem>
<para>
A hexadecimal string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netfilter-bridge-local-in">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netfilter.bridge.local_in</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netfilter.bridge.local_in</refname>
<refpurpose>
Called on a bridging packet destined for the local computer
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netfilter.bridge.local_in </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">br_msg</parameter></term>
<listitem>
<para>
Message age in 1/256 secs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_type</parameter></term>
<listitem>
<para>
BPDU type
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stolen</parameter></term>
<listitem>
<para>
Constant used to signify a 'stolen' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pf</parameter></term>
<listitem>
<para>
Protocol family -- always <quote>bridge</quote>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev</parameter></term>
<listitem>
<para>
Address of net_device representing output device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_rmac</parameter></term>
<listitem>
<para>
Root bridge MAC address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_rid</parameter></term>
<listitem>
<para>
Identity of root bridge
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_bid</parameter></term>
<listitem>
<para>
Identity of bridge
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_str</parameter></term>
<listitem>
<para>
A string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">brhdr</parameter></term>
<listitem>
<para>
Address of bridge header
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stop</parameter></term>
<listitem>
<para>
Constant used to signify a 'stop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Packet protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev</parameter></term>
<listitem>
<para>
Address of net_device representing input device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_poid</parameter></term>
<listitem>
<para>
Port identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">length</parameter></term>
<listitem>
<para>
The length of the packet buffer contents, in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_repeat</parameter></term>
<listitem>
<para>
Constant used to signify a 'repeat' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_queue</parameter></term>
<listitem>
<para>
Constant used to signify a 'queue' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">llcproto_stp</parameter></term>
<listitem>
<para>
Constant used to signify Bridge Spanning Tree Protocol packet
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_max</parameter></term>
<listitem>
<para>
Max age in 1/256 secs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_accept</parameter></term>
<listitem>
<para>
Constant used to signify an 'accept' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_drop</parameter></term>
<listitem>
<para>
Constant used to signify a 'drop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_vid</parameter></term>
<listitem>
<para>
Protocol version identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_mac</parameter></term>
<listitem>
<para>
Bridge MAC address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">llcpdu</parameter></term>
<listitem>
<para>
Address of LLC Protocol Data Unit
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev_name</parameter></term>
<listitem>
<para>
Name of network device packet was received on (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_fd</parameter></term>
<listitem>
<para>
Forward delay in 1/256 secs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev_name</parameter></term>
<listitem>
<para>
Name of network device packet will be routed to (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_prid</parameter></term>
<listitem>
<para>
Protocol identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_htime</parameter></term>
<listitem>
<para>
Hello time in 1/256 secs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_flags</parameter></term>
<listitem>
<para>
BPDU flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_cost</parameter></term>
<listitem>
<para>
Total cost from transmitting bridge to root
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_hex</parameter></term>
<listitem>
<para>
A hexadecimal string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netfilter-bridge-local-out">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netfilter.bridge.local_out</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netfilter.bridge.local_out</refname>
<refpurpose>
Called on a bridging packet coming from a local process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netfilter.bridge.local_out </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">pf</parameter></term>
<listitem>
<para>
Protocol family -- always <quote>bridge</quote>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_type</parameter></term>
<listitem>
<para>
BPDU type
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_msg</parameter></term>
<listitem>
<para>
Message age in 1/256 secs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stolen</parameter></term>
<listitem>
<para>
Constant used to signify a 'stolen' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_rmac</parameter></term>
<listitem>
<para>
Root bridge MAC address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_rid</parameter></term>
<listitem>
<para>
Identity of root bridge
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_bid</parameter></term>
<listitem>
<para>
Identity of bridge
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev</parameter></term>
<listitem>
<para>
Address of net_device representing output device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">brhdr</parameter></term>
<listitem>
<para>
Address of bridge header
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_str</parameter></term>
<listitem>
<para>
A string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_poid</parameter></term>
<listitem>
<para>
Port identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Packet protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stop</parameter></term>
<listitem>
<para>
Constant used to signify a 'stop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev</parameter></term>
<listitem>
<para>
Address of net_device representing input device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_max</parameter></term>
<listitem>
<para>
Max age in 1/256 secs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_accept</parameter></term>
<listitem>
<para>
Constant used to signify an 'accept' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_repeat</parameter></term>
<listitem>
<para>
Constant used to signify a 'repeat' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">length</parameter></term>
<listitem>
<para>
The length of the packet buffer contents, in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_queue</parameter></term>
<listitem>
<para>
Constant used to signify a 'queue' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">llcproto_stp</parameter></term>
<listitem>
<para>
Constant used to signify Bridge Spanning Tree Protocol packet
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_vid</parameter></term>
<listitem>
<para>
Protocol version identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_fd</parameter></term>
<listitem>
<para>
Forward delay in 1/256 secs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_mac</parameter></term>
<listitem>
<para>
Bridge MAC address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev_name</parameter></term>
<listitem>
<para>
Name of network device packet was received on (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">llcpdu</parameter></term>
<listitem>
<para>
Address of LLC Protocol Data Unit
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_drop</parameter></term>
<listitem>
<para>
Constant used to signify a 'drop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_flags</parameter></term>
<listitem>
<para>
BPDU flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_prid</parameter></term>
<listitem>
<para>
Protocol identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_htime</parameter></term>
<listitem>
<para>
Hello time in 1/256 secs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev_name</parameter></term>
<listitem>
<para>
Name of network device packet will be routed to (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_hex</parameter></term>
<listitem>
<para>
A hexadecimal string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_cost</parameter></term>
<listitem>
<para>
Total cost from transmitting bridge to root
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netfilter-bridge-post-routing">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netfilter.bridge.post_routing</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netfilter.bridge.post_routing</refname>
<refpurpose>
- Called before a bridging packet hits the wire
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netfilter.bridge.post_routing </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">nf_drop</parameter></term>
<listitem>
<para>
Constant used to signify a 'drop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_fd</parameter></term>
<listitem>
<para>
Forward delay in 1/256 secs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">llcpdu</parameter></term>
<listitem>
<para>
Address of LLC Protocol Data Unit
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_mac</parameter></term>
<listitem>
<para>
Bridge MAC address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev_name</parameter></term>
<listitem>
<para>
Name of network device packet was received on (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_vid</parameter></term>
<listitem>
<para>
Protocol version identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_queue</parameter></term>
<listitem>
<para>
Constant used to signify a 'queue' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">llcproto_stp</parameter></term>
<listitem>
<para>
Constant used to signify Bridge Spanning Tree Protocol packet
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_repeat</parameter></term>
<listitem>
<para>
Constant used to signify a 'repeat' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">length</parameter></term>
<listitem>
<para>
The length of the packet buffer contents, in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_accept</parameter></term>
<listitem>
<para>
Constant used to signify an 'accept' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_max</parameter></term>
<listitem>
<para>
Max age in 1/256 secs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_cost</parameter></term>
<listitem>
<para>
Total cost from transmitting bridge to root
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_hex</parameter></term>
<listitem>
<para>
A hexadecimal string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev_name</parameter></term>
<listitem>
<para>
Name of network device packet will be routed to (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_flags</parameter></term>
<listitem>
<para>
BPDU flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_prid</parameter></term>
<listitem>
<para>
Protocol identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_htime</parameter></term>
<listitem>
<para>
Hello time in 1/256 secs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev</parameter></term>
<listitem>
<para>
Address of net_device representing output device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_rid</parameter></term>
<listitem>
<para>
Identity of root bridge
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_bid</parameter></term>
<listitem>
<para>
Identity of bridge
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_rmac</parameter></term>
<listitem>
<para>
Root bridge MAC address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stolen</parameter></term>
<listitem>
<para>
Constant used to signify a 'stolen' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_type</parameter></term>
<listitem>
<para>
BPDU type
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_msg</parameter></term>
<listitem>
<para>
Message age in 1/256 secs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pf</parameter></term>
<listitem>
<para>
Protocol family -- always <quote>bridge</quote>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev</parameter></term>
<listitem>
<para>
Address of net_device representing input device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Packet protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stop</parameter></term>
<listitem>
<para>
Constant used to signify a 'stop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_poid</parameter></term>
<listitem>
<para>
Port identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">brhdr</parameter></term>
<listitem>
<para>
Address of bridge header
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_str</parameter></term>
<listitem>
<para>
A string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netfilter-bridge-pre-routing">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netfilter.bridge.pre_routing</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netfilter.bridge.pre_routing</refname>
<refpurpose>
- Called before a bridging packet is routed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netfilter.bridge.pre_routing </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">nf_drop</parameter></term>
<listitem>
<para>
Constant used to signify a 'drop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_mac</parameter></term>
<listitem>
<para>
Bridge MAC address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">llcpdu</parameter></term>
<listitem>
<para>
Address of LLC Protocol Data Unit
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev_name</parameter></term>
<listitem>
<para>
Name of network device packet was received on (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_fd</parameter></term>
<listitem>
<para>
Forward delay in 1/256 secs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_vid</parameter></term>
<listitem>
<para>
Protocol version identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">llcproto_stp</parameter></term>
<listitem>
<para>
Constant used to signify Bridge Spanning Tree Protocol packet
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_queue</parameter></term>
<listitem>
<para>
Constant used to signify a 'queue' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_repeat</parameter></term>
<listitem>
<para>
Constant used to signify a 'repeat' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">length</parameter></term>
<listitem>
<para>
The length of the packet buffer contents, in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_max</parameter></term>
<listitem>
<para>
Max age in 1/256 secs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_accept</parameter></term>
<listitem>
<para>
Constant used to signify an 'accept' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_cost</parameter></term>
<listitem>
<para>
Total cost from transmitting bridge to root
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_hex</parameter></term>
<listitem>
<para>
A hexadecimal string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev_name</parameter></term>
<listitem>
<para>
Name of network device packet will be routed to (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_prid</parameter></term>
<listitem>
<para>
Protocol identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_htime</parameter></term>
<listitem>
<para>
Hello time in 1/256 secs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_flags</parameter></term>
<listitem>
<para>
BPDU flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev</parameter></term>
<listitem>
<para>
Address of net_device representing output device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_rid</parameter></term>
<listitem>
<para>
Identity of root bridge
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_bid</parameter></term>
<listitem>
<para>
Identity of bridge
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_rmac</parameter></term>
<listitem>
<para>
Root bridge MAC address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stolen</parameter></term>
<listitem>
<para>
Constant used to signify a 'stolen' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_msg</parameter></term>
<listitem>
<para>
Message age in 1/256 secs
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_type</parameter></term>
<listitem>
<para>
BPDU type
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pf</parameter></term>
<listitem>
<para>
Protocol family -- always <quote>bridge</quote>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev</parameter></term>
<listitem>
<para>
Address of net_device representing input device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stop</parameter></term>
<listitem>
<para>
Constant used to signify a 'stop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Packet protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">br_poid</parameter></term>
<listitem>
<para>
Port identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_str</parameter></term>
<listitem>
<para>
A string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">brhdr</parameter></term>
<listitem>
<para>
Address of bridge header
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netfilter-ip-forward">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netfilter.ip.forward</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netfilter.ip.forward</refname>
<refpurpose>
Called on an incoming IP packet addressed to some other computer
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netfilter.ip.forward </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">rst</parameter></term>
<listitem>
<para>
TCP RST flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stop</parameter></term>
<listitem>
<para>
Constant used to signify a 'stop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Packet protocol from driver (ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">saddr</parameter></term>
<listitem>
<para>
A string representing the source IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">iphdr</parameter></term>
<listitem>
<para>
Address of IP header
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev</parameter></term>
<listitem>
<para>
Address of net_device representing input device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_str</parameter></term>
<listitem>
<para>
A string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ipproto_udp</parameter></term>
<listitem>
<para>
Constant used to signify that the packet protocol is UDP
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ack</parameter></term>
<listitem>
<para>
TCP ACK flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">daddr</parameter></term>
<listitem>
<para>
A string representing the destination IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev</parameter></term>
<listitem>
<para>
Address of net_device representing output device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pf</parameter></term>
<listitem>
<para>
Protocol family -- either <quote>ipv4</quote> or <quote>ipv6</quote>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stolen</parameter></term>
<listitem>
<para>
Constant used to signify a 'stolen' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_hex</parameter></term>
<listitem>
<para>
A hexadecimal string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sport</parameter></term>
<listitem>
<para>
TCP or UDP source port (ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">syn</parameter></term>
<listitem>
<para>
TCP SYN flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev_name</parameter></term>
<listitem>
<para>
Name of network device packet will be routed to (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ipproto_tcp</parameter></term>
<listitem>
<para>
Constant used to signify that the packet protocol is TCP
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev_name</parameter></term>
<listitem>
<para>
Name of network device packet was received on (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dport</parameter></term>
<listitem>
<para>
TCP or UDP destination port (ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fin</parameter></term>
<listitem>
<para>
TCP FIN flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_drop</parameter></term>
<listitem>
<para>
Constant used to signify a 'drop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">urg</parameter></term>
<listitem>
<para>
TCP URG flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
IP address family
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_accept</parameter></term>
<listitem>
<para>
Constant used to signify an 'accept' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">psh</parameter></term>
<listitem>
<para>
TCP PSH flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_repeat</parameter></term>
<listitem>
<para>
Constant used to signify a 'repeat' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">length</parameter></term>
<listitem>
<para>
The length of the packet buffer contents, in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_queue</parameter></term>
<listitem>
<para>
Constant used to signify a 'queue' verdict
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netfilter-ip-local-in">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netfilter.ip.local_in</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netfilter.ip.local_in</refname>
<refpurpose>
Called on an incoming IP packet addressed to the local computer
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netfilter.ip.local_in </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">rst</parameter></term>
<listitem>
<para>
TCP RST flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">iphdr</parameter></term>
<listitem>
<para>
Address of IP header
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev</parameter></term>
<listitem>
<para>
Address of net_device representing input device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stop</parameter></term>
<listitem>
<para>
Constant used to signify a 'stop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Packet protocol from driver (ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">saddr</parameter></term>
<listitem>
<para>
A string representing the source IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_str</parameter></term>
<listitem>
<para>
A string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ack</parameter></term>
<listitem>
<para>
TCP ACK flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ipproto_udp</parameter></term>
<listitem>
<para>
Constant used to signify that the packet protocol is UDP
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">daddr</parameter></term>
<listitem>
<para>
A string representing the destination IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev</parameter></term>
<listitem>
<para>
Address of net_device representing output device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pf</parameter></term>
<listitem>
<para>
Protocol family -- either <quote>ipv4</quote> or <quote>ipv6</quote>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stolen</parameter></term>
<listitem>
<para>
Constant used to signify a 'stolen' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_hex</parameter></term>
<listitem>
<para>
A hexadecimal string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sport</parameter></term>
<listitem>
<para>
TCP or UDP source port (ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">syn</parameter></term>
<listitem>
<para>
TCP SYN flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev_name</parameter></term>
<listitem>
<para>
Name of network device packet will be routed to (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dport</parameter></term>
<listitem>
<para>
TCP or UDP destination port (ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev_name</parameter></term>
<listitem>
<para>
Name of network device packet was received on (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ipproto_tcp</parameter></term>
<listitem>
<para>
Constant used to signify that the packet protocol is TCP
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">urg</parameter></term>
<listitem>
<para>
TCP URG flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
IP address family
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fin</parameter></term>
<listitem>
<para>
TCP FIN flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_drop</parameter></term>
<listitem>
<para>
Constant used to signify a 'drop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_accept</parameter></term>
<listitem>
<para>
Constant used to signify an 'accept' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">psh</parameter></term>
<listitem>
<para>
TCP PSH flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_queue</parameter></term>
<listitem>
<para>
Constant used to signify a 'queue' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">length</parameter></term>
<listitem>
<para>
The length of the packet buffer contents, in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_repeat</parameter></term>
<listitem>
<para>
Constant used to signify a 'repeat' verdict
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netfilter-ip-local-out">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netfilter.ip.local_out</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netfilter.ip.local_out</refname>
<refpurpose>
Called on an outgoing IP packet
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netfilter.ip.local_out </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">nf_queue</parameter></term>
<listitem>
<para>
Constant used to signify a 'queue' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">length</parameter></term>
<listitem>
<para>
The length of the packet buffer contents, in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_repeat</parameter></term>
<listitem>
<para>
Constant used to signify a 'repeat' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">psh</parameter></term>
<listitem>
<para>
TCP PSH flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_accept</parameter></term>
<listitem>
<para>
Constant used to signify an 'accept' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">urg</parameter></term>
<listitem>
<para>
TCP URG flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
IP address family
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_drop</parameter></term>
<listitem>
<para>
Constant used to signify a 'drop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fin</parameter></term>
<listitem>
<para>
TCP FIN flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dport</parameter></term>
<listitem>
<para>
TCP or UDP destination port (ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev_name</parameter></term>
<listitem>
<para>
Name of network device packet was received on (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ipproto_tcp</parameter></term>
<listitem>
<para>
Constant used to signify that the packet protocol is TCP
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev_name</parameter></term>
<listitem>
<para>
Name of network device packet will be routed to (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">syn</parameter></term>
<listitem>
<para>
TCP SYN flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sport</parameter></term>
<listitem>
<para>
TCP or UDP source port (ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_hex</parameter></term>
<listitem>
<para>
A hexadecimal string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stolen</parameter></term>
<listitem>
<para>
Constant used to signify a 'stolen' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pf</parameter></term>
<listitem>
<para>
Protocol family -- either <quote>ipv4</quote> or <quote>ipv6</quote>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev</parameter></term>
<listitem>
<para>
Address of net_device representing output device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">daddr</parameter></term>
<listitem>
<para>
A string representing the destination IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ack</parameter></term>
<listitem>
<para>
TCP ACK flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ipproto_udp</parameter></term>
<listitem>
<para>
Constant used to signify that the packet protocol is UDP
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_str</parameter></term>
<listitem>
<para>
A string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev</parameter></term>
<listitem>
<para>
Address of net_device representing input device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">iphdr</parameter></term>
<listitem>
<para>
Address of IP header
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">saddr</parameter></term>
<listitem>
<para>
A string representing the source IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Packet protocol from driver (ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stop</parameter></term>
<listitem>
<para>
Constant used to signify a 'stop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rst</parameter></term>
<listitem>
<para>
TCP RST flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netfilter-ip-post-routing">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netfilter.ip.post_routing</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netfilter.ip.post_routing</refname>
<refpurpose>
Called immediately before an outgoing IP packet leaves the computer
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netfilter.ip.post_routing </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">ipproto_tcp</parameter></term>
<listitem>
<para>
Constant used to signify that the packet protocol is TCP
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dport</parameter></term>
<listitem>
<para>
TCP or UDP destination port (ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev_name</parameter></term>
<listitem>
<para>
Name of network device packet was received on (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_drop</parameter></term>
<listitem>
<para>
Constant used to signify a 'drop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fin</parameter></term>
<listitem>
<para>
TCP FIN flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
IP address family
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">urg</parameter></term>
<listitem>
<para>
TCP URG flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">psh</parameter></term>
<listitem>
<para>
TCP PSH flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_accept</parameter></term>
<listitem>
<para>
Constant used to signify an 'accept' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_repeat</parameter></term>
<listitem>
<para>
Constant used to signify a 'repeat' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">length</parameter></term>
<listitem>
<para>
The length of the packet buffer contents, in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_queue</parameter></term>
<listitem>
<para>
Constant used to signify a 'queue' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_hex</parameter></term>
<listitem>
<para>
A hexadecimal string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sport</parameter></term>
<listitem>
<para>
TCP or UDP source port (ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">syn</parameter></term>
<listitem>
<para>
TCP SYN flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev_name</parameter></term>
<listitem>
<para>
Name of network device packet will be routed to (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">daddr</parameter></term>
<listitem>
<para>
A string representing the destination IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev</parameter></term>
<listitem>
<para>
Address of net_device representing output device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pf</parameter></term>
<listitem>
<para>
Protocol family -- either <quote>ipv4</quote> or <quote>ipv6</quote>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stolen</parameter></term>
<listitem>
<para>
Constant used to signify a 'stolen' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rst</parameter></term>
<listitem>
<para>
TCP RST flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Packet protocol from driver (ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">saddr</parameter></term>
<listitem>
<para>
A string representing the source IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stop</parameter></term>
<listitem>
<para>
Constant used to signify a 'stop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev</parameter></term>
<listitem>
<para>
Address of net_device representing input device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">iphdr</parameter></term>
<listitem>
<para>
Address of IP header
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_str</parameter></term>
<listitem>
<para>
A string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ipproto_udp</parameter></term>
<listitem>
<para>
Constant used to signify that the packet protocol is UDP
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ack</parameter></term>
<listitem>
<para>
TCP ACK flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-netfilter-ip-pre-routing">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::netfilter.ip.pre_routing</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::netfilter.ip.pre_routing</refname>
<refpurpose>
Called before an IP packet is routed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">netfilter.ip.pre_routing </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">pf</parameter></term>
<listitem>
<para>
Protocol family - either 'ipv4' or 'ipv6'
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stolen</parameter></term>
<listitem>
<para>
Constant used to signify a 'stolen' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">daddr</parameter></term>
<listitem>
<para>
A string representing the destination IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev</parameter></term>
<listitem>
<para>
Address of net_device representing output device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_str</parameter></term>
<listitem>
<para>
A string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ack</parameter></term>
<listitem>
<para>
TCP ACK flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ipproto_udp</parameter></term>
<listitem>
<para>
Constant used to signify that the packet protocol is UDP
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rst</parameter></term>
<listitem>
<para>
TCP RST flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">iphdr</parameter></term>
<listitem>
<para>
Address of IP header
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev</parameter></term>
<listitem>
<para>
Address of net_device representing input device, 0 if unknown
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_stop</parameter></term>
<listitem>
<para>
Constant used to signify a 'stop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">saddr</parameter></term>
<listitem>
<para>
A string representing the source IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Packet protocol from driver (ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_accept</parameter></term>
<listitem>
<para>
Constant used to signify an 'accept' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">psh</parameter></term>
<listitem>
<para>
TCP PSH flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_queue</parameter></term>
<listitem>
<para>
Constant used to signify a 'queue' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_repeat</parameter></term>
<listitem>
<para>
Constant used to signify a 'repeat' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">length</parameter></term>
<listitem>
<para>
The length of the packet buffer contents, in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">indev_name</parameter></term>
<listitem>
<para>
Name of network device packet was received on (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dport</parameter></term>
<listitem>
<para>
TCP or UDP destination port (ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ipproto_tcp</parameter></term>
<listitem>
<para>
Constant used to signify that the packet protocol is TCP
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
IP address family
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">urg</parameter></term>
<listitem>
<para>
TCP URG flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fin</parameter></term>
<listitem>
<para>
TCP FIN flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nf_drop</parameter></term>
<listitem>
<para>
Constant used to signify a 'drop' verdict
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">syn</parameter></term>
<listitem>
<para>
TCP SYN flag (if protocol is TCP; ipv4 only)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outdev_name</parameter></term>
<listitem>
<para>
Name of network device packet will be routed to (if known)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data_hex</parameter></term>
<listitem>
<para>
A hexadecimal string representing the packet buffer contents
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sport</parameter></term>
<listitem>
<para>
TCP or UDP source port (ipv4 only)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sunrpc-clnt-bind-new-program">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::sunrpc.clnt.bind_new_program</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::sunrpc.clnt.bind_new_program</refname>
<refpurpose>
Bind a new RPC program to an existing client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">sunrpc.clnt.bind_new_program </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">servername</parameter></term>
<listitem>
<para>
the server machine name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">old_vers</parameter></term>
<listitem>
<para>
the version of old RPC program
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prog</parameter></term>
<listitem>
<para>
the number of new RPC program
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">old_prog</parameter></term>
<listitem>
<para>
the number of old RPC program
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vers</parameter></term>
<listitem>
<para>
the version of new RPC program
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">progname</parameter></term>
<listitem>
<para>
the name of new RPC program
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">old_progname</parameter></term>
<listitem>
<para>
the name of old RPC program
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sunrpc-clnt-call-async">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::sunrpc.clnt.call_async</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::sunrpc.clnt.call_async</refname>
<refpurpose>
Make an asynchronous RPC call
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">sunrpc.clnt.call_async </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">procname</parameter></term>
<listitem>
<para>
the procedure name in this RPC call
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prog</parameter></term>
<listitem>
<para>
the RPC program number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
the IP protocol number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">servername</parameter></term>
<listitem>
<para>
the server machine name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">port</parameter></term>
<listitem>
<para>
the port number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">proc</parameter></term>
<listitem>
<para>
the procedure number in this RPC call
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">xid</parameter></term>
<listitem>
<para>
current transmission id
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">progname</parameter></term>
<listitem>
<para>
the RPC program name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dead</parameter></term>
<listitem>
<para>
whether this client is abandoned
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vers</parameter></term>
<listitem>
<para>
the RPC program version number
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sunrpc-clnt-call-sync">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::sunrpc.clnt.call_sync</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::sunrpc.clnt.call_sync</refname>
<refpurpose>
Make a synchronous RPC call
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">sunrpc.clnt.call_sync </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
the IP protocol number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">servername</parameter></term>
<listitem>
<para>
the server machine name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prog</parameter></term>
<listitem>
<para>
the RPC program number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">procname</parameter></term>
<listitem>
<para>
the procedure name in this RPC call
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vers</parameter></term>
<listitem>
<para>
the RPC program version number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dead</parameter></term>
<listitem>
<para>
whether this client is abandoned
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">xid</parameter></term>
<listitem>
<para>
current transmission id
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">progname</parameter></term>
<listitem>
<para>
the RPC program name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">proc</parameter></term>
<listitem>
<para>
the procedure number in this RPC call
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">port</parameter></term>
<listitem>
<para>
the port number
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sunrpc-clnt-clone-client">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::sunrpc.clnt.clone_client</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::sunrpc.clnt.clone_client</refname>
<refpurpose>
Clone an RPC client structure
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">sunrpc.clnt.clone_client </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">port</parameter></term>
<listitem>
<para>
the port number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">authflavor</parameter></term>
<listitem>
<para>
the authentication flavor
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">servername</parameter></term>
<listitem>
<para>
the server machine name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vers</parameter></term>
<listitem>
<para>
the RPC program version number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
the IP protocol number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">progname</parameter></term>
<listitem>
<para>
the RPC program name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prog</parameter></term>
<listitem>
<para>
the RPC program number
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sunrpc-clnt-create-client">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::sunrpc.clnt.create_client</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::sunrpc.clnt.create_client</refname>
<refpurpose>
Create an RPC client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">sunrpc.clnt.create_client </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">servername</parameter></term>
<listitem>
<para>
the server machine name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">authflavor</parameter></term>
<listitem>
<para>
the authentication flavor
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vers</parameter></term>
<listitem>
<para>
the RPC program version number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
the IP protocol number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">progname</parameter></term>
<listitem>
<para>
the RPC program name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prog</parameter></term>
<listitem>
<para>
the RPC program number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">port</parameter></term>
<listitem>
<para>
the port number
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sunrpc-clnt-restart-call">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::sunrpc.clnt.restart_call</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::sunrpc.clnt.restart_call</refname>
<refpurpose>
Restart an asynchronous RPC call
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">sunrpc.clnt.restart_call </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">tk_flags</parameter></term>
<listitem>
<para>
the task flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">tk_pid</parameter></term>
<listitem>
<para>
the debugging aid of task
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">servername</parameter></term>
<listitem>
<para>
the server machine name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prog</parameter></term>
<listitem>
<para>
the RPC program number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">tk_priority</parameter></term>
<listitem>
<para>
the task priority
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">xid</parameter></term>
<listitem>
<para>
the transmission id
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">tk_runstate</parameter></term>
<listitem>
<para>
the task run status
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sunrpc-clnt-shutdown-client">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::sunrpc.clnt.shutdown_client</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::sunrpc.clnt.shutdown_client</refname>
<refpurpose>
Shutdown an RPC client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">sunrpc.clnt.shutdown_client </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">netreconn</parameter></term>
<listitem>
<para>
the count of reconnections
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">om_ops</parameter></term>
<listitem>
<para>
the count of operations
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">tasks</parameter></term>
<listitem>
<para>
the number of references
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vers</parameter></term>
<listitem>
<para>
the RPC program version number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rpccnt</parameter></term>
<listitem>
<para>
the count of RPC calls
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">progname</parameter></term>
<listitem>
<para>
the RPC program name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">om_bytes_sent</parameter></term>
<listitem>
<para>
the count of bytes out
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">port</parameter></term>
<listitem>
<para>
the port number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">om_rtt</parameter></term>
<listitem>
<para>
the RPC RTT jiffies
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">om_queue</parameter></term>
<listitem>
<para>
the jiffies queued for xmit
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">servername</parameter></term>
<listitem>
<para>
the server machine name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">authflavor</parameter></term>
<listitem>
<para>
the authentication flavor
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
the IP protocol number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prog</parameter></term>
<listitem>
<para>
the RPC program number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">om_execute</parameter></term>
<listitem>
<para>
the RPC execution jiffies
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">clones</parameter></term>
<listitem>
<para>
the number of clones
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">om_bytes_recv</parameter></term>
<listitem>
<para>
the count of bytes in
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">om_ntrans</parameter></term>
<listitem>
<para>
the count of RPC transmissions
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sunrpc-sched-delay">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::sunrpc.sched.delay</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::sunrpc.sched.delay</refname>
<refpurpose>
Delay an RPC task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">sunrpc.sched.delay </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">xid</parameter></term>
<listitem>
<para>
the transmission id in the RPC call
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vers</parameter></term>
<listitem>
<para>
the program version in the RPC call
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">tk_flags</parameter></term>
<listitem>
<para>
the flags of the task
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">tk_pid</parameter></term>
<listitem>
<para>
the debugging id of the task
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">delay</parameter></term>
<listitem>
<para>
the time delayed
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prog</parameter></term>
<listitem>
<para>
the program number in the RPC call
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
the IP protocol in the RPC call
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sunrpc-sched-execute">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::sunrpc.sched.execute</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::sunrpc.sched.execute</refname>
<refpurpose>
Execute the RPC `scheduler'
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">sunrpc.sched.execute </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">vers</parameter></term>
<listitem>
<para>
the program version in the RPC call
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">xid</parameter></term>
<listitem>
<para>
the transmission id in the RPC call
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">tk_flags</parameter></term>
<listitem>
<para>
the flags of the task
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">tk_pid</parameter></term>
<listitem>
<para>
the debugging id of the task
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
the IP protocol in the RPC call
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prog</parameter></term>
<listitem>
<para>
the program number in the RPC call
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sunrpc-sched-new-task">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::sunrpc.sched.new_task</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::sunrpc.sched.new_task</refname>
<refpurpose>
Create new task for the specified client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">sunrpc.sched.new_task </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">tk_flags</parameter></term>
<listitem>
<para>
the flags of the task
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
the IP protocol in the RPC call
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prog</parameter></term>
<listitem>
<para>
the program number in the RPC call
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vers</parameter></term>
<listitem>
<para>
the program version in the RPC call
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">xid</parameter></term>
<listitem>
<para>
the transmission id in the RPC call
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sunrpc-sched-release-task">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::sunrpc.sched.release_task</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::sunrpc.sched.release_task</refname>
<refpurpose>
Release all resources associated with a task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">sunrpc.sched.release_task </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">vers</parameter></term>
<listitem>
<para>
the program version in the RPC call
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">xid</parameter></term>
<listitem>
<para>
the transmission id in the RPC call
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
the IP protocol in the RPC call
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prog</parameter></term>
<listitem>
<para>
the program number in the RPC call
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">tk_flags</parameter></term>
<listitem>
<para>
the flags of the task
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
<function moreinfo="none">rpc_release_task</function> function might not be found for a particular kernel.
So, if we can't find it, just return '-1' for everything.
</para>
</refsection>
</refentry><refentry id="API-sunrpc-svc-create">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::sunrpc.svc.create</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::sunrpc.svc.create</refname>
<refpurpose>
Create an RPC service
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">sunrpc.svc.create </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">prog</parameter></term>
<listitem>
<para>
the number of the program
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pg_nvers</parameter></term>
<listitem>
<para>
the number of supported versions
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bufsize</parameter></term>
<listitem>
<para>
the buffer size
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">progname</parameter></term>
<listitem>
<para>
the name of the program
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sunrpc-svc-destroy">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::sunrpc.svc.destroy</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::sunrpc.svc.destroy</refname>
<refpurpose>
Destroy an RPC service
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">sunrpc.svc.destroy </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sv_name</parameter></term>
<listitem>
<para>
the service name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rpcbadauth</parameter></term>
<listitem>
<para>
the count of requests drooped for authentication failure
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rpccnt</parameter></term>
<listitem>
<para>
the count of valid RPC requests
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sv_prog</parameter></term>
<listitem>
<para>
the number of the program
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sv_progname</parameter></term>
<listitem>
<para>
the name of the program
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rpcbadfmt</parameter></term>
<listitem>
<para>
the count of requests dropped for bad formats
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sv_nrthreads</parameter></term>
<listitem>
<para>
the number of concurrent threads
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nettcpconn</parameter></term>
<listitem>
<para>
the count of accepted TCP connections
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">netcnt</parameter></term>
<listitem>
<para>
the count of received RPC requests
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sunrpc-svc-drop">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::sunrpc.svc.drop</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::sunrpc.svc.drop</refname>
<refpurpose>
Drop RPC request
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">sunrpc.svc.drop </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sv_name</parameter></term>
<listitem>
<para>
the service name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_prog</parameter></term>
<listitem>
<para>
the program number in the request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">peer_ip</parameter></term>
<listitem>
<para>
the peer address where the request is from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_xid</parameter></term>
<listitem>
<para>
the transmission id in the request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_prot</parameter></term>
<listitem>
<para>
the IP protocol of the reqeust
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_proc</parameter></term>
<listitem>
<para>
the procedure number in the request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_vers</parameter></term>
<listitem>
<para>
the program version in the request
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sunrpc-svc-process">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::sunrpc.svc.process</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::sunrpc.svc.process</refname>
<refpurpose>
Process an RPC request
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">sunrpc.svc.process </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sv_nrthreads</parameter></term>
<listitem>
<para>
the number of concurrent threads
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_proc</parameter></term>
<listitem>
<para>
the procedure number in the request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_prot</parameter></term>
<listitem>
<para>
the IP protocol of the reqeust
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_vers</parameter></term>
<listitem>
<para>
the program version in the request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_prog</parameter></term>
<listitem>
<para>
the program number in the request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sv_name</parameter></term>
<listitem>
<para>
the service name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">peer_ip</parameter></term>
<listitem>
<para>
the peer address where the request is from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_xid</parameter></term>
<listitem>
<para>
the transmission id in the request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sv_prog</parameter></term>
<listitem>
<para>
the number of the program
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sunrpc-svc-recv">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::sunrpc.svc.recv</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::sunrpc.svc.recv</refname>
<refpurpose>
Listen for the next RPC request on any socket
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">sunrpc.svc.recv </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">timeout</parameter></term>
<listitem>
<para>
the timeout of waiting for data
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sv_nrthreads</parameter></term>
<listitem>
<para>
the number of concurrent threads
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sv_prog</parameter></term>
<listitem>
<para>
the number of the program
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sv_name</parameter></term>
<listitem>
<para>
the service name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sunrpc-svc-register">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::sunrpc.svc.register</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::sunrpc.svc.register</refname>
<refpurpose>
Register an RPC service with the local portmapper
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">sunrpc.svc.register </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">progname</parameter></term>
<listitem>
<para>
the name of the program
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sv_name</parameter></term>
<listitem>
<para>
the service name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">port</parameter></term>
<listitem>
<para>
the port number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prog</parameter></term>
<listitem>
<para>
the number of the program
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
the IP protocol number
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
If <parameter moreinfo="none">proto</parameter> and <parameter moreinfo="none">port</parameter> are both 0, then unregister a service.
</para>
</refsection>
</refentry><refentry id="API-sunrpc-svc-send">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::sunrpc.svc.send</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::sunrpc.svc.send</refname>
<refpurpose>
Return reply to RPC client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">sunrpc.svc.send </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">rq_proc</parameter></term>
<listitem>
<para>
the procedure number in the request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_prot</parameter></term>
<listitem>
<para>
the IP protocol of the reqeust
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_vers</parameter></term>
<listitem>
<para>
the program version in the request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">peer_ip</parameter></term>
<listitem>
<para>
the peer address where the request is from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_prog</parameter></term>
<listitem>
<para>
the program number in the request
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sv_name</parameter></term>
<listitem>
<para>
the service name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rq_xid</parameter></term>
<listitem>
<para>
the transmission id in the request
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-tcp-disconnect">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tcp.disconnect</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tcp.disconnect</refname>
<refpurpose>
TCP socket disconnection
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tcp.disconnect </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dport</parameter></term>
<listitem>
<para>
TCP destination port
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">daddr</parameter></term>
<listitem>
<para>
A string representing the destination IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
IP address family
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sport</parameter></term>
<listitem>
<para>
TCP source port 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sock</parameter></term>
<listitem>
<para>
Network socket 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">saddr</parameter></term>
<listitem>
<para>
A string representing the source IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
TCP flags (e.g. FIN, etc)  
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process which disconnects tcp 
</para>
</refsection>
</refentry><refentry id="API-tcp-disconnect-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tcp.disconnect.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tcp.disconnect.return</refname>
<refpurpose>
TCP socket disconnection complete
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tcp.disconnect.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">ret</parameter></term>
<listitem>
<para>
Error code (0: no error) 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process which disconnects tcp
</para>
</refsection>
</refentry><refentry id="API-tcp-receive">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tcp.receive</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tcp.receive</refname>
<refpurpose>
Called when a TCP packet is received
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tcp.receive </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">fin</parameter></term>
<listitem>
<para>
TCP FIN flag
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ack</parameter></term>
<listitem>
<para>
TCP ACK flag
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">saddr</parameter></term>
<listitem>
<para>
A string representing the source IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">iphdr</parameter></term>
<listitem>
<para>
IP header address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Packet protocol from driver
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">urg</parameter></term>
<listitem>
<para>
TCP URG flag
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">psh</parameter></term>
<listitem>
<para>
TCP PSH flag
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dport</parameter></term>
<listitem>
<para>
TCP destination port
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rst</parameter></term>
<listitem>
<para>
TCP RST flag
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">syn</parameter></term>
<listitem>
<para>
TCP SYN flag
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sport</parameter></term>
<listitem>
<para>
TCP source port
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
IP address family
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">daddr</parameter></term>
<listitem>
<para>
A string representing the destination IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-tcp-recvmsg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tcp.recvmsg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tcp.recvmsg</refname>
<refpurpose>
Receiving TCP message
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tcp.recvmsg </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dport</parameter></term>
<listitem>
<para>
TCP destination port
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
IP address family
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">daddr</parameter></term>
<listitem>
<para>
A string representing the destination IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sock</parameter></term>
<listitem>
<para>
Network socket
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Number of bytes to be received  
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sport</parameter></term>
<listitem>
<para>
TCP source port 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">saddr</parameter></term>
<listitem>
<para>
A string representing the source IP address
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process which receives a tcp message
</para>
</refsection>
</refentry><refentry id="API-tcp-recvmsg-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tcp.recvmsg.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tcp.recvmsg.return</refname>
<refpurpose>
Receiving TCP message complete
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tcp.recvmsg.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">saddr</parameter></term>
<listitem>
<para>
A string representing the source IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sport</parameter></term>
<listitem>
<para>
TCP source port 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Number of bytes received or error code if an error occurred.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
IP address family
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">daddr</parameter></term>
<listitem>
<para>
A string representing the destination IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dport</parameter></term>
<listitem>
<para>
TCP destination port
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process which receives a tcp message
</para>
</refsection>
</refentry><refentry id="API-tcp-sendmsg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tcp.sendmsg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tcp.sendmsg</refname>
<refpurpose>
Sending a tcp message
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tcp.sendmsg </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sock</parameter></term>
<listitem>
<para>
Network socket 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Number of bytes to send  
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
IP address family
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process which sends a tcp message 
</para>
</refsection>
</refentry><refentry id="API-tcp-sendmsg-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tcp.sendmsg.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tcp.sendmsg.return</refname>
<refpurpose>
Sending TCP message is done
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tcp.sendmsg.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Number of bytes sent or error code if an error occurred. 
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process which sends a tcp message
</para>
</refsection>
</refentry><refentry id="API-tcp-setsockopt">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tcp.setsockopt</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tcp.setsockopt</refname>
<refpurpose>
Call to <function moreinfo="none">setsockopt</function>
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tcp.setsockopt </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sock</parameter></term>
<listitem>
<para>
Network socket
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">level</parameter></term>
<listitem>
<para>
The level at which the socket options will be manipulated
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">optlen</parameter></term>
<listitem>
<para>
Used to access values for <function moreinfo="none">setsockopt</function>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">optstr</parameter></term>
<listitem>
<para>
Resolves optname to a human-readable format
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
IP address family
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">optname</parameter></term>
<listitem>
<para>
TCP socket options (e.g. TCP_NODELAY, TCP_MAXSEG, etc)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process which calls setsockopt
</para>
</refsection>
</refentry><refentry id="API-tcp-setsockopt-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tcp.setsockopt.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tcp.setsockopt.return</refname>
<refpurpose>
Return from <function moreinfo="none">setsockopt</function>
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tcp.setsockopt.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">ret</parameter></term>
<listitem>
<para>
Error code (0: no error)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process which calls setsockopt
</para>
</refsection>
</refentry><refentry id="API-udp-disconnect">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::udp.disconnect</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::udp.disconnect</refname>
<refpurpose>
Fires when a process requests for a UDP disconnection
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">udp.disconnect </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">daddr</parameter></term>
<listitem>
<para>
A string representing the destination IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
IP address family
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dport</parameter></term>
<listitem>
<para>
UDP destination port
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
The name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sock</parameter></term>
<listitem>
<para>
Network socket used by the process
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">saddr</parameter></term>
<listitem>
<para>
A string representing the source IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Flags (e.g. FIN, etc)  
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sport</parameter></term>
<listitem>
<para>
UDP source port
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process which requests a UDP disconnection 
</para>
</refsection>
</refentry><refentry id="API-udp-disconnect-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::udp.disconnect.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::udp.disconnect.return</refname>
<refpurpose>
UDP has been disconnected successfully
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">udp.disconnect.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
The name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dport</parameter></term>
<listitem>
<para>
UDP destination port
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
IP address family
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ret</parameter></term>
<listitem>
<para>
Error code (0: no error) 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">daddr</parameter></term>
<listitem>
<para>
A string representing the destination IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sport</parameter></term>
<listitem>
<para>
UDP source port
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">saddr</parameter></term>
<listitem>
<para>
A string representing the source IP address
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process which requested a UDP disconnection
</para>
</refsection>
</refentry><refentry id="API-udp-recvmsg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::udp.recvmsg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::udp.recvmsg</refname>
<refpurpose>
Fires whenever a UDP message is received
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">udp.recvmsg </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dport</parameter></term>
<listitem>
<para>
UDP destination port
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
The name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Number of bytes received by the process
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">daddr</parameter></term>
<listitem>
<para>
A string representing the destination IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
IP address family
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sport</parameter></term>
<listitem>
<para>
UDP source port
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sock</parameter></term>
<listitem>
<para>
Network socket used by the process
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">saddr</parameter></term>
<listitem>
<para>
A string representing the source IP address
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process which received a UDP message
</para>
</refsection>
</refentry><refentry id="API-udp-recvmsg-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::udp.recvmsg.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::udp.recvmsg.return</refname>
<refpurpose>
Fires whenever an attempt to receive a UDP message received is completed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">udp.recvmsg.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">daddr</parameter></term>
<listitem>
<para>
A string representing the destination IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
IP address family
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dport</parameter></term>
<listitem>
<para>
UDP destination port
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
The name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Number of bytes received by the process
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">saddr</parameter></term>
<listitem>
<para>
A string representing the source IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sport</parameter></term>
<listitem>
<para>
UDP source port
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process which received a UDP message
</para>
</refsection>
</refentry><refentry id="API-udp-sendmsg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::udp.sendmsg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::udp.sendmsg</refname>
<refpurpose>
Fires whenever a process sends a UDP message
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">udp.sendmsg </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Number of bytes sent by the process
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
The name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dport</parameter></term>
<listitem>
<para>
UDP destination port
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
IP address family
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">daddr</parameter></term>
<listitem>
<para>
A string representing the destination IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sport</parameter></term>
<listitem>
<para>
UDP source port
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">saddr</parameter></term>
<listitem>
<para>
A string representing the source IP address
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sock</parameter></term>
<listitem>
<para>
Network socket used by the process 
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process which sent a UDP message 
</para>
</refsection>
</refentry><refentry id="API-udp-sendmsg-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::udp.sendmsg.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::udp.sendmsg.return</refname>
<refpurpose>
Fires whenever an attempt to send a UDP message is completed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">udp.sendmsg.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Number of bytes sent by the process
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
The name of this probe
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process which sent a UDP message
</para>
</refsection>
</refentry></chapter>

<chapter id="socket.stp"><title>Socket Tapset</title><para>
This family of probe points is used to probe socket activities.
It contains the following probe points:
</para><refentry id="API-inet-get-ip-source">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::inet_get_ip_source</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::inet_get_ip_source</refname>
<refpurpose>
Provide IP source address string for a kernel socket
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
inet_get_ip_source:string(sock:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sock</parameter></term>
<listitem>
<para>
pointer to the kernel socket
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-inet-get-local-port">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::inet_get_local_port</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::inet_get_local_port</refname>
<refpurpose>
Provide local port number for a kernel socket
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
inet_get_local_port:long(sock:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sock</parameter></term>
<listitem>
<para>
pointer to the kernel socket
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sock-fam-num2str">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::sock_fam_num2str</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::sock_fam_num2str</refname>
<refpurpose>
Given a protocol family number, return a string representation
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
sock_fam_num2str:string(family:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
The family number
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sock-fam-str2num">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::sock_fam_str2num</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::sock_fam_str2num</refname>
<refpurpose>
Given a protocol family name (string), return the corresponding protocol family number
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
sock_fam_str2num:long(family:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
The family name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sock-prot-num2str">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::sock_prot_num2str</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::sock_prot_num2str</refname>
<refpurpose>
Given a protocol number, return a string representation
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
sock_prot_num2str:string(proto:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">proto</parameter></term>
<listitem>
<para>
The protocol number
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sock-prot-str2num">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::sock_prot_str2num</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::sock_prot_str2num</refname>
<refpurpose>
Given a protocol name (string), return the corresponding protocol number
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
sock_prot_str2num:long(proto:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">proto</parameter></term>
<listitem>
<para>
The protocol name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sock-state-num2str">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::sock_state_num2str</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::sock_state_num2str</refname>
<refpurpose>
Given a socket state number, return a string representation
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
sock_state_num2str:string(state:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
The state number
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sock-state-str2num">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::sock_state_str2num</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::sock_state_str2num</refname>
<refpurpose>
Given a socket state string, return the corresponding state number
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
sock_state_str2num:long(state:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
The state name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-socket-aio-read">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.aio_read</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.aio_read</refname>
<refpurpose>
Receiving message via <function moreinfo="none">sock_aio_read</function>
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.aio_read </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Message size in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Socket flags value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
Socket state value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The message sender
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the beginning of receiving a message on a socket
via the <function moreinfo="none">sock_aio_read</function> function
</para>
</refsection>
</refentry><refentry id="API-socket-aio-read-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.aio_read.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.aio_read.return</refname>
<refpurpose>
Conclusion of message received via <function moreinfo="none">sock_aio_read</function>
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.aio_read.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">success</parameter></term>
<listitem>
<para>
Was receive successful? (1 = yes, 0 = no)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
Socket state value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Size of message received (in bytes) or error code if success = 0
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Socket flags value
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The message receiver.
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the conclusion of receiving a message on a socket
via the <function moreinfo="none">sock_aio_read</function> function
</para>
</refsection>
</refentry><refentry id="API-socket-aio-write">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.aio_write</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.aio_write</refname>
<refpurpose>
Message send via <function moreinfo="none">sock_aio_write</function>
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.aio_write </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Socket flags value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Message size in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
Socket state value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The message sender
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the beginning of sending a message on a socket
via the <function moreinfo="none">sock_aio_write</function> function
</para>
</refsection>
</refentry><refentry id="API-socket-aio-write-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.aio_write.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.aio_write.return</refname>
<refpurpose>
Conclusion of message send via <function moreinfo="none">sock_aio_write</function>
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.aio_write.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">success</parameter></term>
<listitem>
<para>
Was receive successful? (1 = yes, 0 = no)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
Socket state value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Size of message received (in bytes) or error code if success = 0
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Socket flags value
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The message receiver.
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the conclusion of sending a message on a socket
via the <function moreinfo="none">sock_aio_write</function> function
</para>
</refsection>
</refentry><refentry id="API-socket-close">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.close</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.close</refname>
<refpurpose>
Close a socket
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.close </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
Socket state value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Socket flags value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The requester (user process or kernel)
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the beginning of closing a socket.
</para>
</refsection>
</refentry><refentry id="API-socket-close-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.close.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.close.return</refname>
<refpurpose>
Return from closing a socket
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.close.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The requester (user process or kernel)
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the conclusion of closing a socket.
</para>
</refsection>
</refentry><refentry id="API-socket-create">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.create</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.create</refname>
<refpurpose>
Creation of a socket
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.create </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">requester</parameter></term>
<listitem>
<para>
Requested by user process or the kernel (1 = kernel, 0 = user)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The requester (see requester variable)
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the beginning of creating a socket.
</para>
</refsection>
</refentry><refentry id="API-socket-create-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.create.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.create.return</refname>
<refpurpose>
Return from Creation of a socket
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.create.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">success</parameter></term>
<listitem>
<para>
Was socket creation successful? (1 = yes, 0 = no)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">requester</parameter></term>
<listitem>
<para>
Requested by user process or the kernel (1 = kernel, 0 = user)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">err</parameter></term>
<listitem>
<para>
Error code if success == 0
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The requester (user process or kernel)
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the conclusion of creating a socket.
</para>
</refsection>
</refentry><refentry id="API-socket-read-iter">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.read_iter</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.read_iter</refname>
<refpurpose>
Receiving message via <function moreinfo="none">sock_read_iter</function>
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.read_iter </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Socket flags value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Message size in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
Socket state value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The message sender
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the beginning of receiving a message on a socket
via the <function moreinfo="none">sock_read_iter</function> function
</para>
</refsection>
</refentry><refentry id="API-socket-read-iter-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.read_iter.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.read_iter.return</refname>
<refpurpose>
Conclusion of message received via <function moreinfo="none">sock_read_iter</function>
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.read_iter.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Size of message received (in bytes) or error code if success = 0
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Socket flags value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
Socket state value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">success</parameter></term>
<listitem>
<para>
Was receive successful? (1 = yes, 0 = no)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The message receiver.
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the conclusion of receiving a message on a socket
via the <function moreinfo="none">sock_read_iter</function> function
</para>
</refsection>
</refentry><refentry id="API-socket-readv">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.readv</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.readv</refname>
<refpurpose>
Receiving a message via <function moreinfo="none">sock_readv</function>
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.readv </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Socket flags value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Message size in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
Socket state value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The message sender
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the beginning of receiving a message on a socket
via the <function moreinfo="none">sock_readv</function> function
</para>
</refsection>
</refentry><refentry id="API-socket-readv-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.readv.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.readv.return</refname>
<refpurpose>
Conclusion of receiving a message via <function moreinfo="none">sock_readv</function>
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.readv.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">success</parameter></term>
<listitem>
<para>
Was receive successful? (1 = yes, 0 = no)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Socket flags value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Size of message received (in bytes) or error code if success = 0
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
Socket state value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The message receiver.
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the conclusion of receiving a message on a socket
via the <function moreinfo="none">sock_readv</function> function
</para>
</refsection>
</refentry><refentry id="API-socket-receive">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.receive</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.receive</refname>
<refpurpose>
Message received on a socket.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.receive </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
Socket state value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Size of message received (in bytes) or error code if success = 0
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Socket flags value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">success</parameter></term>
<listitem>
<para>
Was send successful? (1 = yes, 0 = no)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The message receiver
</para>
</refsection>
</refentry><refentry id="API-socket-recvmsg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.recvmsg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.recvmsg</refname>
<refpurpose>
Message being received on socket
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.recvmsg </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Message size in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Socket flags value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
Socket state value
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The message receiver.
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the beginning of receiving a message on a socket
via the <function moreinfo="none">sock_recvmsg</function> function
</para>
</refsection>
</refentry><refentry id="API-socket-recvmsg-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.recvmsg.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.recvmsg.return</refname>
<refpurpose>
Return from Message being received on socket
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.recvmsg.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Socket flags value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Size of message received (in bytes) or error code if success = 0
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
Socket state value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">success</parameter></term>
<listitem>
<para>
Was receive successful? (1 = yes, 0 = no)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The message receiver.
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the conclusion of receiving a message on a socket
via the <function moreinfo="none">sock_recvmsg</function> function.
</para>
</refsection>
</refentry><refentry id="API-socket-send">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.send</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.send</refname>
<refpurpose>
Message sent on a socket.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.send </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">success</parameter></term>
<listitem>
<para>
Was send successful? (1 = yes, 0 = no)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Size of message sent (in bytes) or error code if success = 0
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Socket flags value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
Socket state value
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The message sender
</para>
</refsection>
</refentry><refentry id="API-socket-sendmsg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.sendmsg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.sendmsg</refname>
<refpurpose>
Message is currently being sent on a socket.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.sendmsg </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
Socket state value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Message size in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Socket flags value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The message sender
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the beginning of sending a message on a socket
via the <function moreinfo="none">sock_sendmsg</function> function
</para>
</refsection>
</refentry><refentry id="API-socket-sendmsg-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.sendmsg.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.sendmsg.return</refname>
<refpurpose>
Return from socket.sendmsg.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.sendmsg.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">success</parameter></term>
<listitem>
<para>
Was send successful? (1 = yes, 0 = no)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
Socket state value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Socket flags value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Size of message sent (in bytes) or error code if success = 0
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The message sender.
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the conclusion of sending a message on a socket
via the <function moreinfo="none">sock_sendmsg</function> function
</para>
</refsection>
</refentry><refentry id="API-socket-write-iter">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.write_iter</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.write_iter</refname>
<refpurpose>
Message send via <function moreinfo="none">sock_write_iter</function>
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.write_iter </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Message size in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Socket flags value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
Socket state value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The message sender
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the beginning of sending a message on a socket
via the <function moreinfo="none">sock_write_iter</function> function
</para>
</refsection>
</refentry><refentry id="API-socket-write-iter-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.write_iter.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.write_iter.return</refname>
<refpurpose>
Conclusion of message send via <function moreinfo="none">sock_write_iter</function>
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.write_iter.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
Socket state value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Socket flags value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Size of message received (in bytes) or error code if success = 0
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">success</parameter></term>
<listitem>
<para>
Was receive successful? (1 = yes, 0 = no)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The message receiver.
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the conclusion of sending a message on a socket
via the <function moreinfo="none">sock_write_iter</function> function
</para>
</refsection>
</refentry><refentry id="API-socket-writev">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.writev</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.writev</refname>
<refpurpose>
Message sent via <function moreinfo="none">socket_writev</function>
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.writev </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
Socket state value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Message size in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Socket flags value
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The message sender
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the beginning of sending a message on a socket
via the <function moreinfo="none">sock_writev</function> function
</para>
</refsection>
</refentry><refentry id="API-socket-writev-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::socket.writev.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::socket.writev.return</refname>
<refpurpose>
Conclusion of message sent via <function moreinfo="none">socket_writev</function>
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">socket.writev.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Size of message sent (in bytes) or error code if success = 0
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
Socket flags value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
Socket type value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">state</parameter></term>
<listitem>
<para>
Socket state value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of this probe
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">protocol</parameter></term>
<listitem>
<para>
Protocol value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">family</parameter></term>
<listitem>
<para>
Protocol family value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">success</parameter></term>
<listitem>
<para>
Was send successful? (1 = yes, 0 = no)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The message receiver.
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the conclusion of sending a message on a socket
via the <function moreinfo="none">sock_writev</function> function
</para>
</refsection>
</refentry></chapter>
<chapter id="snmp.stp"><title>SNMP Information Tapset</title><para>
This family of probe points is used to probe socket activities to
provide SNMP type information. It contains the following functions
and probe points:
</para><refentry id="API-ipmib-filter-key">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ipmib_filter_key</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ipmib_filter_key</refname>
<refpurpose>
Default filter function for ipmib.* probes
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ipmib_filter_key:long(skb:long,op:long,SourceIsLocal:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">skb</parameter></term>
<listitem>
<para>
pointer to the struct sk_buff
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be counted if <parameter moreinfo="none">skb</parameter> passes the filter
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">SourceIsLocal</parameter></term>
<listitem>
<para>
1 is local operation and 0 is non-local operation
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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 <parameter moreinfo="none">skb</parameter>.
A return value of 0 means this particular <parameter moreinfo="none">skb</parameter> should be not be counted.
</para>
</refsection>
</refentry><refentry id="API-ipmib-get-proto">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ipmib_get_proto</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ipmib_get_proto</refname>
<refpurpose>
Get the protocol value
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ipmib_get_proto:long(skb:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">skb</parameter></term>
<listitem>
<para>
pointer to a struct sk_buff
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the protocol value from <parameter moreinfo="none">skb</parameter>.
</para>
</refsection>
</refentry><refentry id="API-ipmib-local-addr">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ipmib_local_addr</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ipmib_local_addr</refname>
<refpurpose>
Get the local ip address
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ipmib_local_addr:long(skb:long,SourceIsLocal:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">skb</parameter></term>
<listitem>
<para>
pointer to a struct sk_buff
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">SourceIsLocal</parameter></term>
<listitem>
<para>
flag to indicate whether local operation
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the local ip address <parameter moreinfo="none">skb</parameter>.
</para>
</refsection>
</refentry><refentry id="API-ipmib-remote-addr">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ipmib_remote_addr</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ipmib_remote_addr</refname>
<refpurpose>
Get the remote ip address
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ipmib_remote_addr:long(skb:long,SourceIsLocal:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">skb</parameter></term>
<listitem>
<para>
pointer to a struct sk_buff
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">SourceIsLocal</parameter></term>
<listitem>
<para>
flag to indicate whether local operation
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the remote ip address from <parameter moreinfo="none">skb</parameter>.
</para>
</refsection>
</refentry><refentry id="API-ipmib-tcp-local-port">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ipmib_tcp_local_port</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ipmib_tcp_local_port</refname>
<refpurpose>
Get the local tcp port
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ipmib_tcp_local_port:long(skb:long,SourceIsLocal:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">skb</parameter></term>
<listitem>
<para>
pointer to a struct sk_buff
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">SourceIsLocal</parameter></term>
<listitem>
<para>
flag to indicate whether local operation
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the local tcp port from <parameter moreinfo="none">skb</parameter>.
</para>
</refsection>
</refentry><refentry id="API-ipmib-tcp-remote-port">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ipmib_tcp_remote_port</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ipmib_tcp_remote_port</refname>
<refpurpose>
Get the remote tcp port
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ipmib_tcp_remote_port:long(skb:long,SourceIsLocal:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">skb</parameter></term>
<listitem>
<para>
pointer to a struct sk_buff
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">SourceIsLocal</parameter></term>
<listitem>
<para>
flag to indicate whether local operation
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the remote tcp port from <parameter moreinfo="none">skb</parameter>.
</para>
</refsection>
</refentry><refentry id="API-linuxmib-filter-key">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::linuxmib_filter_key</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::linuxmib_filter_key</refname>
<refpurpose>
Default filter function for linuxmib.* probes
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
linuxmib_filter_key:long(sk:long,op:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sk</parameter></term>
<listitem>
<para>
pointer to the struct sock
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be counted if <parameter moreinfo="none">sk</parameter> passes the filter
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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 <parameter moreinfo="none">sk</parameter>.
A return value of 0 means this particular <parameter moreinfo="none">sk</parameter> should be not be counted.
</para>
</refsection>
</refentry><refentry id="API-tcpmib-filter-key">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::tcpmib_filter_key</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::tcpmib_filter_key</refname>
<refpurpose>
Default filter function for tcpmib.* probes
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
tcpmib_filter_key:long(sk:long,op:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sk</parameter></term>
<listitem>
<para>
pointer to the struct sock being acted on
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be counted if <parameter moreinfo="none">sk</parameter> passes the filter
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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 <parameter moreinfo="none">sk</parameter>.
A return value of 0 means this particular <parameter moreinfo="none">sk</parameter> should be not be counted.
</para>
</refsection>
</refentry><refentry id="API-tcpmib-get-state">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::tcpmib_get_state</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::tcpmib_get_state</refname>
<refpurpose>
Get a socket's state
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
tcpmib_get_state:long(sk:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sk</parameter></term>
<listitem>
<para>
pointer to a struct sock
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the sk_state from a struct sock.
</para>
</refsection>
</refentry><refentry id="API-tcpmib-local-addr">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::tcpmib_local_addr</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::tcpmib_local_addr</refname>
<refpurpose>
Get the source address
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
tcpmib_local_addr:long(sk:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sk</parameter></term>
<listitem>
<para>
pointer to a struct inet_sock
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the saddr from a struct inet_sock in host order.
</para>
</refsection>
</refentry><refentry id="API-tcpmib-local-port">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::tcpmib_local_port</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::tcpmib_local_port</refname>
<refpurpose>
Get the local port
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
tcpmib_local_port:long(sk:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sk</parameter></term>
<listitem>
<para>
pointer to a struct inet_sock
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the sport from a struct inet_sock in host order.
</para>
</refsection>
</refentry><refentry id="API-tcpmib-remote-addr">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::tcpmib_remote_addr</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::tcpmib_remote_addr</refname>
<refpurpose>
Get the remote address
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
tcpmib_remote_addr:long(sk:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sk</parameter></term>
<listitem>
<para>
pointer to a struct inet_sock
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the daddr from a struct inet_sock in host order.
</para>
</refsection>
</refentry><refentry id="API-tcpmib-remote-port">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::tcpmib_remote_port</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::tcpmib_remote_port</refname>
<refpurpose>
Get the remote port
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
tcpmib_remote_port:long(sk:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sk</parameter></term>
<listitem>
<para>
pointer to a struct inet_sock
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the dport from a struct inet_sock in host order.
</para>
</refsection>
</refentry><refentry id="API-ipmib-ForwDatagrams">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ipmib.ForwDatagrams</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ipmib.ForwDatagrams</refname>
<refpurpose>
Count forwarded packet
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ipmib.ForwDatagrams </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">skb</parameter></term>
<listitem>
<para>
pointer to the struct sk_buff being acted on
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">ipmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">ForwDatagrams</parameter> (equivalent to SNMP's MIB
IPSTATS_MIB_OUTFORWDATAGRAMS)
</para>
</refsection>
</refentry><refentry id="API-ipmib-FragFails">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ipmib.FragFails</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ipmib.FragFails</refname>
<refpurpose>
Count datagram fragmented unsuccessfully
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ipmib.FragFails </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
Value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">skb</parameter></term>
<listitem>
<para>
pointer to the struct sk_buff being acted on
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">ipmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">FragFails</parameter> (equivalent to SNMP's MIB
IPSTATS_MIB_FRAGFAILS)
</para>
</refsection>
</refentry><refentry id="API-ipmib-FragOKs">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ipmib.FragOKs</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ipmib.FragOKs</refname>
<refpurpose>
Count datagram fragmented successfully
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ipmib.FragOKs </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">skb</parameter></term>
<listitem>
<para>
pointer to the struct sk_buff being acted on
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">ipmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">FragOKs</parameter> (equivalent to SNMP's MIB
IPSTATS_MIB_FRAGOKS)
</para>
</refsection>
</refentry><refentry id="API-ipmib-InAddrErrors">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ipmib.InAddrErrors</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ipmib.InAddrErrors</refname>
<refpurpose>
Count arriving packets with an incorrect address
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ipmib.InAddrErrors </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">skb</parameter></term>
<listitem>
<para>
pointer to the struct sk_buff being acted on
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">ipmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">InAddrErrors</parameter> (equivalent to SNMP's MIB
IPSTATS_MIB_INADDRERRORS)
</para>
</refsection>
</refentry><refentry id="API-ipmib-InDiscards">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ipmib.InDiscards</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ipmib.InDiscards</refname>
<refpurpose>
Count discarded inbound packets
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ipmib.InDiscards </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">skb</parameter></term>
<listitem>
<para>
pointer to the struct sk_buff being acted on
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">ipmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">InDiscards</parameter> (equivalent to SNMP's MIB
STATS_MIB_INDISCARDS)
</para>
</refsection>
</refentry><refentry id="API-ipmib-InNoRoutes">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ipmib.InNoRoutes</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ipmib.InNoRoutes</refname>
<refpurpose>
Count an arriving packet with no matching socket
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ipmib.InNoRoutes </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">skb</parameter></term>
<listitem>
<para>
pointer to the struct sk_buff being acted on
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">ipmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">InNoRoutes</parameter> (equivalent to SNMP's MIB
IPSTATS_MIB_INNOROUTES)
</para>
</refsection>
</refentry><refentry id="API-ipmib-InReceives">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ipmib.InReceives</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ipmib.InReceives</refname>
<refpurpose>
Count an arriving packet
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ipmib.InReceives </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">skb</parameter></term>
<listitem>
<para>
pointer to the struct sk_buff being acted on
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">ipmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">InReceives</parameter> (equivalent to SNMP's MIB
IPSTATS_MIB_INRECEIVES)
</para>
</refsection>
</refentry><refentry id="API-ipmib-InUnknownProtos">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ipmib.InUnknownProtos</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ipmib.InUnknownProtos</refname>
<refpurpose>
Count arriving packets with an unbound proto
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ipmib.InUnknownProtos </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">skb</parameter></term>
<listitem>
<para>
pointer to the struct sk_buff being acted on
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">ipmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">InUnknownProtos</parameter> (equivalent to SNMP's MIB
IPSTATS_MIB_INUNKNOWNPROTOS)
</para>
</refsection>
</refentry><refentry id="API-ipmib-OutRequests">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ipmib.OutRequests</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ipmib.OutRequests</refname>
<refpurpose>
Count a request to send a packet
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ipmib.OutRequests </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">skb</parameter></term>
<listitem>
<para>
pointer to the struct sk_buff being acted on
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">ipmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">OutRequests</parameter> (equivalent to SNMP's MIB
IPSTATS_MIB_OUTREQUESTS)
</para>
</refsection>
</refentry><refentry id="API-ipmib-ReasmReqds">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ipmib.ReasmReqds</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ipmib.ReasmReqds</refname>
<refpurpose>
Count number of packet fragments reassembly requests
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ipmib.ReasmReqds </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">skb</parameter></term>
<listitem>
<para>
pointer to the struct sk_buff being acted on
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">ipmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">ReasmReqds</parameter> (equivalent to SNMP's MIB
IPSTATS_MIB_REASMREQDS)
</para>
</refsection>
</refentry><refentry id="API-ipmib-ReasmTimeout">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::ipmib.ReasmTimeout</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::ipmib.ReasmTimeout</refname>
<refpurpose>
Count Reassembly Timeouts
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">ipmib.ReasmTimeout </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">skb</parameter></term>
<listitem>
<para>
pointer to the struct sk_buff being acted on
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">ipmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">ReasmTimeout</parameter> (equivalent to SNMP's MIB
IPSTATS_MIB_REASMTIMEOUT)
</para>
</refsection>
</refentry><refentry id="API-linuxmib-DelayedACKs">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::linuxmib.DelayedACKs</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::linuxmib.DelayedACKs</refname>
<refpurpose>
Count of delayed acks
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">linuxmib.DelayedACKs </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sk</parameter></term>
<listitem>
<para>
Pointer to the struct sock being acted on
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
Value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">linuxmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">DelayedACKs</parameter> (equivalent to SNMP's MIB
LINUX_MIB_DELAYEDACKS)
</para>
</refsection>
</refentry><refentry id="API-linuxmib-ListenDrops">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::linuxmib.ListenDrops</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::linuxmib.ListenDrops</refname>
<refpurpose>
Count of times conn request that were dropped
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">linuxmib.ListenDrops </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sk</parameter></term>
<listitem>
<para>
Pointer to the struct sock being acted on
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
Value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">linuxmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">ListenDrops</parameter> (equivalent to SNMP's MIB
LINUX_MIB_LISTENDROPS)
</para>
</refsection>
</refentry><refentry id="API-linuxmib-ListenOverflows">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::linuxmib.ListenOverflows</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::linuxmib.ListenOverflows</refname>
<refpurpose>
Count of times a listen queue overflowed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">linuxmib.ListenOverflows </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
Value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sk</parameter></term>
<listitem>
<para>
Pointer to the struct sock being acted on
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">linuxmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">ListenOverflows</parameter> (equivalent to SNMP's MIB
LINUX_MIB_LISTENOVERFLOWS)
</para>
</refsection>
</refentry><refentry id="API-linuxmib-TCPMemoryPressures">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::linuxmib.TCPMemoryPressures</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::linuxmib.TCPMemoryPressures</refname>
<refpurpose>
Count of times memory pressure was used
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">linuxmib.TCPMemoryPressures </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
Value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sk</parameter></term>
<listitem>
<para>
Pointer to the struct sock being acted on
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">linuxmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">TCPMemoryPressures</parameter> (equivalent to SNMP's MIB
LINUX_MIB_TCPMEMORYPRESSURES)
</para>
</refsection>
</refentry><refentry id="API-tcpmib-ActiveOpens">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tcpmib.ActiveOpens</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tcpmib.ActiveOpens</refname>
<refpurpose>
Count an active opening of a socket
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tcpmib.ActiveOpens </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sk</parameter></term>
<listitem>
<para>
pointer to the struct sock being acted on
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">tcpmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">ActiveOpens</parameter> (equivalent to SNMP's MIB
TCP_MIB_ACTIVEOPENS)
</para>
</refsection>
</refentry><refentry id="API-tcpmib-AttemptFails">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tcpmib.AttemptFails</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tcpmib.AttemptFails</refname>
<refpurpose>
Count a failed attempt to open a socket
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tcpmib.AttemptFails </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sk</parameter></term>
<listitem>
<para>
pointer to the struct sock being acted on
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">tcpmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">AttemptFails</parameter> (equivalent to SNMP's MIB
TCP_MIB_ATTEMPTFAILS)
</para>
</refsection>
</refentry><refentry id="API-tcpmib-CurrEstab">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tcpmib.CurrEstab</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tcpmib.CurrEstab</refname>
<refpurpose>
Update the count of open sockets
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tcpmib.CurrEstab </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sk</parameter></term>
<listitem>
<para>
pointer to the struct sock being acted on
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">tcpmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">CurrEstab</parameter> (equivalent to SNMP's MIB
TCP_MIB_CURRESTAB)
</para>
</refsection>
</refentry><refentry id="API-tcpmib-EstabResets">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tcpmib.EstabResets</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tcpmib.EstabResets</refname>
<refpurpose>
Count the reset of a socket
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tcpmib.EstabResets </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sk</parameter></term>
<listitem>
<para>
pointer to the struct sock being acted on
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">tcpmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">EstabResets</parameter> (equivalent to SNMP's MIB
TCP_MIB_ESTABRESETS)
</para>
</refsection>
</refentry><refentry id="API-tcpmib-InSegs">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tcpmib.InSegs</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tcpmib.InSegs</refname>
<refpurpose>
Count an incoming tcp segment
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tcpmib.InSegs </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sk</parameter></term>
<listitem>
<para>
pointer to the struct sock being acted on
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">tcpmib_filter_key</function> (or <function moreinfo="none">ipmib_filter_key</function> for tcp v4).
If the packet passes the filter is is
counted in the global <parameter moreinfo="none">InSegs</parameter> (equivalent to SNMP's MIB
TCP_MIB_INSEGS)
</para>
</refsection>
</refentry><refentry id="API-tcpmib-OutRsts">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tcpmib.OutRsts</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tcpmib.OutRsts</refname>
<refpurpose>
Count the sending of a reset packet
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tcpmib.OutRsts </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sk</parameter></term>
<listitem>
<para>
pointer to the struct sock being acted on
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">tcpmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">OutRsts</parameter> (equivalent to SNMP's MIB
TCP_MIB_OUTRSTS)
</para>
</refsection>
</refentry><refentry id="API-tcpmib-OutSegs">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tcpmib.OutSegs</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tcpmib.OutSegs</refname>
<refpurpose>
Count the sending of a TCP segment
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tcpmib.OutSegs </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sk</parameter></term>
<listitem>
<para>
pointer to the struct sock being acted on
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">tcpmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">OutSegs</parameter> (equivalent to SNMP's MIB
TCP_MIB_OUTSEGS)
</para>
</refsection>
</refentry><refentry id="API-tcpmib-PassiveOpens">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tcpmib.PassiveOpens</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tcpmib.PassiveOpens</refname>
<refpurpose>
Count the passive creation of a socket
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tcpmib.PassiveOpens </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sk</parameter></term>
<listitem>
<para>
pointer to the struct sock being acted on
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">tcpmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">PassiveOpens</parameter> (equivalent to SNMP's MIB
TCP_MIB_PASSIVEOPENS)
</para>
</refsection>
</refentry><refentry id="API-tcpmib-RetransSegs">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::tcpmib.RetransSegs</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::tcpmib.RetransSegs</refname>
<refpurpose>
Count the retransmission of a TCP segment
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">tcpmib.RetransSegs </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">op</parameter></term>
<listitem>
<para>
value to be added to the counter (default value of 1)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sk</parameter></term>
<listitem>
<para>
pointer to the struct sock being acted on
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The packet pointed to by <parameter moreinfo="none">skb</parameter> is filtered by the function
<function moreinfo="none">tcpmib_filter_key</function>. If the packet passes the filter is is
counted in the global <parameter moreinfo="none">RetransSegs</parameter> (equivalent to SNMP's MIB
TCP_MIB_RETRANSSEGS)
</para>
</refsection>
</refentry></chapter>
<chapter id="kprocess.stp"><title>Kernel Process Tapset</title><para>
This family of probe points is used to probe process-related activities.
It contains the following probe points:
</para><refentry id="API-get-loadavg-index">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::get_loadavg_index</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::get_loadavg_index</refname>
<refpurpose>
Get the load average for a specified interval
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
get_loadavg_index:long(indx:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">indx</parameter></term>
<listitem>
<para>
The load average interval to capture.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-sprint-loadavg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::sprint_loadavg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::sprint_loadavg</refname>
<refpurpose>
Report a pretty-printed load average
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
sprint_loadavg:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the a string with three decimal numbers
in the usual format for 1-, 5- and 15-minute load averages.
</para>
</refsection>
</refentry><refentry id="API-target-set-pid">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::target_set_pid</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::target_set_pid</refname>
<refpurpose>
Does pid descend from target process?
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
target_set_pid(pid:)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">pid</parameter></term>
<listitem>
<para>
The pid of the process to query
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns whether the given process-id is
within the <quote>target set</quote>, that is whether it is a descendant of the
top-level <function moreinfo="none">target</function> process.
</para>
</refsection>
</refentry><refentry id="API-target-set-report">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::target_set_report</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::target_set_report</refname>
<refpurpose>
Print a report about the target set
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
target_set_report()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function prints a report about the processes in the
target set, and their ancestry.
</para>
</refsection>
</refentry><refentry id="API-kprocess-create">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::kprocess.create</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::kprocess.create</refname>
<refpurpose>
Fires whenever a new process or thread is successfully created
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">kprocess.create </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">new_pid</parameter></term>
<listitem>
<para>
The PID of the newly created process
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">new_tid</parameter></term>
<listitem>
<para>
The TID of the newly created task
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
Parent of the created process.
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-kprocess-exec">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::kprocess.exec</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::kprocess.exec</refname>
<refpurpose>
Attempt to exec to a new program
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">kprocess.exec </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">args</parameter></term>
<listitem>
<para>
The arguments to pass to the new executable, including
the 0th arg (SystemTap v2.5+)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filename</parameter></term>
<listitem>
<para>
The path to the new executable
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the system call (<quote>execve</quote>) (SystemTap v2.5+)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">argstr</parameter></term>
<listitem>
<para>
A string containing the filename followed by the
arguments to pass, excluding 0th arg (SystemTap v2.5+)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The caller of exec.
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires whenever a process attempts to exec to a new program. Aliased
to the syscall.execve probe in SystemTap v2.5+.
</para>
</refsection>
</refentry><refentry id="API-kprocess-exec-complete">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::kprocess.exec_complete</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::kprocess.exec_complete</refname>
<refpurpose>
Return from exec to a new program
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">kprocess.exec_complete </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">retstr</parameter></term>
<listitem>
<para>
A string representation of errno (SystemTap v2.5+)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">success</parameter></term>
<listitem>
<para>
A boolean indicating whether the exec was successful
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">errno</parameter></term>
<listitem>
<para>
The error number resulting from the exec
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the system call (<quote>execve</quote>) (SystemTap v2.5+)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
On success, the context of the new executable.
On failure, remains in the context of the caller.
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the completion of an exec call. Aliased to the
syscall.execve.return probe in SystemTap v2.5+.
</para>
</refsection>
</refentry><refentry id="API-kprocess-exit">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::kprocess.exit</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::kprocess.exit</refname>
<refpurpose>
Exit from process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">kprocess.exit </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">code</parameter></term>
<listitem>
<para>
The exit code of the process
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process which is terminating.
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-kprocess-release">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::kprocess.release</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::kprocess.release</refname>
<refpurpose>
Process released
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">kprocess.release </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">pid</parameter></term>
<listitem>
<para>
Same as <parameter moreinfo="none">released_pid</parameter> for compatibility (deprecated)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">released_tid</parameter></term>
<listitem>
<para>
TID of the task being released
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">released_pid</parameter></term>
<listitem>
<para>
PID of the process being released
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
A task handle to the process being released
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The context of the parent, if it wanted notification of this process'
termination, else the context of the process itself.
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-kprocess-start">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::kprocess.start</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::kprocess.start</refname>
<refpurpose>
Starting new process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">kprocess.start </programlisting>

</refsection>
<refsection>
<title>Values</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Context</title>
<para>
Newly created process.
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires immediately before a new process begins execution.
</para>
</refsection>
</refentry></chapter>
<chapter id="signal.stp"><title>Signal Tapset</title><para>
This family of probe points is used to probe signal activities.
It contains the following probe points:
</para><refentry id="API-get-sa-flags">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::get_sa_flags</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::get_sa_flags</refname>
<refpurpose>
Returns the numeric value of sa_flags
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
get_sa_flags:long(act:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">act</parameter></term>
<listitem>
<para>
address of the sigaction to query.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-get-sa-handler">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::get_sa_handler</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::get_sa_handler</refname>
<refpurpose>
Returns the numeric value of sa_handler
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
get_sa_handler:long(act:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">act</parameter></term>
<listitem>
<para>
address of the sigaction to query.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-is-sig-blocked">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::is_sig_blocked</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::is_sig_blocked</refname>
<refpurpose>
Returns 1 if the signal is currently blocked, or 0 if it is not
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
is_sig_blocked:long(task:long,sig:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
address of the task_struct to query.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig</parameter></term>
<listitem>
<para>
the signal number to test.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sa-flags-str">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::sa_flags_str</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::sa_flags_str</refname>
<refpurpose>
Returns the string representation of sa_flags
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
sa_flags_str:string(sa_flags:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sa_flags</parameter></term>
<listitem>
<para>
the set of flags to convert to string.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sa-handler-str">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::sa_handler_str</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::sa_handler_str</refname>
<refpurpose>
Returns the string representation of an sa_handler
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
sa_handler_str(handler:)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">handler</parameter></term>
<listitem>
<para>
the sa_handler to convert to string.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-signal-str">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::signal_str</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::signal_str</refname>
<refpurpose>
Returns the string representation of a signal number
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
signal_str(num:)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">num</parameter></term>
<listitem>
<para>
the signal number to convert to string.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-sigset-mask-str">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::sigset_mask_str</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::sigset_mask_str</refname>
<refpurpose>
Returns the string representation of a sigset
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
sigset_mask_str:string(mask:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">mask</parameter></term>
<listitem>
<para>
the sigset to convert to string.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-signal-check-ignored">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.check_ignored</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.check_ignored</refname>
<refpurpose>
Checking to see signal is ignored
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.check_ignored </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">pid_name</parameter></term>
<listitem>
<para>
Name of the process receiving the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig_name</parameter></term>
<listitem>
<para>
A string representation of the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig_pid</parameter></term>
<listitem>
<para>
The PID of the process receiving the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig</parameter></term>
<listitem>
<para>
The number of the signal
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-signal-check-ignored-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.check_ignored.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.check_ignored.return</refname>
<refpurpose>
Check to see signal is ignored completed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.check_ignored.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">retstr</parameter></term>
<listitem>
<para>
Return value as a string
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-signal-checkperm">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.checkperm</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.checkperm</refname>
<refpurpose>
Check being performed on a sent signal
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.checkperm </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sig_name</parameter></term>
<listitem>
<para>
A string representation of the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sinfo</parameter></term>
<listitem>
<para>
The address of the siginfo structure
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig_pid</parameter></term>
<listitem>
<para>
The PID of the process receiving the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig</parameter></term>
<listitem>
<para>
The number of the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
A task handle to the signal recipient
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">si_code</parameter></term>
<listitem>
<para>
Indicates the signal type
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pid_name</parameter></term>
<listitem>
<para>
Name of the process receiving the signal
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-signal-checkperm-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.checkperm.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.checkperm.return</refname>
<refpurpose>
Check performed on a sent signal completed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.checkperm.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">retstr</parameter></term>
<listitem>
<para>
Return value as a string
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-signal-do-action">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.do_action</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.do_action</refname>
<refpurpose>
Examining or changing a signal action
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.do_action </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sa_mask</parameter></term>
<listitem>
<para>
The new mask of the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sa_handler</parameter></term>
<listitem>
<para>
The new handler of the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">oldsigact_addr</parameter></term>
<listitem>
<para>
The address of the old sigaction
struct associated with the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig_name</parameter></term>
<listitem>
<para>
A string representation of the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig</parameter></term>
<listitem>
<para>
The signal to be examined/changed
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sigact_addr</parameter></term>
<listitem>
<para>
The address of the new sigaction
struct associated with the signal
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-signal-do-action-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.do_action.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.do_action.return</refname>
<refpurpose>
Examining or changing a signal action completed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.do_action.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">retstr</parameter></term>
<listitem>
<para>
Return value as a string
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-signal-flush">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.flush</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.flush</refname>
<refpurpose>
Flushing all pending signals for a task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.flush </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
The task handler of the process performing the flush
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pid_name</parameter></term>
<listitem>
<para>
The name of the process associated with the task
performing the flush
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig_pid</parameter></term>
<listitem>
<para>
The PID of the process associated with the task
performing the flush
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-signal-force-segv">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.force_segv</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.force_segv</refname>
<refpurpose>
Forcing send of SIGSEGV
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.force_segv </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sig_name</parameter></term>
<listitem>
<para>
A string representation of the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig_pid</parameter></term>
<listitem>
<para>
The PID of the process receiving the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig</parameter></term>
<listitem>
<para>
The number of the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pid_name</parameter></term>
<listitem>
<para>
Name of the process receiving the signal
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-signal-force-segv-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.force_segv.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.force_segv.return</refname>
<refpurpose>
Forcing send of SIGSEGV complete
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.force_segv.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">retstr</parameter></term>
<listitem>
<para>
Return value as a string
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-signal-handle">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.handle</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.handle</refname>
<refpurpose>
Signal handler being invoked
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.handle </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">regs</parameter></term>
<listitem>
<para>
The address of the kernel-mode stack area (deprecated in
SystemTap 2.1)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ka_addr</parameter></term>
<listitem>
<para>
The address of the k_sigaction table
associated with the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">oldset_addr</parameter></term>
<listitem>
<para>
The address of the bitmask array of blocked signals
(deprecated in SystemTap 2.1)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig_code</parameter></term>
<listitem>
<para>
The si_code value of the siginfo signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig_mode</parameter></term>
<listitem>
<para>
Indicates whether the signal was a user-mode or kernel-mode signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig_name</parameter></term>
<listitem>
<para>
A string representation of the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sinfo</parameter></term>
<listitem>
<para>
The address of the siginfo table
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig</parameter></term>
<listitem>
<para>
The signal number that invoked the signal handler
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-signal-handle-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.handle.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.handle.return</refname>
<refpurpose>
Signal handler invocation completed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.handle.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">retstr</parameter></term>
<listitem>
<para>
Return value as a string
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
(deprecated in SystemTap 2.1)
</para>
</refsection>
</refentry><refentry id="API-signal-pending">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.pending</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.pending</refname>
<refpurpose>
Examining pending signal
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.pending </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sigset_size</parameter></term>
<listitem>
<para>
The size of the user-space signal set
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sigset_add</parameter></term>
<listitem>
<para>
The address of the user-space signal set
(sigset_t)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-signal-pending-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.pending.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.pending.return</refname>
<refpurpose>
Examination of pending signal completed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.pending.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">retstr</parameter></term>
<listitem>
<para>
Return value as a string
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-signal-procmask">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.procmask</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.procmask</refname>
<refpurpose>
Examining or changing blocked signals
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.procmask </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sigset</parameter></term>
<listitem>
<para>
The actual value to be set for sigset_t
(correct?)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">oldsigset_addr</parameter></term>
<listitem>
<para>
The old address of the signal set
(sigset_t)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">how</parameter></term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sigset_addr</parameter></term>
<listitem>
<para>
The address of the signal set (sigset_t)
to be implemented
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-signal-procmask-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.procmask.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.procmask.return</refname>
<refpurpose>
Examining or changing blocked signals completed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.procmask.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">retstr</parameter></term>
<listitem>
<para>
Return value as a string
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-signal-send">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.send</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.send</refname>
<refpurpose>
Signal being sent to a process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.send </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
The name of the function used to send out the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig</parameter></term>
<listitem>
<para>
The number of the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig_pid</parameter></term>
<listitem>
<para>
The PID of the process receiving the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sinfo</parameter></term>
<listitem>
<para>
The address of siginfo struct
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig_name</parameter></term>
<listitem>
<para>
A string representation of the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">shared</parameter></term>
<listitem>
<para>
Indicates whether the signal is shared by the thread group
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pid_name</parameter></term>
<listitem>
<para>
The name of the signal recipient
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">si_code</parameter></term>
<listitem>
<para>
Indicates the signal type
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
A task handle to the signal recipient
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">send2queue</parameter></term>
<listitem>
<para>
Indicates whether the signal is sent to an existing
sigqueue (deprecated in SystemTap 2.1)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The signal's sender.
</para>
</refsection>
</refentry><refentry id="API-signal-send-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.send.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.send.return</refname>
<refpurpose>
Signal being sent to a process completed (deprecated in SystemTap 2.1)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.send.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">shared</parameter></term>
<listitem>
<para>
Indicates whether the sent signal is shared by the thread group.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">send2queue</parameter></term>
<listitem>
<para>
Indicates whether the sent signal was sent to an existing sigqueue
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">retstr</parameter></term>
<listitem>
<para>
The return value to either __group_send_sig_info, specific_send_sig_info, or send_sigqueue
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
The name of the function used to send out the signal
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The signal's sender. (correct?)
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Possible __group_send_sig_info and
specific_send_sig_info return values are as follows;
</para><para>

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.
</para><para>

-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 <function moreinfo="none">kill</function>.
</para><para>

Possible send_group_sigqueue and
send_sigqueue return values are as follows;
</para><para>

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).
</para><para>

1 -- The signal was ignored by the receiving process.
</para><para>

-1 -- (send_sigqueue only) The task was marked
exiting, allowing * posix_timer_event to redirect it to the group
leader.
</para>
</refsection>
</refentry><refentry id="API-signal-send-sig-queue">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.send_sig_queue</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.send_sig_queue</refname>
<refpurpose>
Queuing a signal to a process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.send_sig_queue </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">pid_name</parameter></term>
<listitem>
<para>
Name of the process to which the signal is queued
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sigqueue_addr</parameter></term>
<listitem>
<para>
The address of the signal queue
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig_pid</parameter></term>
<listitem>
<para>
The PID of the process to which the signal is queued
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig</parameter></term>
<listitem>
<para>
The queued signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig_name</parameter></term>
<listitem>
<para>
A string representation of the signal
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-signal-send-sig-queue-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.send_sig_queue.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.send_sig_queue.return</refname>
<refpurpose>
Queuing a signal to a process completed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.send_sig_queue.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">retstr</parameter></term>
<listitem>
<para>
Return value as a string
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-signal-sys-tgkill">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.sys_tgkill</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.sys_tgkill</refname>
<refpurpose>
Sending kill signal to a thread group
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.sys_tgkill </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">pid_name</parameter></term>
<listitem>
<para>
The name of the signal recipient
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
A task handle to the signal recipient
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig</parameter></term>
<listitem>
<para>
The specific kill signal sent to the process
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig_pid</parameter></term>
<listitem>
<para>
The PID of the thread receiving the kill signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig_name</parameter></term>
<listitem>
<para>
A string representation of the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">tgid</parameter></term>
<listitem>
<para>
The thread group ID of the thread receiving the kill signal
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-signal-sys-tgkill-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.sys_tgkill.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.sys_tgkill.return</refname>
<refpurpose>
Sending kill signal to a thread group completed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.sys_tgkill.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">retstr</parameter></term>
<listitem>
<para>
The return value to either __group_send_sig_info,
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-signal-sys-tkill">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.sys_tkill</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.sys_tkill</refname>
<refpurpose>
Sending a kill signal to a thread
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.sys_tkill </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">pid_name</parameter></term>
<listitem>
<para>
The name of the signal recipient
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
A task handle to the signal recipient
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig</parameter></term>
<listitem>
<para>
The specific signal sent to the process
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig_pid</parameter></term>
<listitem>
<para>
The PID of the process receiving the kill signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig_name</parameter></term>
<listitem>
<para>
A string representation of the signal
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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
thread IDs (TID).
</para>
</refsection>
</refentry><refentry id="API-signal-syskill">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.syskill</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.syskill</refname>
<refpurpose>
Sending kill signal to a process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.syskill </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">pid_name</parameter></term>
<listitem>
<para>
The name of the signal recipient
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
A task handle to the signal recipient
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig_pid</parameter></term>
<listitem>
<para>
The PID of the process receiving the signal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig</parameter></term>
<listitem>
<para>
The specific signal sent to the process
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sig_name</parameter></term>
<listitem>
<para>
A string representation of the signal
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-signal-syskill-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.syskill.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.syskill.return</refname>
<refpurpose>
Sending kill signal completed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.syskill.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<para>
None
</para>
</refsection>
</refentry><refentry id="API-signal-systkill-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.systkill.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.systkill.return</refname>
<refpurpose>
Sending kill signal to a thread completed
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.systkill.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
Name of the probe point
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">retstr</parameter></term>
<listitem>
<para>
The return value to either __group_send_sig_info,
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-signal-wakeup">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::signal.wakeup</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::signal.wakeup</refname>
<refpurpose>
Sleeping process being wakened for signal
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">signal.wakeup </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sig_pid</parameter></term>
<listitem>
<para>
The PID of the process to wake
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">state_mask</parameter></term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">resume</parameter></term>
<listitem>
<para>
Indicates whether to wake up a task in a
STOPPED or TRACED state
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pid_name</parameter></term>
<listitem>
<para>
Name of the process to wake
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry></chapter>
<chapter id="errno.stp"><title>Errno Tapset</title><para>
This set of functions is used to handle errno number values.
It contains the following functions:
</para><refentry id="API-errno-str">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::errno_str</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::errno_str</refname>
<refpurpose>
Symbolic string associated with error code
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
errno_str:string(err:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">err</parameter></term>
<listitem>
<para>
The error number received
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-return-str">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::return_str</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::return_str</refname>
<refpurpose>
Formats the return value as a string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
return_str:string(format:long,ret:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">format</parameter></term>
<listitem>
<para>
Variable to determine return type base value
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ret</parameter></term>
<listitem>
<para>
Return value (typically <envar>$return</envar>)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para><para>

Note that this function is preferred over <function moreinfo="none">returnstr</function>.
</para>
</refsection>
</refentry><refentry id="API-returnstr">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::returnstr</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::returnstr</refname>
<refpurpose>
Formats the return value as a string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
returnstr:string(format:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">format</parameter></term>
<listitem>
<para>
Variable to determine return type base value
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para><para>

Note that this function should only be used in dwarfless probes
(i.e. 'kprobe.function(<quote>foo</quote>)').  Other probes should use
<function moreinfo="none">return_str</function>.
</para>
</refsection>
</refentry><refentry id="API-returnval">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::returnval</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::returnval</refname>
<refpurpose>
Possible return value of probed function
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
returnval:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Return the value of the register in which function values
are typically returned. Can be used in probes where <envar>$return</envar> isn't
available. This is only a guess of the actual return value and can be
totally wrong. Normally only used in dwarfless probes.
</para>
</refsection>
</refentry></chapter>
<chapter id="rlimit.stp"><title>RLIMIT Tapset</title><para>
This set of functions is used to handle string which defines resource limits (RLIMIT_*) and returns
corresponding number of resource limit.
It contains the following functions:
</para><refentry id="API-rlimit-from-str">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::rlimit_from_str</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::rlimit_from_str</refname>
<refpurpose>
Symbolic string associated with resource limit code
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
rlimit_from_str:long(lim_str:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">lim_str</parameter></term>
<listitem>
<para>
The string representation of limit
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry></chapter>
<chapter id="dev.stp"><title>Device Tapset</title><para>
This set of functions is used to handle kernel and userspace device numbers.
It contains the following functions:
</para><refentry id="API-MAJOR">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::MAJOR</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::MAJOR</refname>
<refpurpose>
Extract major device number from a kernel device number (kdev_t)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
MAJOR:long(dev:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
Kernel device number to query.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-MINOR">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::MINOR</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::MINOR</refname>
<refpurpose>
Extract minor device number from a kernel device number (kdev_t)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
MINOR:long(dev:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
Kernel device number to query.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-MKDEV">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::MKDEV</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::MKDEV</refname>
<refpurpose>
Creates a value that can be compared to a kernel device number (kdev_t)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
MKDEV:long(major:long,minor:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">major</parameter></term>
<listitem>
<para>
Intended major device number.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">minor</parameter></term>
<listitem>
<para>
Intended minor device number.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-usrdev2kerndev">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::usrdev2kerndev</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::usrdev2kerndev</refname>
<refpurpose>
Converts a user-space device number into the format used in the kernel
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
usrdev2kerndev:long(dev:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
Device number in user-space format.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry></chapter>
<chapter id="dentry.stp"><title>Directory-entry (dentry) Tapset</title><para>
This family of functions is used to map kernel VFS
directory entry pointers to file or full path names.
</para><refentry id="API-d-name">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::d_name</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::d_name</refname>
<refpurpose>
get the dirent name
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
d_name:string(dentry:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dentry</parameter></term>
<listitem>
<para>
Pointer to dentry.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>

Returns the dirent name (path basename).
</para>
</refsection>
</refentry><refentry id="API-d-path">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::d_path</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::d_path</refname>
<refpurpose>
get the full nameidata path
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
d_path:string(nd:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">nd</parameter></term>
<listitem>
<para>
Pointer to nameidata.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>

Returns the full dirent name (full path to the root), like
the kernel d_path function.
</para>
</refsection>
</refentry><refentry id="API-fullpath-struct-file">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::fullpath_struct_file</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::fullpath_struct_file</refname>
<refpurpose>
get the full path
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
fullpath_struct_file:string(task:long,file:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">file</parameter></term>
<listitem>
<para>
Pointer to <quote>struct file</quote>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>

Returns the full dirent name (full path to the root), like
the kernel d_path function.
</para>
</refsection>
</refentry><refentry id="API-fullpath-struct-nameidata">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::fullpath_struct_nameidata</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::fullpath_struct_nameidata</refname>
<refpurpose>
get the full nameidata path
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
fullpath_struct_nameidata(nd:)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">nd</parameter></term>
<listitem>
<para>
Pointer to <quote>struct nameidata</quote>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>

Returns the full dirent name (full path to the root), like
the kernel (and systemtap-tapset) d_path function, with a <quote>/</quote>.
</para>
</refsection>
</refentry><refentry id="API-fullpath-struct-path">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::fullpath_struct_path</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::fullpath_struct_path</refname>
<refpurpose>
get the full path
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
fullpath_struct_path:string(path:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">path</parameter></term>
<listitem>
<para>
Pointer to <quote>struct path</quote>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>

Returns the full dirent name (full path to the root), like
the kernel d_path function.
</para>
</refsection>
</refentry><refentry id="API-inode-name">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::inode_name</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::inode_name</refname>
<refpurpose>
get the inode name
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
inode_name:string(inode:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">inode</parameter></term>
<listitem>
<para>
Pointer to inode.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>

Returns the first path basename associated with the given inode.
</para>
</refsection>
</refentry><refentry id="API-inode-path">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::inode_path</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::inode_path</refname>
<refpurpose>
get the path to an inode
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
inode_path:string(inode:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">inode</parameter></term>
<listitem>
<para>
Pointer to inode.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>

Returns the full path associated with the given inode.
</para>
</refsection>
</refentry><refentry id="API-real-mount">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::real_mount</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::real_mount</refname>
<refpurpose>
get the 'struct mount' pointer
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
real_mount:long(vfsmnt:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">vfsmnt</parameter></term>
<listitem>
<para>
Pointer to 'struct vfsmount'
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>

Returns the 'struct mount' pointer value for a 'struct vfsmount'
pointer.
</para>
</refsection>
</refentry><refentry id="API-reverse-path-walk">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::reverse_path_walk</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::reverse_path_walk</refname>
<refpurpose>
get the full dirent path
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
reverse_path_walk:string(dentry:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dentry</parameter></term>
<listitem>
<para>
Pointer to dentry.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>

Returns the path name (partial path to mount point).
</para>
</refsection>
</refentry><refentry id="API-task-dentry-path">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::task_dentry_path</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::task_dentry_path</refname>
<refpurpose>
get the full dentry path
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
task_dentry_path:string(task:long,dentry:long,vfsmnt:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">task</parameter></term>
<listitem>
<para>
task_struct pointer.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dentry</parameter></term>
<listitem>
<para>
direntry pointer.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vfsmnt</parameter></term>
<listitem>
<para>
vfsmnt pointer.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>

Returns the full dirent name (full path to the root), like
the kernel d_path function.
</para>
</refsection>
</refentry></chapter>
<chapter id="logging.stp"><title>Logging Tapset</title><para>
This family of functions is used to send simple
message strings to various destinations.
</para><refentry id="API-abort">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::abort</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::abort</refname>
<refpurpose>
Immediately shutting down probing script.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
abort()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This is similar to <function moreinfo="none">exit</function> but immediately aborts
the current probe handler instead of waiting for its
completion. Probe handlers already running on *other* CPU cores,
however, will still continue to their completion. Unlike <function moreinfo="none">error</function>,
this function call cannot be caught by 'try ... catch'.
</para>
</refsection>
</refentry><refentry id="API-assert">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::assert</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::assert</refname>
<refpurpose>
evaluate assertion
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) assert(expression:long)</programlisting>
<programlisting format="linespecific">2) assert(expression:long,msg:string)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">expression</parameter></term>
<listitem>
<para>
The expression to evaluate
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">msg</parameter></term>
<listitem>
<para>
The formatted message string
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>1) This function checks the expression and aborts the
current running probe if expression evaluates to zero. Uses<function moreinfo="none">error</function>
and may be caught by try{} catch{}. A default message will be
displayed.
</para>
<para>2) This function checks the expression and aborts the
current running probe if expression evaluates to zero. Uses<function moreinfo="none">error</function>
and may be caught by try{} catch{}. The specified message will be
displayed.
</para>
</refsection>
</refentry><refentry id="API-dump-stack">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::dump_stack</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::dump_stack</refname>
<refpurpose>
Send the kernel backtrace to the kernel trace buffer
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
dump_stack()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Print the current kernel backtrace to the kernel trace buffer.
not be safely called from all kernel probe contexts, so
is restricted to guru mode only. Under the hood, it calls the kernel C API
function dump_stack directly.
</para>
</refsection>
</refentry><refentry id="API-error">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::error</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::error</refname>
<refpurpose>
Send an error message
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
error(msg:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">msg</parameter></term>
<listitem>
<para>
The formatted message string
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
An implicit end-of-line is added.  staprun prepends
the string <quote>ERROR:</quote>.  Sending an error message aborts the currently
running probe.  Depending on the MAXERRORS parameter, it may
trigger an <function moreinfo="none">exit</function>.
</para>
</refsection>
</refentry><refentry id="API-exit">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::exit</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::exit</refname>
<refpurpose>
Start shutting down probing script.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
exit()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This only enqueues a request to start
shutting down the script.  New probes will not fire
(except <quote>end</quote> probes), but all currently   
running ones may complete their work.
</para>
</refsection>
</refentry><refentry id="API-ftrace">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ftrace</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ftrace</refname>
<refpurpose>
Send a message to the ftrace ring-buffer
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ftrace(msg:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">msg</parameter></term>
<listitem>
<para>
The formatted message string
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
If the ftrace ring-buffer is configured &amp; available,
see /debugfs/tracing/trace for the message.  Otherwise, the
message may be quietly dropped.  An implicit end-of-line is added.
</para>
</refsection>
</refentry><refentry id="API-log">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::log</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::log</refname>
<refpurpose>
Send a line to the common trace buffer
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
log(msg:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">msg</parameter></term>
<listitem>
<para>
The formatted message string
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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. 
</para>
</refsection>
</refentry><refentry id="API-printk">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::printk</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::printk</refname>
<refpurpose>
Send a message to the kernel trace buffer
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
printk(level:long,msg:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">level</parameter></term>
<listitem>
<para>
an integer for the severity level (0=KERN_EMERG ... 7=KERN_DEBUG)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">msg</parameter></term>
<listitem>
<para>
The formatted message string
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-warn">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::warn</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::warn</refname>
<refpurpose>
Send a line to the warning stream
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
warn(msg:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">msg</parameter></term>
<listitem>
<para>
The formatted message string
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry></chapter>
<chapter id="queue_stats.stp"><title>Queue Statistics Tapset</title><para>
This family of functions is used to track performance of queuing systems.
</para><refentry id="API-qs-done">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::qs_done</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::qs_done</refname>
<refpurpose>
Function to record finishing request
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
qs_done(qname:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">qname</parameter></term>
<listitem>
<para>
the name of the service that finished 
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function records that a request 
originally from the given queue has completed being 
serviced.
</para>
</refsection>
</refentry><refentry id="API-qs-run">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::qs_run</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::qs_run</refname>
<refpurpose>
Function to record being moved from wait queue to being serviced
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
qs_run(qname:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">qname</parameter></term>
<listitem>
<para>
the name of the service being moved and started 
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function records that the previous enqueued
request was removed from the given wait queue and is now 
being serviced. 
</para>
</refsection>
</refentry><refentry id="API-qs-wait">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::qs_wait</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::qs_wait</refname>
<refpurpose>
Function to record enqueue requests
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
qs_wait(qname:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">qname</parameter></term>
<listitem>
<para>
the name of the queue requesting enqueue
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function records that a new request
was enqueued for the given queue name.
</para>
</refsection>
</refentry><refentry id="API-qsq-blocked">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::qsq_blocked</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::qsq_blocked</refname>
<refpurpose>
Returns the time reqest was on the wait queue
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
qsq_blocked:long(qname:string,scale:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">qname</parameter></term>
<listitem>
<para>
queue name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">scale</parameter></term>
<listitem>
<para>
scale variable to take account for interval fraction
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the fraction of elapsed time during
which one or more requests were on the wait queue.
</para>
</refsection>
</refentry><refentry id="API-qsq-print">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::qsq_print</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::qsq_print</refname>
<refpurpose>
Prints a line of statistics for the given queue
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
qsq_print(qname:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">qname</parameter></term>
<listitem>
<para>
queue name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function prints a line containing the following
</para>
</refsection>
<refsection>
<title>statistics for the given queue</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-qsq-service-time">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::qsq_service_time</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::qsq_service_time</refname>
<refpurpose>
Amount of time per request service
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
qsq_service_time:long(qname:string,scale:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">qname</parameter></term>
<listitem>
<para>
queue name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">scale</parameter></term>
<listitem>
<para>
scale variable to take account for interval fraction
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the average time in microseconds
required to service a request once it is removed from the wait queue.
</para>
</refsection>
</refentry><refentry id="API-qsq-start">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::qsq_start</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::qsq_start</refname>
<refpurpose>
Function to reset the stats for a queue
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
qsq_start(qname:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">qname</parameter></term>
<listitem>
<para>
the name of the service that finished 
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-qsq-throughput">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::qsq_throughput</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::qsq_throughput</refname>
<refpurpose>
Number of requests served per unit time
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
qsq_throughput:long(qname:string,scale:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">qname</parameter></term>
<listitem>
<para>
queue name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">scale</parameter></term>
<listitem>
<para>
scale variable to take account for interval fraction
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the average number or requests
served per microsecond. 
</para>
</refsection>
</refentry><refentry id="API-qsq-utilization">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::qsq_utilization</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::qsq_utilization</refname>
<refpurpose>
Fraction of time that any request was being serviced
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
qsq_utilization:long(qname:string,scale:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">qname</parameter></term>
<listitem>
<para>
queue name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">scale</parameter></term>
<listitem>
<para>
scale variable to take account for interval fraction
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the average time in microseconds
that at least one request was being serviced. 
</para>
</refsection>
</refentry><refentry id="API-qsq-wait-queue-length">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::qsq_wait_queue_length</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::qsq_wait_queue_length</refname>
<refpurpose>
length of wait queue
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
qsq_wait_queue_length:long(qname:string,scale:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">qname</parameter></term>
<listitem>
<para>
queue name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">scale</parameter></term>
<listitem>
<para>
scale variable to take account for interval fraction
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the average length of the wait queue 
</para>
</refsection>
</refentry><refentry id="API-qsq-wait-time">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::qsq_wait_time</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::qsq_wait_time</refname>
<refpurpose>
Amount of time in queue + service per request
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
qsq_wait_time:long(qname:string,scale:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">qname</parameter></term>
<listitem>
<para>
queue name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">scale</parameter></term>
<listitem>
<para>
scale variable to take account for interval fraction
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the average time in microseconds
that it took for a request to be serviced (<function moreinfo="none">qs_wait</function> to <function moreinfo="none">qa_done</function>).
</para>
</refsection>
</refentry></chapter>
<chapter id="random.stp"><title>Random functions Tapset</title><para>
These functions deal with random number generation.
</para><refentry id="API-randint">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::randint</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::randint</refname>
<refpurpose>
Return a random number between [0,n)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
randint:long(n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
Number past upper limit of range, not larger than 2**20.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry></chapter>
<chapter id="conversions.stp"><title>String and data retrieving functions Tapset</title><para>
Functions to retrieve strings and other primitive types from
the kernel or a user space programs based on addresses. All
strings are of a maximum length given by MAXSTRINGLEN.
</para><refentry id="API-atomic-long-read">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::atomic_long_read</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::atomic_long_read</refname>
<refpurpose>
Retrieves an atomic long variable from kernel memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
atomic_long_read:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
pointer to atomic long variable
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-atomic-read">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::atomic_read</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::atomic_read</refname>
<refpurpose>
Retrieves an atomic variable from kernel memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
atomic_read:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
pointer to atomic variable
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Safely perform the read of an atomic variable.
</para>
</refsection>
</refentry><refentry id="API-kernel-buffer-quoted">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::kernel_buffer_quoted</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::kernel_buffer_quoted</refname>
<refpurpose>
Retrieves and quotes buffer from kernel space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) kernel_buffer_quoted:string(addr:long,inlen:long)</programlisting>
<programlisting format="linespecific">2) kernel_buffer_quoted:string(addr:long,inlen:long,outlen:long)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the kernel space address to retrieve the buffer from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">inlen</parameter></term>
<listitem>
<para>
the exact length of the buffer to read
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outlen</parameter></term>
<listitem>
<para>
the maximum length of the output string
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>1) Reads inlen characters of a buffer from the given kernel space
memory address, and returns up to MAXSTRINGLEN 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 kernel space data is not accessible at
the given address, the address itself is returned as a string, without
double quotes.</para>
<para>2) Reads inlen characters of a buffer from the given kernel 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 kernel space data is not accessible at
the given address, the address itself is returned as a string, without
double quotes.</para>
</refsection>
</refentry><refentry id="API-kernel-buffer-quoted-error">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::kernel_buffer_quoted_error</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::kernel_buffer_quoted_error</refname>
<refpurpose>
Retrieves and quotes buffer from kernel space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
kernel_buffer_quoted_error:string(addr:long,inlen:long,outlen:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the kernel space address to retrieve the buffer from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">inlen</parameter></term>
<listitem>
<para>
the exact length of the buffer to read
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outlen</parameter></term>
<listitem>
<para>
the maximum length of the output string
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Reads inlen characters of a buffer from the given kernel 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 kernel space data is not accessible at
the given address, an error is thrown.
</para>
</refsection>
</refentry><refentry id="API-kernel-char">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::kernel_char</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::kernel_char</refname>
<refpurpose>
Retrieves a char value stored in kernel memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
kernel_char:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The kernel address to retrieve the char from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the char value from a given kernel memory address.
Reports an error when reading from the given address fails.
</para>
</refsection>
</refentry><refentry id="API-kernel-int">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::kernel_int</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::kernel_int</refname>
<refpurpose>
Retrieves an int value stored in kernel memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
kernel_int:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The kernel address to retrieve the int from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the int value from a given kernel memory address.
Reports an error when reading from the given address fails.
</para>
</refsection>
</refentry><refentry id="API-kernel-long">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::kernel_long</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::kernel_long</refname>
<refpurpose>
Retrieves a long value stored in kernel memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
kernel_long:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The kernel address to retrieve the long from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the long value from a given kernel memory address.
Reports an error when reading from the given address fails.
</para>
</refsection>
</refentry><refentry id="API-kernel-pointer">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::kernel_pointer</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::kernel_pointer</refname>
<refpurpose>
Retrieves a pointer value stored in kernel memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
kernel_pointer:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The kernel address to retrieve the pointer from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the pointer value from a given kernel memory
address. Reports an error when reading from the given address
fails.
</para>
</refsection>
</refentry><refentry id="API-kernel-short">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::kernel_short</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::kernel_short</refname>
<refpurpose>
Retrieves a short value stored in kernel memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
kernel_short:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The kernel address to retrieve the short from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the short value from a given kernel memory address.
Reports an error when reading from the given address fails.
</para>
</refsection>
</refentry><refentry id="API-kernel-string">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::kernel_string</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::kernel_string</refname>
<refpurpose>
Retrieves string from kernel memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) kernel_string:string(addr:long)</programlisting>
<programlisting format="linespecific">2) kernel_string:string(addr:long,err_msg:string)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The kernel address to retrieve the string from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">err_msg</parameter></term>
<listitem>
<para>
The error message to return when data isn't available
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>1) This function returns the null terminated C string
from a given kernel memory address. Reports an error on string
copy fault.</para>
<para>2) This function returns the null terminated C string
from a given kernel memory address. Reports the given error message
on string copy fault.</para>
</refsection>
</refentry><refentry id="API-kernel-string-n">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::kernel_string_n</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::kernel_string_n</refname>
<refpurpose>
Retrieves string of given length from kernel memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
kernel_string_n:string(addr:long,n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The kernel address to retrieve the string from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
The maximum length of the string (if not null terminated)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the C string of a maximum given length from a
given kernel memory address. Reports an error on string copy fault.
</para>
</refsection>
</refentry><refentry id="API-kernel-string-quoted">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::kernel_string_quoted</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::kernel_string_quoted</refname>
<refpurpose>
Retrieves and quotes string from kernel memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
kernel_string_quoted:string(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the kernel memory address to retrieve the string from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-kernel-string-quoted-utf16">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::kernel_string_quoted_utf16</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::kernel_string_quoted_utf16</refname>
<refpurpose>
Quote given kernel UTF-16 string.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
kernel_string_quoted_utf16:string(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The kernel address to retrieve the string from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function combines quoting as per <parameter moreinfo="none">string_quoted</parameter>
and UTF-16 decoding as per <parameter moreinfo="none">kernel_string_utf16</parameter>.
</para>
</refsection>
</refentry><refentry id="API-kernel-string-quoted-utf32">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::kernel_string_quoted_utf32</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::kernel_string_quoted_utf32</refname>
<refpurpose>
Quote given UTF-32 kernel string.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
kernel_string_quoted_utf32:string(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The kernel address to retrieve the string from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function combines quoting as per <parameter moreinfo="none">string_quoted</parameter>
and UTF-32 decoding as per <parameter moreinfo="none">kernel_string_utf32</parameter>.
</para>
</refsection>
</refentry><refentry id="API-kernel-string-utf16">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::kernel_string_utf16</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::kernel_string_utf16</refname>
<refpurpose>
Retrieves UTF-16 string from kernel memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) kernel_string_utf16:string(addr:long)</programlisting>
<programlisting format="linespecific">2) kernel_string_utf16:string(addr:long,err_msg:string)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The kernel address to retrieve the string from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">err_msg</parameter></term>
<listitem>
<para>
The error message to return when data isn't available
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>1) 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.</para>
<para>2) 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.</para>
</refsection>
</refentry><refentry id="API-kernel-string-utf32">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::kernel_string_utf32</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::kernel_string_utf32</refname>
<refpurpose>
Retrieves UTF-32 string from kernel memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) kernel_string_utf32:string(addr:long)</programlisting>
<programlisting format="linespecific">2) kernel_string_utf32:string(addr:long,err_msg:string)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The kernel address to retrieve the string from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">err_msg</parameter></term>
<listitem>
<para>
The error message to return when data isn't available
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>1) 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.</para>
<para>2) 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.</para>
</refsection>
</refentry><refentry id="API-user-buffer-quoted">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_buffer_quoted</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_buffer_quoted</refname>
<refpurpose>
Retrieves and quotes buffer from user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_buffer_quoted:string(addr:long,inlen:long,outlen:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the buffer from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">inlen</parameter></term>
<listitem>
<para>
the exact length of the buffer to read
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outlen</parameter></term>
<listitem>
<para>
the maximum length of the output string
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Reads inlen characters of a buffer 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 user space data is not accessible at
the given address, the address itself is returned as a string, without
double quotes.
</para>
</refsection>
</refentry><refentry id="API-user-buffer-quoted-error">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_buffer_quoted_error</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_buffer_quoted_error</refname>
<refpurpose>
Retrieves and quotes buffer from user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_buffer_quoted_error:string(addr:long,inlen:long,outlen:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the buffer from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">inlen</parameter></term>
<listitem>
<para>
the exact length of the buffer to read
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outlen</parameter></term>
<listitem>
<para>
the maximum length of the output string
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Reads inlen characters of a buffer 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 user space data is not accessible at
the given address, an error is thrown.
</para>
</refsection>
</refentry><refentry id="API-user-char">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_char</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_char</refname>
<refpurpose>
Retrieves a char value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_char:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the char from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the char value from a given user space address.
Returns zero when user space data is not accessible.
</para>
</refsection>
</refentry><refentry id="API-user-char-error">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_char_error</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_char_error</refname>
<refpurpose>
Retrieves a char value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_char_error:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the char from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the char value from a given user space address.
If the user space data is not accessible, an error will occur.
</para>
</refsection>
</refentry><refentry id="API-user-char-warn">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_char_warn</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_char_warn</refname>
<refpurpose>
Retrieves a char value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_char_warn:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the char from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the char value from a given user space
address.  Returns zero when user space data is not accessible and
warns about the failure (but does not error).
</para>
</refsection>
</refentry><refentry id="API-user-int">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_int</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_int</refname>
<refpurpose>
Retrieves an int value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_int:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the int from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the int value from a given user space address.
Returns zero when user space data is not accessible.
</para>
</refsection>
</refentry><refentry id="API-user-int16">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_int16</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_int16</refname>
<refpurpose>
Retrieves a 16-bit integer value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_int16:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the 16-bit integer from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the 16-bit integer value from a given user space
address.  Returns zero when user space data is not accessible.
</para>
</refsection>
</refentry><refentry id="API-user-int16-error">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_int16_error</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_int16_error</refname>
<refpurpose>
Retrieves a 16-bit integer value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_int16_error:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the 16-bit integer from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the 16-bit integer value from a given user
space address.  If the user space data is not accessible, an error
will occur.
</para>
</refsection>
</refentry><refentry id="API-user-int32">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_int32</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_int32</refname>
<refpurpose>
Retrieves a 32-bit integer value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_int32:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the 32-bit integer from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the 32-bit integer value from a given user space
address.  Returns zero when user space data is not accessible.
</para>
</refsection>
</refentry><refentry id="API-user-int32-error">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_int32_error</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_int32_error</refname>
<refpurpose>
Retrieves a 32-bit integer value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_int32_error:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the 32-bit integer from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the 32-bit integer value from a given user
space address.  If the user space data is not accessible, an error
will occur.
</para>
</refsection>
</refentry><refentry id="API-user-int64">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_int64</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_int64</refname>
<refpurpose>
Retrieves a 64-bit integer value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_int64:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the 64-bit integer from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the 64-bit integer value from a given user space
address.  Returns zero when user space data is not accessible.
</para>
</refsection>
</refentry><refentry id="API-user-int64-error">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_int64_error</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_int64_error</refname>
<refpurpose>
Retrieves a 64-bit integer value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_int64_error:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the 64-bit integer from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the 64-bit integer value from a given user
space address.  If the user space data is not accessible, an error
will occur.
</para>
</refsection>
</refentry><refentry id="API-user-int8">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_int8</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_int8</refname>
<refpurpose>
Retrieves a 8-bit integer value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_int8:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the 8-bit integer from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the 8-bit integer value from a given user space
address.  Returns zero when user space data is not accessible.
</para>
</refsection>
</refentry><refentry id="API-user-int8-error">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_int8_error</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_int8_error</refname>
<refpurpose>
Retrieves a 8-bit integer value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_int8_error:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the 8-bit integer from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the 8-bit integer value from a given user
space address.  If the user space data is not accessible, an error
will occur.
</para>
</refsection>
</refentry><refentry id="API-user-int-error">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_int_error</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_int_error</refname>
<refpurpose>
Retrieves an int value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_int_error:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the int from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the int value from a given user space address.
If the user space data is not accessible, an error will occur.
</para>
</refsection>
</refentry><refentry id="API-user-int-warn">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_int_warn</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_int_warn</refname>
<refpurpose>
Retrieves an int value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_int_warn:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the int from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the int value from a given user space address.
Returns zero when user space data is not accessible and warns about
the failure (but does not error).
</para>
</refsection>
</refentry><refentry id="API-user-long">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_long</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_long</refname>
<refpurpose>
Retrieves a long value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_long:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the long from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
</refentry><refentry id="API-user-long-error">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_long_error</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_long_error</refname>
<refpurpose>
Retrieves a long value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_long_error:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the long from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the long value from a given user space
address.  If the user space data is not accessible, an error will
occur.  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).
</para>
</refsection>
</refentry><refentry id="API-user-long-warn">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_long_warn</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_long_warn</refname>
<refpurpose>
Retrieves a long value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_long_warn:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the long from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the long value from a given user space
address.  Returns zero when user space data is not accessible and
warns about the failure (but does not error).  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).
</para>
</refsection>
</refentry><refentry id="API-user-short">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_short</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_short</refname>
<refpurpose>
Retrieves a short value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_short:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the short from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the short value from a given user space address.
Returns zero when user space data is not accessible.
</para>
</refsection>
</refentry><refentry id="API-user-short-error">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_short_error</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_short_error</refname>
<refpurpose>
Retrieves a short value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_short_error:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the short from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the short value from a given user space address.
If the user space data is not accessible, an error will occur.
</para>
</refsection>
</refentry><refentry id="API-user-short-warn">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_short_warn</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_short_warn</refname>
<refpurpose>
Retrieves a short value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_short_warn:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the short from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the short value from a given user space
address.  Returns zero when user space data is not accessible and
warns about the failure (but does not error).
</para>
</refsection>
</refentry><refentry id="API-user-string">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_string</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_string</refname>
<refpurpose>
Retrieves string from user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) user_string:string(addr:long)</programlisting>
<programlisting format="linespecific">2) user_string:string(addr:long,err_msg:string)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the string from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">err_msg</parameter></term>
<listitem>
<para>
the error message to return when data isn't available
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>1) 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.</para>
<para>2) 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.</para>
</refsection>
</refentry><refentry id="API-user-string-n">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_string_n</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_string_n</refname>
<refpurpose>
Retrieves string of given length from user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) user_string_n:string(addr:long,n:long)</programlisting>
<programlisting format="linespecific">2) user_string_n:string(addr:long,n:long,err_msg:string)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the string from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
the maximum length of the string (if not null terminated)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">err_msg</parameter></term>
<listitem>
<para>
the error message to return when data isn't available
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>1) 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.</para>
<para>2) 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.</para>
</refsection>
</refentry><refentry id="API-user-string-n-nofault">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_string_n_nofault</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_string_n_nofault</refname>
<refpurpose>
Retrieves string of given length from user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_string_n_nofault(addr:long,n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the string from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
the maximum length of the string (if not null terminated)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the C string of a maximum given length from a
given user space address. Returns the empty string when userspace
data is not accessible at the given address.
</para>
</refsection>
</refentry><refentry id="API-user-string-n-quoted">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_string_n_quoted</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_string_n_quoted</refname>
<refpurpose>
Retrieves and quotes string from user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) user_string_n_quoted:string(addr:long,n:long)</programlisting>
<programlisting format="linespecific">2) user_string_n_quoted:string(addr:long,inlen:long,outlen:long)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the string from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
the maximum length of the string (if not null terminated)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">inlen</parameter></term>
<listitem>
<para>
the maximum length of the string to read (if not null terminated)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">outlen</parameter></term>
<listitem>
<para>
the maximum length of the output string
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>1) 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.</para>
<para>2) 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.</para>
</refsection>
</refentry><refentry id="API-user-string-n-warn">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_string_n_warn</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_string_n_warn</refname>
<refpurpose>
Retrieves string from user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) user_string_n_warn:string(addr:long,n:long)</programlisting>
<programlisting format="linespecific">2) user_string_n_warn:string(addr:long,n:long,warn_msg:string)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the string from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
the maximum length of the string (if not null terminated)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">warn_msg</parameter></term>
<listitem>
<para>
the warning message to return when data isn't available
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>1) Returns up to n characters of a C string from a given
user space memory address. Reports<quote>&lt;unknown&gt;</quote> on the rare cases
when userspace data is not accessible and warns (but does not abort)
about the failure.
</para>
<para>2) 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.</para>
</refsection>
</refentry><refentry id="API-user-string-nofault">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_string_nofault</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_string_nofault</refname>
<refpurpose>
Retrieves string from user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_string_nofault:string(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the string from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the null terminated C string from a given user space
memory address. Returns the empty string if userspace data is not accessible.
</para>
</refsection>
</refentry><refentry id="API-user-string-quoted">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_string_quoted</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_string_quoted</refname>
<refpurpose>
Retrieves and quotes string from user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_string_quoted:string(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the string from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-user-string-quoted-utf16">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_string_quoted_utf16</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_string_quoted_utf16</refname>
<refpurpose>
Quote given user UTF-16 string.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_string_quoted_utf16:string(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The user address to retrieve the string from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function combines quoting as per <parameter moreinfo="none">string_quoted</parameter>
and UTF-16 decoding as per <parameter moreinfo="none">user_string_utf16</parameter>.
</para>
</refsection>
</refentry><refentry id="API-user-string-quoted-utf32">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_string_quoted_utf32</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_string_quoted_utf32</refname>
<refpurpose>
Quote given user UTF-32 string.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_string_quoted_utf32:string(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The user address to retrieve the string from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function combines quoting as per <parameter moreinfo="none">string_quoted</parameter>
and UTF-32 decoding as per <parameter moreinfo="none">user_string_utf32</parameter>.
</para>
</refsection>
</refentry><refentry id="API-user-string-utf16">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_string_utf16</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_string_utf16</refname>
<refpurpose>
Retrieves UTF-16 string from user memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) user_string_utf16:string(addr:long)</programlisting>
<programlisting format="linespecific">2) user_string_utf16:string(addr:long,err_msg:string)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The user address to retrieve the string from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">err_msg</parameter></term>
<listitem>
<para>
The error message to return when data isn't available
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>1) 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.</para>
<para>2) 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.</para>
</refsection>
</refentry><refentry id="API-user-string-utf32">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_string_utf32</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_string_utf32</refname>
<refpurpose>
Retrieves UTF-32 string from user memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) user_string_utf32:string(addr:long)</programlisting>
<programlisting format="linespecific">2) user_string_utf32:string(addr:long,err_msg:string)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The user address to retrieve the string from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">err_msg</parameter></term>
<listitem>
<para>
The error message to return when data isn't available
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>1) 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.</para>
<para>2) 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.</para>
</refsection>
</refentry><refentry id="API-user-string-warn">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_string_warn</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_string_warn</refname>
<refpurpose>
Retrieves string from user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) user_string_warn:string(addr:long)</programlisting>
<programlisting format="linespecific">2) user_string_warn:string(addr:long,warn_msg:string)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the string from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">warn_msg</parameter></term>
<listitem>
<para>
the warning message to return when data isn't available
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>1) 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.</para>
<para>2) 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.</para>
</refsection>
</refentry><refentry id="API-user-uint16">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_uint16</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_uint16</refname>
<refpurpose>
Retrieves an unsigned 16-bit integer value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_uint16:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the unsigned 16-bit integer from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the unsigned 16-bit integer value from a given user
space address.  Returns zero when user space data is not accessible.
</para>
</refsection>
</refentry><refentry id="API-user-uint16-error">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_uint16_error</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_uint16_error</refname>
<refpurpose>
Retrieves an unsigned 16-bit integer value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_uint16_error:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the unsigned 16-bit integer from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the unsigned 16-bit integer value from a given user
space address.  If the user space data is not accessible, an error
will occur.
</para>
</refsection>
</refentry><refentry id="API-user-uint32">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_uint32</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_uint32</refname>
<refpurpose>
Retrieves an unsigned 32-bit integer value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_uint32:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the unsigned 32-bit integer from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the unsigned 32-bit integer value from a given user
space address.  Returns zero when user space data is not accessible.
</para>
</refsection>
</refentry><refentry id="API-user-uint32-error">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_uint32_error</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_uint32_error</refname>
<refpurpose>
Retrieves an unsigned 32-bit integer value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_uint32_error:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the unsigned 32-bit integer from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the unsigned 32-bit integer value from a given
user space address.  If the user space data is not accessible, an
error will occur.
</para>
</refsection>
</refentry><refentry id="API-user-uint64">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_uint64</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_uint64</refname>
<refpurpose>
Retrieves an unsigned 64-bit integer value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_uint64:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the unsigned 64-bit integer from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the unsigned 64-bit integer value from a given user
space address.  Returns zero when user space data is not accessible.
</para>
</refsection>
</refentry><refentry id="API-user-uint64-error">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_uint64_error</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_uint64_error</refname>
<refpurpose>
Retrieves an unsigned 64-bit integer value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_uint64_error:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the unsigned 64-bit integer from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the unsigned 64-bit integer value from a given
user space address.  If the user space data is not accessible, an
error will occur.
</para>
</refsection>
</refentry><refentry id="API-user-uint8">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_uint8</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_uint8</refname>
<refpurpose>
Retrieves a unsigned 8-bit integer value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_uint8:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the unsigned 8-bit integer from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the unsigned 8-bit integer value from a given
user space address.  Returns zero when user space data is not
accessible.
</para>
</refsection>
</refentry><refentry id="API-user-uint8-error">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_uint8_error</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_uint8_error</refname>
<refpurpose>
Retrieves a unsigned 8-bit integer value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_uint8_error:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the unsigned 8-bit integer from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the unsigned 8-bit integer value from a given
user space address.  If the user space data is not accessible, an
error will occur.
</para>
</refsection>
</refentry><refentry id="API-user-ulong">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_ulong</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_ulong</refname>
<refpurpose>
Retrieves an unsigned long value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_ulong:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the unsigned long from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
</refentry><refentry id="API-user-ulong-error">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_ulong_error</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_ulong_error</refname>
<refpurpose>
Retrieves a unsigned long value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_ulong_error:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the unsigned long from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the unsigned long value from a given user space
address.  If the user space data is not accessible, an error will
occur.  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).
</para>
</refsection>
</refentry><refentry id="API-user-ulong-warn">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_ulong_warn</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_ulong_warn</refname>
<refpurpose>
Retrieves an unsigned long value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_ulong_warn:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the unsigned long from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the unsigned long value from a given user
space address.  Returns zero when user space data is not accessible
and warns about the failure (but does not error).  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).
</para>
</refsection>
</refentry><refentry id="API-user-ushort">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_ushort</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_ushort</refname>
<refpurpose>
Retrieves an unsigned short value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_ushort:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the unsigned short from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the unsigned short value from a given user
space address.  Returns zero when user space data is not accessible.
</para>
</refsection>
</refentry><refentry id="API-user-ushort-error">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_ushort_error</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_ushort_error</refname>
<refpurpose>
Retrieves an unsigned short value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_ushort_error:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the unsigned short from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the unsigned short value from a given user
space address.  If the user space data is not accessible, an error
will occur.
</para>
</refsection>
</refentry><refentry id="API-user-ushort-warn">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::user_ushort_warn</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::user_ushort_warn</refname>
<refpurpose>
Retrieves an unsigned short value stored in user space
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
user_ushort_warn:long(addr:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
the user space address to retrieve the unsigned short from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the unsigned short value from a given user
space address.  Returns zero when user space data is not accessible
and warns about the failure (but does not error).
</para>
</refsection>
</refentry></chapter>

<chapter id="conversions-guru.stp"><title>String and data writing functions Tapset</title><para>
The SystemTap guru mode can be used to test error handling
in kernel code by simulating faults. The functions in the
this tapset provide
standard methods of writing to primitive types in the kernel's
memory. All the functions in this tapset require the use of
guru mode (<command moreinfo="none">-g</command>).
</para><refentry id="API-set-kernel-char">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_kernel_char</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_kernel_char</refname>
<refpurpose>
Writes a char value to kernel memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_kernel_char(addr:long,val:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The kernel address to write the char to
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">val</parameter></term>
<listitem>
<para>
The char which is to be written
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
</refentry><refentry id="API-set-kernel-int">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_kernel_int</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_kernel_int</refname>
<refpurpose>
Writes an int value to kernel memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_kernel_int(addr:long,val:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The kernel address to write the int to
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">val</parameter></term>
<listitem>
<para>
The int which is to be written
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
</refentry><refentry id="API-set-kernel-long">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_kernel_long</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_kernel_long</refname>
<refpurpose>
Writes a long value to kernel memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_kernel_long(addr:long,val:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The kernel address to write the long to
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">val</parameter></term>
<listitem>
<para>
The long which is to be written
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
</refentry><refentry id="API-set-kernel-pointer">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_kernel_pointer</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_kernel_pointer</refname>
<refpurpose>
Writes a pointer value to kernel memory.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_kernel_pointer(addr:long,val:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The kernel address to write the pointer to
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">val</parameter></term>
<listitem>
<para>
The pointer which is to be written
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
</refentry><refentry id="API-set-kernel-short">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_kernel_short</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_kernel_short</refname>
<refpurpose>
Writes a short value to kernel memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_kernel_short(addr:long,val:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The kernel address to write the short to
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">val</parameter></term>
<listitem>
<para>
The short which is to be written
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
</refentry><refentry id="API-set-kernel-string">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_kernel_string</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_kernel_string</refname>
<refpurpose>
Writes a string to kernel memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_kernel_string(addr:long,val:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The kernel address to write the string to
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">val</parameter></term>
<listitem>
<para>
The string which is to be written
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Writes the given string to a given kernel
memory address. Reports an error on string copy fault.
Requires the use of guru mode (-g).
</para>
</refsection>
</refentry><refentry id="API-set-kernel-string-n">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_kernel_string_n</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_kernel_string_n</refname>
<refpurpose>
Writes a string of given length to kernel memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_kernel_string_n(addr:long,n:long,val:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The kernel address to write the string to
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
The maximum length of the string
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">val</parameter></term>
<listitem>
<para>
The string which is to be written
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
</refentry><refentry id="API-set-user-char">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_user_char</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_user_char</refname>
<refpurpose>
Writes a char value to user memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_user_char(addr:long,val:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The user address to write the char to
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">val</parameter></term>
<listitem>
<para>
The char which is to be written
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Writes the char value to a given user memory address.
Reports an error when writing to the given address fails.
Requires the use of guru mode (-g).
</para>
</refsection>
</refentry><refentry id="API-set-user-int">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_user_int</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_user_int</refname>
<refpurpose>
Writes an int value to user memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_user_int(addr:long,val:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The user address to write the int to
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">val</parameter></term>
<listitem>
<para>
The int which is to be written
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Writes the int value to a given user memory address.
Reports an error when writing to the given address fails.
Requires the use of guru mode (-g).
</para>
</refsection>
</refentry><refentry id="API-set-user-long">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_user_long</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_user_long</refname>
<refpurpose>
Writes a long value to user memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_user_long(addr:long,val:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The user address to write the long to
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">val</parameter></term>
<listitem>
<para>
The long which is to be written
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Writes the long value to a given user memory address.
Reports an error when writing to the given address fails.
Requires the use of guru mode (-g).
</para>
</refsection>
</refentry><refentry id="API-set-user-pointer">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_user_pointer</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_user_pointer</refname>
<refpurpose>
Writes a pointer value to user memory.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_user_pointer(addr:long,val:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The user address to write the pointer to
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">val</parameter></term>
<listitem>
<para>
The pointer which is to be written
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Writes the pointer value to a given user memory address.
Reports an error when writing to the given address fails.
Requires the use of guru mode (-g).
</para>
</refsection>
</refentry><refentry id="API-set-user-short">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_user_short</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_user_short</refname>
<refpurpose>
Writes a short value to user memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_user_short(addr:long,val:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The user address to write the short to
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">val</parameter></term>
<listitem>
<para>
The short which is to be written
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Writes the short value to a given user memory address.
Reports an error when writing to the given address fails.
Requires the use of guru mode (-g).
</para>
</refsection>
</refentry><refentry id="API-set-user-string">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_user_string</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_user_string</refname>
<refpurpose>
Writes a string to user memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_user_string(addr:long,val:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The user address to write the string to
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">val</parameter></term>
<listitem>
<para>
The string which is to be written
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Writes the given string to a given user memory address.
Reports an error when writing to the given address fails.
Requires the use of guru mode (-g).
</para>
</refsection>
</refentry><refentry id="API-set-user-string-arg">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_user_string_arg</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_user_string_arg</refname>
<refpurpose>
Writes a string to user memory.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_user_string_arg(addr:long,val:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The user address to write the string to
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">val</parameter></term>
<listitem>
<para>
The string which is to be written
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Writes the given string to a given user memory address.
Reports a warning on string copy fault.
Requires the use of guru mode (-g).
</para>
</refsection>
</refentry><refentry id="API-set-user-string-n">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::set_user_string_n</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::set_user_string_n</refname>
<refpurpose>
Writes a string of given length to user memory
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
set_user_string_n(addr:long,n:long,val:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">addr</parameter></term>
<listitem>
<para>
The user address to write the string to
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
The maximum length of the string
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">val</parameter></term>
<listitem>
<para>
The string which is to be written
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Writes the given string up to a maximum given length to a given
user memory address. Reports an error on string copy fault.
Requires the use of guru mode (-g).
</para>
</refsection>
</refentry></chapter>

<chapter id="guru-delay.stp"><title>Guru tapsets</title><para>
Functions to deliberately interfere with the system's behavior, in
order to inject faults or improve observability.
All the functions in this tapset require the use of
guru mode (<command moreinfo="none">-g</command>).
</para><refentry id="API-mdelay">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::mdelay</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::mdelay</refname>
<refpurpose>
millisecond delay
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
mdelay(ms:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">ms</parameter></term>
<listitem>
<para>
Number of milliseconds to delay.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function inserts a multi-millisecond busy-delay into a probe handler.
It requires guru mode.
</para>
</refsection>
</refentry><refentry id="API-panic">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::panic</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::panic</refname>
<refpurpose>
trigger a panic
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
panic(msg:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">msg</parameter></term>
<listitem>
<para>
message to pass to kernel's <function moreinfo="none">panic</function> function
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function triggers an immediate panic of the running
kernel with a user-specified panic message.
It requires guru mode.
</para>
</refsection>
</refentry><refentry id="API-raise">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::raise</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::raise</refname>
<refpurpose>
raise a signal in the current thread
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
raise(signo:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">signo</parameter></term>
<listitem>
<para>
signal number
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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 <function moreinfo="none">send_sig</function> failed.
It requires guru mode.
</para>
</refsection>
</refentry><refentry id="API-udelay">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::udelay</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::udelay</refname>
<refpurpose>
microsecond delay
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
udelay(us:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">us</parameter></term>
<listitem>
<para>
Number of microseconds to delay.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function inserts a multi-microsecond busy-delay into a probe handler.
It requires guru mode.
</para>
</refsection>
</refentry></chapter>

<chapter id="string.stp"><title>A collection of standard string functions</title><para>
Functions to get the length, a substring, getting at individual
characters, string seaching, escaping, tokenizing, and converting
strings to longs.
</para><refentry id="API-isdigit">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::isdigit</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::isdigit</refname>
<refpurpose>
Checks for a digit
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
isdigit:long(str:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">str</parameter></term>
<listitem>
<para>
string to check
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Checks for a digit (0 through 9) as the first
character of a string.  Returns non-zero if true, and a zero if
false.
</para>
</refsection>
</refentry><refentry id="API-isinstr">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::isinstr</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::isinstr</refname>
<refpurpose>
Returns whether a string is a substring of another string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
isinstr:long(s1:string,s2:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">s1</parameter></term>
<listitem>
<para>
string to search in
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">s2</parameter></term>
<listitem>
<para>
substring to find
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns 1 if string <parameter moreinfo="none">s1</parameter> contains <parameter moreinfo="none">s2</parameter>,
otherwise zero. 
</para>
</refsection>
</refentry><refentry id="API-matched">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::matched</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::matched</refname>
<refpurpose>
Return a given matched subexpression.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
matched:string(n:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">n</parameter></term>
<listitem>
<para>
index to the subexpression to return. 0 corresponds to the
entire regular expression.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
returns the content of the n'th subexpression of the
last successful use of the =~ regex matching operator. Returns an
empty string if the n'th subexpression was not matched (e.g. due to
alternation). Throws an error if the last use of =~ was a failed
match, or if fewer than n subexpressions are present in the
original regexp.
</para>
</refsection>
</refentry><refentry id="API-matched-str">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::matched_str</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::matched_str</refname>
<refpurpose>
Return the last matched string.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
matched_str:string()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
returns the string matched by the last successful
use of the =~ regexp matching operator. Returns an error if the
last use of =~ led to a failed match.
</para>
</refsection>
</refentry><refentry id="API-ngroups">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ngroups</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ngroups</refname>
<refpurpose>
Number of subexpressions in the last match.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ngroups:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
returns the number of subexpressions from the
last successful use of the =~ regex matching operator.
</para><para>

Note that this number includes subexpressions which are present in
the regex but did not match any string; for example, given the
regex <quote>a|(b)</quote>, the subexpressions will count the group for (b)
regardless of whether it matched a string or not. Throws an error
if the last use of =~ was a failed match.
</para>
</refsection>
</refentry><refentry id="API-str-replace">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::str_replace</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::str_replace</refname>
<refpurpose>
str_replace Replaces all instances of a substring with another
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
str_replace:string(prnt_str:string,srch_str:string,rplc_str:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">prnt_str</parameter></term>
<listitem>
<para>
the string to search and replace in
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">srch_str</parameter></term>
<listitem>
<para>
the substring which is used to search in <parameter moreinfo="none">prnt_str</parameter> string
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rplc_str</parameter></term>
<listitem>
<para>
the substring which is used to replace <parameter moreinfo="none">srch_str</parameter>
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the given string with
substrings replaced.
</para>
</refsection>
</refentry><refentry id="API-string-quoted">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::string_quoted</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::string_quoted</refname>
<refpurpose>
Quotes a given string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
string_quoted:string(str:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">str</parameter></term>
<listitem>
<para>
The kernel address to retrieve the string from
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Returns the quoted string version of the given string,
with 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.
</para>
</refsection>
</refentry><refentry id="API-stringat">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::stringat</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::stringat</refname>
<refpurpose>
Returns the char at a given position in the string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
stringat:long(str:string,pos:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">str</parameter></term>
<listitem>
<para>
the string to fetch the character from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pos</parameter></term>
<listitem>
<para>
the position to get the character from  (first character is 0)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-strlen">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::strlen</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::strlen</refname>
<refpurpose>
Returns the length of a string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
strlen:long(s:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">s</parameter></term>
<listitem>
<para>
the string
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns the length of the string, which
can be zero up to MAXSTRINGLEN.
</para>
</refsection>
</refentry><refentry id="API-strpos">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::strpos</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::strpos</refname>
<refpurpose>
Returns location of a substring within another string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
strpos:long(s1:string,s2:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">s1</parameter></term>
<listitem>
<para>
string to search in
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">s2</parameter></term>
<listitem>
<para>
substring to find
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns location of the first occurence of string
<parameter moreinfo="none">s2</parameter> within <parameter moreinfo="none">s1</parameter>, namely the return value is 0 in case <parameter moreinfo="none">s2</parameter> is a prefix of <parameter moreinfo="none">s1</parameter>.
If <parameter moreinfo="none">s2</parameter> is not a substring of <parameter moreinfo="none">s1</parameter>, then the return value is -1.
</para>
</refsection>
</refentry><refentry id="API-strtol">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::strtol</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::strtol</refname>
<refpurpose>
strtol - Convert a string to a long
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
strtol:long(str:string,base:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">str</parameter></term>
<listitem>
<para>
string to convert
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">base</parameter></term>
<listitem>
<para>
the base to use
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function converts the string representation of a number to an integer. 
The <parameter moreinfo="none">base</parameter> parameter indicates the number base to assume for the string (eg. 16 for hex, 8 for octal, 2 for binary).
</para>
</refsection>
</refentry><refentry id="API-substr">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::substr</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::substr</refname>
<refpurpose>
Returns a substring
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
substr:string(str:string,start:long,length:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">str</parameter></term>
<listitem>
<para>
the string to take a substring from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">start</parameter></term>
<listitem>
<para>
starting position of the extracted string (first character is 0)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">length</parameter></term>
<listitem>
<para>
length of string to return
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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).
</para>
</refsection>
</refentry><refentry id="API-text-str">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::text_str</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::text_str</refname>
<refpurpose>
Escape any non-printable chars in a string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
text_str:string(input:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">input</parameter></term>
<listitem>
<para>
the string to escape
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-text-strn">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::text_strn</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::text_strn</refname>
<refpurpose>
Escape any non-printable chars in a string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
text_strn:string(input:string,len:long,quoted:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">input</parameter></term>
<listitem>
<para>
the string to escape
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">len</parameter></term>
<listitem>
<para>
maximum length of string to return (0 implies MAXSTRINGLEN)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">quoted</parameter></term>
<listitem>
<para>
put double quotes around the string. If input string is
truncated it will have <quote>...</quote> after the second quote
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-tokenize">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::tokenize</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::tokenize</refname>
<refpurpose>
Return the next non-empty token in a string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) tokenize:string(delim:string)</programlisting>
<programlisting format="linespecific">2) tokenize:string(input:string,delim:string)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">delim</parameter></term>
<listitem>
<para>
set of characters that delimit the tokens
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">input</parameter></term>
<listitem>
<para>
string to tokenize. If empty, returns the next non-empty token
in the string passed in the previous call to <function moreinfo="none">tokenize</function>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>1) This function 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.</para>
<para>2) 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.</para>
</refsection>
</refentry></chapter>
<chapter id="ansi.stp"><title>Utility functions for using ansi control chars in logs</title><para>
Utility functions for logging using ansi control characters. This
lets you manipulate the cursor position and character color output
and attributes of log messages.
</para><refentry id="API-ansi-clear-screen">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ansi_clear_screen</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ansi_clear_screen</refname>
<refpurpose>
Move cursor to top left and clear screen.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ansi_clear_screen()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-ansi-cursor-hide">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ansi_cursor_hide</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ansi_cursor_hide</refname>
<refpurpose>
Hides the cursor.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ansi_cursor_hide()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Sends ansi code for hiding the cursor.
</para>
</refsection>
</refentry><refentry id="API-ansi-cursor-move">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ansi_cursor_move</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ansi_cursor_move</refname>
<refpurpose>
Move cursor to new coordinates.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ansi_cursor_move(x:long,y:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">x</parameter></term>
<listitem>
<para>
Row to move the cursor to.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">y</parameter></term>
<listitem>
<para>
Colomn to move the cursor to.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Sends ansi code for positioning the cursor at row x
and column y. Coordinates start at one, (1,1) is the top-left corner.
</para>
</refsection>
</refentry><refentry id="API-ansi-cursor-restore">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ansi_cursor_restore</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ansi_cursor_restore</refname>
<refpurpose>
Restores a previously saved cursor position.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ansi_cursor_restore()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Sends ansi code for restoring the current cursor position
previously saved with <function moreinfo="none">ansi_cursor_save</function>.
</para>
</refsection>
</refentry><refentry id="API-ansi-cursor-save">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ansi_cursor_save</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ansi_cursor_save</refname>
<refpurpose>
Saves the cursor position.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ansi_cursor_save()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Sends ansi code for saving the current cursor position.
</para>
</refsection>
</refentry><refentry id="API-ansi-cursor-show">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ansi_cursor_show</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ansi_cursor_show</refname>
<refpurpose>
Shows the cursor.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ansi_cursor_show()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Sends ansi code for showing the cursor.
</para>
</refsection>
</refentry><refentry id="API-ansi-new-line">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ansi_new_line</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ansi_new_line</refname>
<refpurpose>
Move cursor to new line.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ansi_new_line()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Sends ansi code new line.
</para>
</refsection>
</refentry><refentry id="API-ansi-reset-color">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ansi_reset_color</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ansi_reset_color</refname>
<refpurpose>
Resets Select Graphic Rendition mode.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
ansi_reset_color()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
Sends ansi code to reset foreground, background and color
attribute to default values.
</para>
</refsection>
</refentry><refentry id="API-ansi-set-color">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::ansi_set_color</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::ansi_set_color</refname>
<refpurpose>
Set the ansi Select Graphic Rendition mode.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">1) ansi_set_color(fg:long)</programlisting>
<programlisting format="linespecific">2) ansi_set_color(fg:long,bg:long)</programlisting>
<programlisting format="linespecific">3) ansi_set_color(fg:long,bg:long,attr:long)</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">fg</parameter></term>
<listitem>
<para>
Foreground color to set.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bg</parameter></term>
<listitem>
<para>
Background color to set.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">attr</parameter></term>
<listitem>
<para>
Color attribute to set.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>1) 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).</para>
<para>2) 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).</para>
<para>3) 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).</para>
</refsection>
</refentry><refentry id="API-indent">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::indent</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::indent</refname>
<refpurpose>
returns an amount of space to indent
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
indent:string(delta:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">delta</parameter></term>
<listitem>
<para>
the amount of space added/removed for each call
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-indent-depth">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::indent_depth</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::indent_depth</refname>
<refpurpose>
returns the global nested-depth
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
indent_depth:long(delta:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">delta</parameter></term>
<listitem>
<para>
the amount of depth added/removed for each call
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns a number for appropriate indentation,
similar to <function moreinfo="none">indent</function>. 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.
</para>
</refsection>
</refentry><refentry id="API-thread-indent">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::thread_indent</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::thread_indent</refname>
<refpurpose>
returns an amount of space with the current task information
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
thread_indent:string(delta:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">delta</parameter></term>
<listitem>
<para>
the amount of space added/removed for each call
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-thread-indent-depth">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::thread_indent_depth</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::thread_indent_depth</refname>
<refpurpose>
returns the nested-depth of the current task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
thread_indent_depth:long(delta:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">delta</parameter></term>
<listitem>
<para>
the amount of depth added/removed for each call
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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
<function moreinfo="none">thread_indent</function>, i.e., in call-probe, use thread_indent_depth(1) and in
return-probe, use thread_indent_depth(-1)
</para>
</refsection>
</refentry></chapter>

<chapter id="stap_staticmarkers.stp"><title>SystemTap Translator Tapset</title><para>
This family of user-space probe points is used to probe the operation of
the SystemTap translator (<command moreinfo="none">stap</command>) and run command
(<command moreinfo="none">staprun</command>).
The tapset includes probes to watch the various phases of SystemTap
and SystemTap's management of instrumentation cache.
It contains the following probe points:
</para><refentry id="API-stap-cache-add-mod">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.cache_add_mod</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.cache_add_mod</refname>
<refpurpose>
Adding kernel instrumentation module to cache
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.cache_add_mod </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">source_path</parameter></term>
<listitem>
<para>
the path the .ko file is coming from (incl filename)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dest_path</parameter></term>
<listitem>
<para>
the path the .ko file is going to (incl filename)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires just before the file is actually moved. Note: if moving fails,
cache_add_src and cache_add_nss will not fire.
</para>
</refsection>
</refentry><refentry id="API-stap-cache-add-nss">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.cache_add_nss</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.cache_add_nss</refname>
<refpurpose>
Add NSS (Network Security Services) information to cache
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.cache_add_nss </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dest_path</parameter></term>
<listitem>
<para>
the path the .sgn file is coming from (incl filename)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">source_path</parameter></term>
<listitem>
<para>
the path the .sgn file is coming from (incl filename)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-stap-cache-add-src">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.cache_add_src</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.cache_add_src</refname>
<refpurpose>
Adding C code translation to cache
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.cache_add_src </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dest_path</parameter></term>
<listitem>
<para>
the path the .c file is going to (incl filename)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">source_path</parameter></term>
<listitem>
<para>
the path the .c file is coming from (incl filename)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires just before the file is actually moved. Note: if moving the
kernel module fails, this probe will not fire.
</para>
</refsection>
</refentry><refentry id="API-stap-cache-clean">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.cache_clean</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.cache_clean</refname>
<refpurpose>
Removing file from stap cache
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.cache_clean </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">path</parameter></term>
<listitem>
<para>
the path to the .ko/.c file being removed
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires just before the call to unlink the module/source file. 
</para>
</refsection>
</refentry><refentry id="API-stap-cache-get">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.cache_get</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.cache_get</refname>
<refpurpose>
Found item in stap cache
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.cache_get </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">source_path</parameter></term>
<listitem>
<para>
the path of the .c source file
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">module_path</parameter></term>
<listitem>
<para>
the path of the .ko kernel module file
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires just before the return of get_from_cache, when the cache grab
is successful.
</para>
</refsection>
</refentry><refentry id="API-stap-pass0">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.pass0</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.pass0</refname>
<refpurpose>
Starting stap pass0 (parsing command line arguments)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.pass0 </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">session</parameter></term>
<listitem>
<para>
the systemtap_session variable s
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
pass0 fires after command line arguments have been parsed.
</para>
</refsection>
</refentry><refentry id="API-stap-pass0-end">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.pass0.end</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.pass0.end</refname>
<refpurpose>
Finished stap pass0 (parsing command line arguments)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.pass0.end </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">session</parameter></term>
<listitem>
<para>
the systemtap_session variable s
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
pass0.end fires just before the <function moreinfo="none">gettimeofday</function> call for pass1.
</para>
</refsection>
</refentry><refentry id="API-stap-pass1-end">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.pass1.end</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.pass1.end</refname>
<refpurpose>
Finished stap pass1 (parsing scripts)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.pass1.end </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">session</parameter></term>
<listitem>
<para>
the systemtap_session variable s
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
pass1.end fires just before the jump to cleanup if s.last_pass = 1.
</para>
</refsection>
</refentry><refentry id="API-stap-pass1a">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.pass1a</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.pass1a</refname>
<refpurpose>
Starting stap pass1 (parsing user script)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.pass1a </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">session</parameter></term>
<listitem>
<para>
the systemtap_session variable s
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
pass1a fires just after the call to <function moreinfo="none">gettimeofday</function>, before the
user script is parsed.
</para>
</refsection>
</refentry><refentry id="API-stap-pass1b">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.pass1b</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.pass1b</refname>
<refpurpose>
Starting stap pass1 (parsing library scripts)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.pass1b </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">session</parameter></term>
<listitem>
<para>
the systemtap_session variable s
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
pass1b fires just before the library scripts are parsed.
</para>
</refsection>
</refentry><refentry id="API-stap-pass2">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.pass2</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.pass2</refname>
<refpurpose>
Starting stap pass2 (elaboration)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.pass2 </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">session</parameter></term>
<listitem>
<para>
the systemtap_session variable s
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
pass2 fires just after the call to <function moreinfo="none">gettimeofday</function>, just before the 
call to semantic_pass.
</para>
</refsection>
</refentry><refentry id="API-stap-pass2-end">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.pass2.end</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.pass2.end</refname>
<refpurpose>
Finished stap pass2 (elaboration)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.pass2.end </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">session</parameter></term>
<listitem>
<para>
the systemtap_session variable s
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
pass2.end fires just before the jump to cleanup if s.last_pass = 2
</para>
</refsection>
</refentry><refentry id="API-stap-pass3">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.pass3</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.pass3</refname>
<refpurpose>
Starting stap pass3 (translation to C)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.pass3 </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">session</parameter></term>
<listitem>
<para>
the systemtap_session variable s
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
pass3 fires just after the call to <function moreinfo="none">gettimeofday</function>, just before the
call to translate_pass.
</para>
</refsection>
</refentry><refentry id="API-stap-pass3-end">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.pass3.end</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.pass3.end</refname>
<refpurpose>
Finished stap pass3 (translation to C)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.pass3.end </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">session</parameter></term>
<listitem>
<para>
the systemtap_session variable s
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
pass3.end fires just before the jump to cleanup if s.last_pass = 3
</para>
</refsection>
</refentry><refentry id="API-stap-pass4">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.pass4</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.pass4</refname>
<refpurpose>
Starting stap pass4 (compile C code into kernel module)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.pass4 </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">session</parameter></term>
<listitem>
<para>
the systemtap_session variable s
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
pass4 fires just after the call to <function moreinfo="none">gettimeofday</function>, just before the
call to compile_pass.
</para>
</refsection>
</refentry><refentry id="API-stap-pass4-end">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.pass4.end</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.pass4.end</refname>
<refpurpose>
Finished stap pass4 (compile C code into kernel module)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.pass4.end </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">session</parameter></term>
<listitem>
<para>
the systemtap_session variable s
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
pass4.end fires just before the jump to cleanup if s.last_pass = 4
</para>
</refsection>
</refentry><refentry id="API-stap-pass5">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.pass5</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.pass5</refname>
<refpurpose>
Starting stap pass5 (running the instrumentation)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.pass5 </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">session</parameter></term>
<listitem>
<para>
the systemtap_session variable s
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
pass5 fires just after the call to <function moreinfo="none">gettimeofday</function>, just before the
call to run_pass.
</para>
</refsection>
</refentry><refentry id="API-stap-pass5-end">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.pass5.end</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.pass5.end</refname>
<refpurpose>
Finished stap pass5 (running the instrumentation)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.pass5.end </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">session</parameter></term>
<listitem>
<para>
the systemtap_session variable s
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
pass5.end fires just before the cleanup label
</para>
</refsection>
</refentry><refentry id="API-stap-pass6">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.pass6</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.pass6</refname>
<refpurpose>
Starting stap pass6 (cleanup)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.pass6 </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">session</parameter></term>
<listitem>
<para>
the systemtap_session variable s
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
pass6 fires just after the cleanup label, essentially the same spot
as pass5.end
</para>
</refsection>
</refentry><refentry id="API-stap-pass6-end">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.pass6.end</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.pass6.end</refname>
<refpurpose>
Finished stap pass6 (cleanup)
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.pass6.end </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">session</parameter></term>
<listitem>
<para>
the systemtap_session variable s
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
pass6.end fires just before main's return.
</para>
</refsection>
</refentry><refentry id="API-stap-system">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.system</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.system</refname>
<refpurpose>
Starting a command from stap
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.system </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">command</parameter></term>
<listitem>
<para>
the command string to be run by posix_spawn (as sh -c &lt;str&gt;)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the entry of the stap_system command.
</para>
</refsection>
</refentry><refentry id="API-stap-system-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.system.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.system.return</refname>
<refpurpose>
Finished a command from stap
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.system.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">ret</parameter></term>
<listitem>
<para>
a return code associated with running waitpid on the spawned process; 
a non-zero value indicates error
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires just before the return of the stap_system function, after waitpid.
</para>
</refsection>
</refentry><refentry id="API-stap-system-spawn">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stap.system.spawn</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stap.system.spawn</refname>
<refpurpose>
stap spawned new process
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stap.system.spawn </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">ret</parameter></term>
<listitem>
<para>
the return value from posix_spawn
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pid</parameter></term>
<listitem>
<para>
the pid of the spawned process
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires just after the call to posix_spawn.
</para>
</refsection>
</refentry><refentry id="API-stapio-receive-control-message">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::stapio.receive_control_message</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::stapio.receive_control_message</refname>
<refpurpose>
Received a control message
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">stapio.receive_control_message </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">len</parameter></term>
<listitem>
<para>
the length (in bytes) of the data blob
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">data</parameter></term>
<listitem>
<para>
a ptr to a binary blob of data sent as the control message
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
type of message being send; defined in runtime/transport/transport_msgs.h
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires just after a message was receieved and before it's processed.
</para>
</refsection>
</refentry><refentry id="API-staprun-insert-module">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::staprun.insert_module</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::staprun.insert_module</refname>
<refpurpose>
Inserting SystemTap instrumentation module
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">staprun.insert_module </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">path</parameter></term>
<listitem>
<para>
the full path to the .ko kernel module about to be inserted
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires just before the call to insert the module.
</para>
</refsection>
</refentry><refentry id="API-staprun-remove-module">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::staprun.remove_module</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::staprun.remove_module</refname>
<refpurpose>
Removing SystemTap instrumentation module
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">staprun.remove_module </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
the stap module name to be removed (without the .ko extension)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires just before the call to remove the module.
</para>
</refsection>
</refentry><refentry id="API-staprun-send-control-message">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::staprun.send_control_message</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::staprun.send_control_message</refname>
<refpurpose>
Sending a control message
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">staprun.send_control_message </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">data</parameter></term>
<listitem>
<para>
a ptr to a binary blob of data sent as the control message
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">len</parameter></term>
<listitem>
<para>
the length (in bytes) of the data blob
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
type of message being send; defined in runtime/transport/transport_msgs.h
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires at the beginning of the send_request function.
</para>
</refsection>
</refentry></chapter>

<chapter id="nfsd.stp"><title>Network File Storage Tapsets</title><para>
This family of probe points is used to probe network file storage
functions and operations.
</para><refentry id="API-nfsderror">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::nfsderror</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::nfsderror</refname>
<refpurpose>
Convert nfsd error number into string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
nfsderror:string(err:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">err</parameter></term>
<listitem>
<para>
errnum
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function returns a string for the error number
passed into the function.
</para>
</refsection>
</refentry><refentry id="API-nfs-aop-readpage">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.aop.readpage</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.aop.readpage</refname>
<refpurpose>
NFS client synchronously reading a page
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.aop.readpage </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
device identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">page_index</parameter></term>
<listitem>
<para>
offset within mapping, can used a page identifier
and position identifier in the page frame
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
inode number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">__page</parameter></term>
<listitem>
<para>
the address of page
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sb_flag</parameter></term>
<listitem>
<para>
super block flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">file</parameter></term>
<listitem>
<para>
file argument
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rsize</parameter></term>
<listitem>
<para>
read size  (in bytes)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
number of pages to be read in this execution 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">i_flag</parameter></term>
<listitem>
<para>
file flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">i_size</parameter></term>
<listitem>
<para>
file length in bytes
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Read the page over, only fires when a previous async
read operation failed
</para>
</refsection>
</refentry><refentry id="API-nfs-aop-readpages">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.aop.readpages</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.aop.readpages</refname>
<refpurpose>
NFS client reading multiple pages
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.aop.readpages </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">rpages</parameter></term>
<listitem>
<para>
read size (in pages)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
number of pages attempted to read in this execution
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">rsize</parameter></term>
<listitem>
<para>
read size (in bytes)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">file</parameter></term>
<listitem>
<para>
filp argument
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nr_pages</parameter></term>
<listitem>
<para>
number of pages attempted to read in this execution
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
device identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
inode number   
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires when in readahead way, read several pages once
</para>
</refsection>
</refentry><refentry id="API-nfs-aop-release-page">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.aop.release_page</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.aop.release_page</refname>
<refpurpose>
NFS client releasing page
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.aop.release_page </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
release pages
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
inode number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">page_index</parameter></term>
<listitem>
<para>
offset within mapping, can used a page identifier
and position identifier in the page frame
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
device identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">__page</parameter></term>
<listitem>
<para>
the address of page
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires when do a release operation on NFS.
</para>
</refsection>
</refentry><refentry id="API-nfs-aop-set-page-dirty">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.aop.set_page_dirty</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.aop.set_page_dirty</refname>
<refpurpose>
NFS client marking page as dirty
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.aop.set_page_dirty </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">page_flag</parameter></term>
<listitem>
<para>
page flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">__page</parameter></term>
<listitem>
<para>
the address of page
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-nfs-aop-write-begin">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.aop.write_begin</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.aop.write_begin</refname>
<refpurpose>
NFS client begin to write data
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.aop.write_begin </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
write bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">to</parameter></term>
<listitem>
<para>
end address of this write operation 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
device identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">page_index</parameter></term>
<listitem>
<para>
offset within mapping, can used a page identifier
and position identifier in the page frame
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">offset</parameter></term>
<listitem>
<para>
start address of this write operation 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
inode number 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">__page</parameter></term>
<listitem>
<para>
the address of page
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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
</para>
</refsection>
</refentry><refentry id="API-nfs-aop-write-end">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.aop.write_end</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.aop.write_end</refname>
<refpurpose>
NFS client complete writing data
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.aop.write_end </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">i_size</parameter></term>
<listitem>
<para>
file length in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">i_flag</parameter></term>
<listitem>
<para>
file flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
write bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">to</parameter></term>
<listitem>
<para>
end address of this write operation
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sb_flag</parameter></term>
<listitem>
<para>
super block flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">__page</parameter></term>
<listitem>
<para>
the address of page
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">page_index</parameter></term>
<listitem>
<para>
offset within mapping, can used a page identifier and position identifier in the page frame
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
inode number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">offset</parameter></term>
<listitem>
<para>
start address of this write operation
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
device identifier
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires when do a write operation on nfs,
often after prepare_write
</para><para>

Update and possibly write a cached page of an NFS file.
</para>
</refsection>
</refentry><refentry id="API-nfs-aop-writepage">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.aop.writepage</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.aop.writepage</refname>
<refpurpose>
NFS client writing a mapped page to the NFS server
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.aop.writepage </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
number of pages to be written in this execution
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">i_flag</parameter></term>
<listitem>
<para>
file flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">for_kupdate</parameter></term>
<listitem>
<para>
a flag of writeback_control,
indicates if it's a kupdate writeback
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">i_state</parameter></term>
<listitem>
<para>
inode state flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">i_size</parameter></term>
<listitem>
<para>
file length in bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">page_index</parameter></term>
<listitem>
<para>
offset within mapping,
can used a page identifier and position identifier in the page frame
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
device identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
inode number  
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">for_reclaim</parameter></term>
<listitem>
<para>
a flag of writeback_control,
indicates if it's invoked from the page allocator
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">__page</parameter></term>
<listitem>
<para>
the address of page
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sb_flag</parameter></term>
<listitem>
<para>
super block flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">wsize</parameter></term>
<listitem>
<para>
write size
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The priority of wb is decided by the flags
<parameter moreinfo="none">for_reclaim</parameter> and <parameter moreinfo="none">for_kupdate</parameter>.
</para>
</refsection>
</refentry><refentry id="API-nfs-aop-writepages">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.aop.writepages</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.aop.writepages</refname>
<refpurpose>
NFS client writing several dirty pages to the NFS server
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.aop.writepages </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
device identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">nr_to_write</parameter></term>
<listitem>
<para>
number of pages attempted to be written in this execution
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
inode number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">for_reclaim</parameter></term>
<listitem>
<para>
a flag of writeback_control,
indicates if it's invoked from the page allocator
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">wsize</parameter></term>
<listitem>
<para>
write size
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
number of pages attempted to be written in this execution
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">wpages</parameter></term>
<listitem>
<para>
write size (in pages)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">for_kupdate</parameter></term>
<listitem>
<para>
a flag of writeback_control,
indicates if it's a kupdate writeback
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The priority of wb is decided by the flags
<parameter moreinfo="none">for_reclaim</parameter> and <parameter moreinfo="none">for_kupdate</parameter>.
</para>
</refsection>
</refentry><refentry id="API-nfs-fop-aio-read">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.fop.aio_read</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.fop.aio_read</refname>
<refpurpose>
NFS client aio_read file operation
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.fop.aio_read </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">file_name</parameter></term>
<listitem>
<para>
file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">parent_name</parameter></term>
<listitem>
<para>
parent dir name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">cache_valid</parameter></term>
<listitem>
<para>
cache related bit mask flag
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">buf</parameter></term>
<listitem>
<para>
the address of buf in user space
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">attrtimeo</parameter></term>
<listitem>
<para>
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 &gt; attrtimeo.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">count</parameter></term>
<listitem>
<para>
read bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pos</parameter></term>
<listitem>
<para>
current position of file   
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
device identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
inode number        
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">cache_time</parameter></term>
<listitem>
<para>
when we started read-caching this inode
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfs-fop-aio-write">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.fop.aio_write</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.fop.aio_write</refname>
<refpurpose>
NFS client aio_write file operation
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.fop.aio_write </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">buf</parameter></term>
<listitem>
<para>
the address of buf in user space
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">parent_name</parameter></term>
<listitem>
<para>
parent dir name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">file_name</parameter></term>
<listitem>
<para>
file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
device identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
inode number        
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">count</parameter></term>
<listitem>
<para>
read bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pos</parameter></term>
<listitem>
<para>
offset of the file 
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfs-fop-check-flags">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.fop.check_flags</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.fop.check_flags</refname>
<refpurpose>
NFS client checking flag operation
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.fop.check_flags </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">flag</parameter></term>
<listitem>
<para>
file flag
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfs-fop-flush">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.fop.flush</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.fop.flush</refname>
<refpurpose>
NFS client flush file operation
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.fop.flush </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">mode</parameter></term>
<listitem>
<para>
file mode
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ndirty</parameter></term>
<listitem>
<para>
number of dirty page
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
device identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
inode number
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfs-fop-fsync">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.fop.fsync</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.fop.fsync</refname>
<refpurpose>
NFS client fsync operation
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.fop.fsync </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
inode number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
device identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ndirty</parameter></term>
<listitem>
<para>
number of dirty pages
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfs-fop-llseek">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.fop.llseek</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.fop.llseek</refname>
<refpurpose>
NFS client llseek operation
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.fop.llseek </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">whence</parameter></term>
<listitem>
<para>
the position to seek from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">whence_str</parameter></term>
<listitem>
<para>
symbolic string representation of the position to seek from
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
device identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">offset</parameter></term>
<listitem>
<para>
the offset of the file will be repositioned
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
inode number
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfs-fop-lock">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.fop.lock</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.fop.lock</refname>
<refpurpose>
NFS client file lock operation
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.fop.lock </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">cmd</parameter></term>
<listitem>
<para>
cmd arguments
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
device identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
inode number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fl_type</parameter></term>
<listitem>
<para>
lock type
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fl_end</parameter></term>
<listitem>
<para>
ending offset of locked region
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">i_mode</parameter></term>
<listitem>
<para>
file type and access rights
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fl_flag</parameter></term>
<listitem>
<para>
lock flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fl_start</parameter></term>
<listitem>
<para>
starting offset of locked region
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfs-fop-mmap">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.fop.mmap</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.fop.mmap</refname>
<refpurpose>
NFS client mmap operation
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.fop.mmap </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">cache_time</parameter></term>
<listitem>
<para>
when we started read-caching this inode
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
device identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
inode number        
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">attrtimeo</parameter></term>
<listitem>
<para>
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 &gt; attrtimeo.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vm_end</parameter></term>
<listitem>
<para>
the first byte after end address within vm_mm
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">buf</parameter></term>
<listitem>
<para>
the address of buf in user space
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">cache_valid</parameter></term>
<listitem>
<para>
cache related bit mask flag
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">parent_name</parameter></term>
<listitem>
<para>
parent dir name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">file_name</parameter></term>
<listitem>
<para>
file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vm_flag</parameter></term>
<listitem>
<para>
vm flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vm_start</parameter></term>
<listitem>
<para>
start address within vm_mm 
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfs-fop-open">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.fop.open</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.fop.open</refname>
<refpurpose>
NFS client file open operation
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.fop.open </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">flag</parameter></term>
<listitem>
<para>
file flag
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
inode number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
device identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">file_name</parameter></term>
<listitem>
<para>
file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">i_size</parameter></term>
<listitem>
<para>
file length in bytes 
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfs-fop-read">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.fop.read</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.fop.read</refname>
<refpurpose>
NFS client read operation
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.fop.read </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">devname</parameter></term>
<listitem>
<para>
block device name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-nfs-fop-read-iter">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.fop.read_iter</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.fop.read_iter</refname>
<refpurpose>
NFS client read_iter file operation
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.fop.read_iter </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
device identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
inode number        
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">cache_time</parameter></term>
<listitem>
<para>
when we started read-caching this inode
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">attrtimeo</parameter></term>
<listitem>
<para>
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 &gt; attrtimeo.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pos</parameter></term>
<listitem>
<para>
current position of file   
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">count</parameter></term>
<listitem>
<para>
read bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">cache_valid</parameter></term>
<listitem>
<para>
cache related bit mask flag
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">file_name</parameter></term>
<listitem>
<para>
file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">parent_name</parameter></term>
<listitem>
<para>
parent dir name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfs-fop-release">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.fop.release</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.fop.release</refname>
<refpurpose>
NFS client release page operation
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.fop.release </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
inode number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
device identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">mode</parameter></term>
<listitem>
<para>
file mode
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfs-fop-sendfile">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.fop.sendfile</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.fop.sendfile</refname>
<refpurpose>
NFS client send file operation
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.fop.sendfile </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">ppos</parameter></term>
<listitem>
<para>
current position of file
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">cache_valid</parameter></term>
<listitem>
<para>
cache related bit mask flag
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">count</parameter></term>
<listitem>
<para>
read bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">attrtimeo</parameter></term>
<listitem>
<para>
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 &gt; attrtimeo.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">cache_time</parameter></term>
<listitem>
<para>
when we started read-caching this inode
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
inode number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
device identifier
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfs-fop-write">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.fop.write</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.fop.write</refname>
<refpurpose>
NFS client write operation
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.fop.write </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">devname</parameter></term>
<listitem>
<para>
block device name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-nfs-fop-write-iter">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.fop.write_iter</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.fop.write_iter</refname>
<refpurpose>
NFS client write_iter file operation
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.fop.write_iter </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">count</parameter></term>
<listitem>
<para>
read bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">pos</parameter></term>
<listitem>
<para>
offset of the file 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">dev</parameter></term>
<listitem>
<para>
device identifier
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">ino</parameter></term>
<listitem>
<para>
inode number        
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">file_name</parameter></term>
<listitem>
<para>
file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">parent_name</parameter></term>
<listitem>
<para>
parent dir name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfs-proc-commit">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.proc.commit</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.proc.commit</refname>
<refpurpose>
NFS client committing data on server
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.proc.commit </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
NFS version
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">server_ip</parameter></term>
<listitem>
<para>
IP address of server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
read bytes in this execution
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bitmask1</parameter></term>
<listitem>
<para>
V4 bitmask representing the set of attributes supported
on this filesystem
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">offset</parameter></term>
<listitem>
<para>
the file offset
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bitmask0</parameter></term>
<listitem>
<para>
V4 bitmask representing the set of attributes supported
on this filesystem
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para><para>

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.
</para>
</refsection>
</refentry><refentry id="API-nfs-proc-commit-done">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.proc.commit_done</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.proc.commit_done</refname>
<refpurpose>
NFS client response to a commit RPC task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.proc.commit_done </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">count</parameter></term>
<listitem>
<para>
number of bytes committed
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
NFS version
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">timestamp</parameter></term>
<listitem>
<para>
V4 timestamp, which is used for lease renewal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">server_ip</parameter></term>
<listitem>
<para>
IP address of server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">valid</parameter></term>
<listitem>
<para>
fattr-&gt;valid, indicates which fields are valid 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">status</parameter></term>
<listitem>
<para>
result of last operation
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires when a reply to a commit RPC task is received
or some commit operation error occur (timeout or socket shutdown).
</para>
</refsection>
</refentry><refentry id="API-nfs-proc-commit-setup">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.proc.commit_setup</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.proc.commit_setup</refname>
<refpurpose>
NFS client setting up a commit RPC task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.proc.commit_setup </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">server_ip</parameter></term>
<listitem>
<para>
IP address of server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
NFS version
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
bytes in this commit
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">offset</parameter></term>
<listitem>
<para>
the file offset
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bitmask1</parameter></term>
<listitem>
<para>
V4 bitmask representing the set of attributes supported
on this filesystem
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">count</parameter></term>
<listitem>
<para>
bytes in this commit
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bitmask0</parameter></term>
<listitem>
<para>
V4 bitmask representing the set of attributes supported
on this filesystem
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-nfs-proc-create">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.proc.create</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.proc.create</refname>
<refpurpose>
NFS client creating file on server
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.proc.create </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">filename</parameter></term>
<listitem>
<para>
file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flag</parameter></term>
<listitem>
<para>
indicates create mode (only for NFSv3 and NFSv4)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
NFS version (the function is used for all NFS version)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">server_ip</parameter></term>
<listitem>
<para>
IP address of server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fh</parameter></term>
<listitem>
<para>
file handle of parent dir
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filelen</parameter></term>
<listitem>
<para>
length of file name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfs-proc-handle-exception">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.proc.handle_exception</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.proc.handle_exception</refname>
<refpurpose>
NFS client handling an NFSv4 exception
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.proc.handle_exception </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">errorcode</parameter></term>
<listitem>
<para>
indicates the type of error
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This is the error handling routine for processes for NFSv4.
</para>
</refsection>
</refentry><refentry id="API-nfs-proc-lookup">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.proc.lookup</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.proc.lookup</refname>
<refpurpose>
NFS client opens/searches a file on server
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.proc.lookup </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">bitmask0</parameter></term>
<listitem>
<para>
V4 bitmask representing the set of attributes supported
on this filesystem
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bitmask1</parameter></term>
<listitem>
<para>
V4 bitmask representing the set of attributes supported
on this filesystem
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
NFS version
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filename</parameter></term>
<listitem>
<para>
the name of file which client opens/searches on server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">server_ip</parameter></term>
<listitem>
<para>
IP address of server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name_len</parameter></term>
<listitem>
<para>
the length of file name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfs-proc-open">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.proc.open</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.proc.open</refname>
<refpurpose>
NFS client allocates file read/write context information
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.proc.open </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">mode</parameter></term>
<listitem>
<para>
file mode
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filename</parameter></term>
<listitem>
<para>
file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
NFS version (the function is used for all NFS version)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flag</parameter></term>
<listitem>
<para>
file flag
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">server_ip</parameter></term>
<listitem>
<para>
IP address of server
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Allocate file read/write context information
</para>
</refsection>
</refentry><refentry id="API-nfs-proc-read">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.proc.read</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.proc.read</refname>
<refpurpose>
NFS client synchronously reads file from server
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.proc.read </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
NFS version
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
used to set task-&gt;tk_flags in rpc_init_task function
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">server_ip</parameter></term>
<listitem>
<para>
IP address of server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">count</parameter></term>
<listitem>
<para>
read bytes in this execution
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">offset</parameter></term>
<listitem>
<para>
the file offset
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-nfs-proc-read-done">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.proc.read_done</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.proc.read_done</refname>
<refpurpose>
NFS client response to a read RPC task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.proc.read_done </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
NFS version
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">timestamp</parameter></term>
<listitem>
<para>
V4 timestamp, which is used for lease renewal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">server_ip</parameter></term>
<listitem>
<para>
IP address of server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">status</parameter></term>
<listitem>
<para>
result of last operation
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">count</parameter></term>
<listitem>
<para>
number of bytes read
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires when a reply to a read RPC task is received or some read error occurs
(timeout or socket shutdown).
</para>
</refsection>
</refentry><refentry id="API-nfs-proc-read-setup">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.proc.read_setup</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.proc.read_setup</refname>
<refpurpose>
NFS client setting up a read RPC task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.proc.read_setup </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
read bytes in this execution
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
NFS version
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">server_ip</parameter></term>
<listitem>
<para>
IP address of server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">offset</parameter></term>
<listitem>
<para>
the file offset 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">count</parameter></term>
<listitem>
<para>
read bytes in this execution
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The read_setup function is used to setup a read RPC task.
It is not doing the actual read operation.
</para>
</refsection>
</refentry><refentry id="API-nfs-proc-release">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.proc.release</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.proc.release</refname>
<refpurpose>
NFS client releases file read/write context information
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.proc.release </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">mode</parameter></term>
<listitem>
<para>
file mode
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
NFS version (the function is used for all NFS version)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flag</parameter></term>
<listitem>
<para>
file flag
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filename</parameter></term>
<listitem>
<para>
file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">server_ip</parameter></term>
<listitem>
<para>
IP address of server
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Release file read/write context information
</para>
</refsection>
</refentry><refentry id="API-nfs-proc-remove">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.proc.remove</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.proc.remove</refname>
<refpurpose>
NFS client removes a file on server
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.proc.remove </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">server_ip</parameter></term>
<listitem>
<para>
IP address of server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filename</parameter></term>
<listitem>
<para>
file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
NFS version (the function is used for all NFS version)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fh</parameter></term>
<listitem>
<para>
file handle of parent dir
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filelen</parameter></term>
<listitem>
<para>
length of file name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfs-proc-rename">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.proc.rename</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.proc.rename</refname>
<refpurpose>
NFS client renames a file on server
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.proc.rename </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">old_name</parameter></term>
<listitem>
<para>
old file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">new_name</parameter></term>
<listitem>
<para>
new file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
NFS version (the function is used for all NFS version)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">old_filelen</parameter></term>
<listitem>
<para>
length of old file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">new_fh</parameter></term>
<listitem>
<para>
file handle of new parent dir
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">server_ip</parameter></term>
<listitem>
<para>
IP address of server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">new_filelen</parameter></term>
<listitem>
<para>
length of new file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">old_fh</parameter></term>
<listitem>
<para>
file handle of old parent dir
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfs-proc-rename-done">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.proc.rename_done</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.proc.rename_done</refname>
<refpurpose>
NFS client response to a rename RPC task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.proc.rename_done </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">old_fh</parameter></term>
<listitem>
<para>
file handle of old parent dir
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">status</parameter></term>
<listitem>
<para>
result of last operation
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">timestamp</parameter></term>
<listitem>
<para>
V4 timestamp, which is used for lease renewal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">server_ip</parameter></term>
<listitem>
<para>
IP address of server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">new_fh</parameter></term>
<listitem>
<para>
file handle of new parent dir
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
NFS version
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires when a reply to a rename RPC task is received or some rename
error occurs (timeout or socket shutdown).
</para>
</refsection>
</refentry><refentry id="API-nfs-proc-rename-setup">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.proc.rename_setup</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.proc.rename_setup</refname>
<refpurpose>
NFS client setting up a rename RPC task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.proc.rename_setup </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
NFS version
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">server_ip</parameter></term>
<listitem>
<para>
IP address of server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fh</parameter></term>
<listitem>
<para>
file handle of parent dir
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The rename_setup function is used to setup a rename RPC task.
Is is not doing the actual rename operation.
</para>
</refsection>
</refentry><refentry id="API-nfs-proc-write">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.proc.write</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.proc.write</refname>
<refpurpose>
NFS client synchronously writes file to server
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.proc.write </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">server_ip</parameter></term>
<listitem>
<para>
IP address of server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flags</parameter></term>
<listitem>
<para>
used to set task-&gt;tk_flags in rpc_init_task function
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
NFS version
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
read bytes in this execution
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">offset</parameter></term>
<listitem>
<para>
the file offset
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bitmask1</parameter></term>
<listitem>
<para>
V4 bitmask representing the set of attributes supported
on this filesystem
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bitmask0</parameter></term>
<listitem>
<para>
V4 bitmask representing the set of attributes supported
on this filesystem
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
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.
</para>
</refsection>
</refentry><refentry id="API-nfs-proc-write-done">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.proc.write_done</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.proc.write_done</refname>
<refpurpose>
NFS client response to a write RPC task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.proc.write_done </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">count</parameter></term>
<listitem>
<para>
number of bytes written
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">valid</parameter></term>
<listitem>
<para>
fattr-&gt;valid, indicates which fields are valid 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">status</parameter></term>
<listitem>
<para>
result of last operation
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
NFS version
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">timestamp</parameter></term>
<listitem>
<para>
V4 timestamp, which is used for lease renewal
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">server_ip</parameter></term>
<listitem>
<para>
IP address of server
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Fires when a reply to a write RPC task is received or some write error occurs
(timeout or socket shutdown).
</para>
</refsection>
</refentry><refentry id="API-nfs-proc-write-setup">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfs.proc.write_setup</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfs.proc.write_setup</refname>
<refpurpose>
NFS client setting up a write RPC task
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfs.proc.write_setup </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">bitmask0</parameter></term>
<listitem>
<para>
V4 bitmask representing the set of attributes supported
on this filesystem
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">count</parameter></term>
<listitem>
<para>
bytes written in this execution
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">offset</parameter></term>
<listitem>
<para>
the file offset
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">bitmask1</parameter></term>
<listitem>
<para>
V4 bitmask representing the set of attributes supported
on this filesystem 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">how</parameter></term>
<listitem>
<para>
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)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
bytes written in this execution
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">server_ip</parameter></term>
<listitem>
<para>
IP address of server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
NFS version
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prot</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The write_setup function is used to setup a write RPC task.
It is not doing the actual write operation.
</para>
</refsection>
</refentry><refentry id="API-nfsd-close">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfsd.close</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfsd.close</refname>
<refpurpose>
NFS server closing a file for client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfsd.close </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">filename</parameter></term>
<listitem>
<para>
file name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This probe point does not exist in kernels starting with 4.2.
</para>
</refsection>
</refentry><refentry id="API-nfsd-commit">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfsd.commit</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfsd.commit</refname>
<refpurpose>
NFS server committing all pending writes to stable storage
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfsd.commit </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">offset</parameter></term>
<listitem>
<para>
the offset of file
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">client_ip</parameter></term>
<listitem>
<para>
the ip address of client
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">count</parameter></term>
<listitem>
<para>
read bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fh</parameter></term>
<listitem>
<para>
file handle (the first part is the length of the file handle)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
read bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flag</parameter></term>
<listitem>
<para>
indicates whether this execution is a sync operation
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfsd-create">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfsd.create</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfsd.create</refname>
<refpurpose>
NFS server creating a file(regular,dir,device,fifo) for client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfsd.create </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">fh</parameter></term>
<listitem>
<para>
file handle (the first part is the length of the file handle)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">client_ip</parameter></term>
<listitem>
<para>
the ip address of client
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">iap_valid</parameter></term>
<listitem>
<para>
Attribute flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
file type(regular,dir,device,fifo ...)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">iap_mode</parameter></term>
<listitem>
<para>
file access mode
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filelen</parameter></term>
<listitem>
<para>
the length of file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filename</parameter></term>
<listitem>
<para>
file name 
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Sometimes nfsd will call nfsd_create_v3 instead of this this probe point.
</para>
</refsection>
</refentry><refentry id="API-nfsd-createv3">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfsd.createv3</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfsd.createv3</refname>
<refpurpose>
NFS server creating a regular file or set file attributes for client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfsd.createv3 </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">iap_valid</parameter></term>
<listitem>
<para>
Attribute flags
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fh</parameter></term>
<listitem>
<para>
file handle (the first part is the length of the file handle)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">client_ip</parameter></term>
<listitem>
<para>
the ip address of client
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">createmode</parameter></term>
<listitem>
<para>
create mode .The possible values could be: NFS3_CREATE_EXCLUSIVE, NFS3_CREATE_UNCHECKED, or NFS3_CREATE_GUARDED
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">truncp</parameter></term>
<listitem>
<para>
trunp arguments, indicates if the file shouldbe truncate
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">iap_mode</parameter></term>
<listitem>
<para>
file access mode
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filelen</parameter></term>
<listitem>
<para>
the length of file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">verifier</parameter></term>
<listitem>
<para>
file attributes (atime,mtime,mode). It's used to reset file attributes for CREATE_EXCLUSIVE
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filename</parameter></term>
<listitem>
<para>
file name 
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This probepoints is only called by nfsd3_proc_create and
nfsd4_open when op_claim_type is NFS4_OPEN_CLAIM_NULL.
</para>
</refsection>
</refentry><refentry id="API-nfsd-dispatch">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfsd.dispatch</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfsd.dispatch</refname>
<refpurpose>
NFS server receives an operation from client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfsd.dispatch </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">proc</parameter></term>
<listitem>
<para>
procedure number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
nfs version
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">client_ip</parameter></term>
<listitem>
<para>
the ip address of client
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">proto</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">xid</parameter></term>
<listitem>
<para>
transmission id
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">prog</parameter></term>
<listitem>
<para>
program number
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfsd-lookup">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfsd.lookup</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfsd.lookup</refname>
<refpurpose>
NFS server opening or searching file for a file for client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfsd.lookup </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">client_ip</parameter></term>
<listitem>
<para>
the ip address of client
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fh</parameter></term>
<listitem>
<para>
file handle of parent dir(the first part is the length of the file handle)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filename</parameter></term>
<listitem>
<para>
file name 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filelen</parameter></term>
<listitem>
<para>
the length of file name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfsd-open">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfsd.open</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfsd.open</refname>
<refpurpose>
NFS server opening a file for client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfsd.open </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
type of file (regular file or dir)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">client_ip</parameter></term>
<listitem>
<para>
the ip address of client
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">access</parameter></term>
<listitem>
<para>
indicates the type of open (read/write/commit/readdir...) 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fh</parameter></term>
<listitem>
<para>
file handle (the first part is the length of the file handle)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfsd-proc-commit">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfsd.proc.commit</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfsd.proc.commit</refname>
<refpurpose>
NFS server performing a commit operation for client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfsd.proc.commit </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">proto</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
read bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">offset</parameter></term>
<listitem>
<para>
the offset of file 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">client_ip</parameter></term>
<listitem>
<para>
the ip address of client
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">gid</parameter></term>
<listitem>
<para>
requester's group id
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fh</parameter></term>
<listitem>
<para>
file handle (the first part is the length of the file handle)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">uid</parameter></term>
<listitem>
<para>
requester's user id
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">count</parameter></term>
<listitem>
<para>
read bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
nfs version
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfsd-proc-create">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfsd.proc.create</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfsd.proc.create</refname>
<refpurpose>
NFS server creating a file for client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfsd.proc.create </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">fh</parameter></term>
<listitem>
<para>
file handle (the first part is the length of the file handle)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">uid</parameter></term>
<listitem>
<para>
requester's user id
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
nfs version
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">client_ip</parameter></term>
<listitem>
<para>
the ip address of client
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">gid</parameter></term>
<listitem>
<para>
requester's group id
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">proto</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filelen</parameter></term>
<listitem>
<para>
length of file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filename</parameter></term>
<listitem>
<para>
file name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfsd-proc-lookup">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfsd.proc.lookup</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfsd.proc.lookup</refname>
<refpurpose>
NFS server opening or searching for a file for client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfsd.proc.lookup </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">proto</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">client_ip</parameter></term>
<listitem>
<para>
the ip address of client
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">gid</parameter></term>
<listitem>
<para>
requester's group id
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filename</parameter></term>
<listitem>
<para>
file name 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filelen</parameter></term>
<listitem>
<para>
the length of file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
nfs version
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fh</parameter></term>
<listitem>
<para>
file handle of parent dir (the first part is the length of the file handle)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">uid</parameter></term>
<listitem>
<para>
requester's user id
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfsd-proc-read">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfsd.proc.read</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfsd.proc.read</refname>
<refpurpose>
NFS server reading file for client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfsd.proc.read </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">client_ip</parameter></term>
<listitem>
<para>
the ip address of client
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">gid</parameter></term>
<listitem>
<para>
requester's group id
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
nfs version
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vlen</parameter></term>
<listitem>
<para>
read blocks 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">count</parameter></term>
<listitem>
<para>
read bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fh</parameter></term>
<listitem>
<para>
file handle (the first part is the length of the file handle)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">uid</parameter></term>
<listitem>
<para>
requester's user id
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">offset</parameter></term>
<listitem>
<para>
the offset of file 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">proto</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vec</parameter></term>
<listitem>
<para>
struct kvec, includes buf address in kernel address and length of each buffer
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
read bytes
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfsd-proc-remove">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfsd.proc.remove</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfsd.proc.remove</refname>
<refpurpose>
NFS server removing a file for client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfsd.proc.remove </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">gid</parameter></term>
<listitem>
<para>
requester's group id
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">client_ip</parameter></term>
<listitem>
<para>
the ip address of client
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fh</parameter></term>
<listitem>
<para>
file handle (the first part is the length of the file handle)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">uid</parameter></term>
<listitem>
<para>
requester's user id
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
nfs version
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filename</parameter></term>
<listitem>
<para>
file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filelen</parameter></term>
<listitem>
<para>
length of file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">proto</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfsd-proc-rename">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfsd.proc.rename</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfsd.proc.rename</refname>
<refpurpose>
NFS Server renaming a file for client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfsd.proc.rename </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">filename</parameter></term>
<listitem>
<para>
old file name 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">tname</parameter></term>
<listitem>
<para>
new file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flen</parameter></term>
<listitem>
<para>
length of old file name 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">tfh</parameter></term>
<listitem>
<para>
file handler of new path
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">tlen</parameter></term>
<listitem>
<para>
length of new file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">client_ip</parameter></term>
<listitem>
<para>
the ip address of client
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">gid</parameter></term>
<listitem>
<para>
requester's group id
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">uid</parameter></term>
<listitem>
<para>
requester's user id
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fh</parameter></term>
<listitem>
<para>
file handler of old path
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfsd-proc-write">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfsd.proc.write</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfsd.proc.write</refname>
<refpurpose>
NFS server writing data to file for client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfsd.proc.write </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">proto</parameter></term>
<listitem>
<para>
transfer protocol
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
read bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vec</parameter></term>
<listitem>
<para>
struct kvec, includes buf address in kernel address and length of each buffer
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">stable</parameter></term>
<listitem>
<para>
argp-&gt;stable
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">offset</parameter></term>
<listitem>
<para>
the offset of file 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">gid</parameter></term>
<listitem>
<para>
requester's group id
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">client_ip</parameter></term>
<listitem>
<para>
the ip address of client
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">uid</parameter></term>
<listitem>
<para>
requester's user id
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fh</parameter></term>
<listitem>
<para>
file handle (the first part is the length of the file handle)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">version</parameter></term>
<listitem>
<para>
nfs version
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vlen</parameter></term>
<listitem>
<para>
read blocks 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">count</parameter></term>
<listitem>
<para>
read bytes
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfsd-read">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfsd.read</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfsd.read</refname>
<refpurpose>
NFS server reading data from a file for client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfsd.read </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
read bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vec</parameter></term>
<listitem>
<para>
struct kvec, includes buf address in kernel address and length of each buffer
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">file</parameter></term>
<listitem>
<para>
argument file, indicates if the file has been opened.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">client_ip</parameter></term>
<listitem>
<para>
the ip address of client
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fh</parameter></term>
<listitem>
<para>
file handle (the first part is the length of the file handle)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vlen</parameter></term>
<listitem>
<para>
read blocks 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">count</parameter></term>
<listitem>
<para>
read bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">offset</parameter></term>
<listitem>
<para>
the offset of file 
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfsd-rename">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfsd.rename</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfsd.rename</refname>
<refpurpose>
NFS server renaming a file for client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfsd.rename </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">fh</parameter></term>
<listitem>
<para>
file handler of old path
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">client_ip</parameter></term>
<listitem>
<para>
the ip address of client
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">tfh</parameter></term>
<listitem>
<para>
file handler of new path
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filename</parameter></term>
<listitem>
<para>
old file name 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">flen</parameter></term>
<listitem>
<para>
length of old file name 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">tname</parameter></term>
<listitem>
<para>
new file name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">tlen</parameter></term>
<listitem>
<para>
length of new file name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfsd-unlink">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfsd.unlink</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfsd.unlink</refname>
<refpurpose>
NFS server removing a file or a directory for client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfsd.unlink </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">client_ip</parameter></term>
<listitem>
<para>
the ip address of client
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fh</parameter></term>
<listitem>
<para>
file handle (the first part is the length of the file handle)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filename</parameter></term>
<listitem>
<para>
file name 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
file type (file or dir)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">filelen</parameter></term>
<listitem>
<para>
the length of file name
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-nfsd-write">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::nfsd.write</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::nfsd.write</refname>
<refpurpose>
NFS server writing data to a file for client
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">nfsd.write </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">offset</parameter></term>
<listitem>
<para>
the offset of file 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vlen</parameter></term>
<listitem>
<para>
read blocks 
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">count</parameter></term>
<listitem>
<para>
read bytes
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">fh</parameter></term>
<listitem>
<para>
file handle (the first part is the length of the file handle)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">file</parameter></term>
<listitem>
<para>
argument file, indicates if the file has been opened.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">client_ip</parameter></term>
<listitem>
<para>
the ip address of client
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">vec</parameter></term>
<listitem>
<para>
struct kvec, includes buf address in kernel address and length of each buffer
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
read bytes
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry></chapter>

<chapter id="speculation.stp"><title>Speculation</title><para>
This family of functions provides the ability to speculative record
information and then at a later point in the SystemTap script either
commit the information or discard it.
</para><refentry id="API-commit">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::commit</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::commit</refname>
<refpurpose>
Write out all output related to a speculation buffer
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
commit(id:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">id</parameter></term>
<listitem>
<para>
of the buffer to store the information in
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Output all the output for <parameter moreinfo="none">id</parameter> in the order that it was entered into
the speculative buffer by <function moreinfo="none">speculative</function>.
</para>
</refsection>
</refentry><refentry id="API-discard">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::discard</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::discard</refname>
<refpurpose>
Discard all output related to a speculation buffer
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
discard(id:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">id</parameter></term>
<listitem>
<para>
of the buffer to store the information in
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry><refentry id="API-speculate">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::speculate</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::speculate</refname>
<refpurpose>
Store a string for possible output later
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
speculate(id:long,output:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">id</parameter></term>
<listitem>
<para>
buffer id to store the information in
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">output</parameter></term>
<listitem>
<para>
string to write out when commit occurs
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Add a string to the speculaive buffer for id.
</para>
</refsection>
</refentry><refentry id="API-speculation">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::speculation</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::speculation</refname>
<refpurpose>
Allocate a new id for speculative output
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
speculation:long()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>

The <function moreinfo="none">speculation</function> 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.
</para>
</refsection>
</refentry></chapter>

<chapter id="json.stp"><title>JSON Tapset</title><para>
This family of probe points, functions, and macros is used to
output data in JSON format.
It contains the following probe points, functions, and macros:
</para><refentry id="API-json-add-array">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::json_add_array</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::json_add_array</refname>
<refpurpose>
Add an array
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
json_add_array:long(name:string,description:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
The name of the array.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">description</parameter></term>
<listitem>
<para>
Array description. An empty string can be used.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function adds a array, setting up everything
needed. Arrays contain other metrics, added with
<function moreinfo="none">json_add_array_numeric_metric</function> or <function moreinfo="none">json_add_array_string_metric</function>.
</para>
</refsection>
</refentry><refentry id="API-json-add-array-numeric-metric">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::json_add_array_numeric_metric</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::json_add_array_numeric_metric</refname>
<refpurpose>
Add a numeric metric to an array
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
json_add_array_numeric_metric:long(array_name:string,metric_name:string,metric_description:string,metric_units:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">array_name</parameter></term>
<listitem>
<para>
The name of the array the numeric metric should be
added to.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">metric_name</parameter></term>
<listitem>
<para>
The name of the numeric metric.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">metric_description</parameter></term>
<listitem>
<para>
Metric description. An empty string can be used.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">metric_units</parameter></term>
<listitem>
<para>
Metic units. An empty string can be used.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function adds a numeric metric to an array,
setting up everything needed.
</para>
</refsection>
</refentry><refentry id="API-json-add-array-string-metric">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::json_add_array_string_metric</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::json_add_array_string_metric</refname>
<refpurpose>
Add a string metric to an array
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
json_add_array_string_metric:long(array_name:string,metric_name:string,metric_description:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">array_name</parameter></term>
<listitem>
<para>
The name of the array the string metric should be
added to.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">metric_name</parameter></term>
<listitem>
<para>
The name of the string metric.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">metric_description</parameter></term>
<listitem>
<para>
Metric description. An empty string can be used.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function adds a string metric to an array,
setting up everything needed.
</para>
</refsection>
</refentry><refentry id="API-json-add-numeric-metric">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::json_add_numeric_metric</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::json_add_numeric_metric</refname>
<refpurpose>
Add a numeric metric
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
json_add_numeric_metric:long(name:string,description:string,units:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
The name of the numeric metric.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">description</parameter></term>
<listitem>
<para>
Metric description. An empty string can be used.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">units</parameter></term>
<listitem>
<para>
Metic units. An empty string can be used.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function adds a numeric metric, setting up
everything needed.
</para>
</refsection>
</refentry><refentry id="API-json-add-string-metric">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::json_add_string_metric</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::json_add_string_metric</refname>
<refpurpose>
Add a string metric
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
json_add_string_metric:long(name:string,description:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
The name of the string metric.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">description</parameter></term>
<listitem>
<para>
Metric description. An empty string can be used.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function adds a string metric, setting up
everything needed.
</para>
</refsection>
</refentry><refentry id="API-json-set-prefix">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::json_set_prefix</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::json_set_prefix</refname>
<refpurpose>
Set the metric prefix.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
json_set_prefix:long(prefix:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">prefix</parameter></term>
<listitem>
<para>
The prefix name to be used.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
This function sets the <quote>prefix</quote>, which is the name
of the base of the metric hierarchy. Calling this function is
optional, by default the name of the systemtap module is used.
</para>
</refsection>
</refentry><refentry id="API-json-output-array-numeric-value">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>macro::json_output_array_numeric_value</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>macro::json_output_array_numeric_value</refname>
<refpurpose>
Output a numeric value for metric in an array.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
@json_output_array_numeric_value(array_name,array_index,metric_name,value)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">array_name</parameter></term>
<listitem>
<para>
The name of the array.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">array_index</parameter></term>
<listitem>
<para>
The array index (as a string) indicating where to store the numeric value.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">metric_name</parameter></term>
<listitem>
<para>
The name of the numeric metric.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">value</parameter></term>
<listitem>
<para>
The numeric value to output.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The json_output_array_numeric_value macro is designed
to be called from the 'json_data' probe in the user's script to
output a metric's numeric value that is in an array. This metric
should have been added with <function moreinfo="none">json_add_array_numeric_metric</function>.
</para>
</refsection>
</refentry><refentry id="API-json-output-array-string-value">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>macro::json_output_array_string_value</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>macro::json_output_array_string_value</refname>
<refpurpose>
Output a string value for metric in an array.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
@json_output_array_string_value(array_name,array_index,metric_name,value)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">array_name</parameter></term>
<listitem>
<para>
The name of the array.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">array_index</parameter></term>
<listitem>
<para>
The array index (as a string) indicating where to store the string value.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">metric_name</parameter></term>
<listitem>
<para>
The name of the string metric.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">value</parameter></term>
<listitem>
<para>
The string value to output.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The json_output_array_string_value macro is designed
to be called from the 'json_data' probe in the user's script to
output a metric's string value that is in an array. This metric
should have been added with <function moreinfo="none">json_add_array_string_metric</function>.
</para>
</refsection>
</refentry><refentry id="API-json-output-data-end">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>macro::json_output_data_end</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>macro::json_output_data_end</refname>
<refpurpose>
End the json output.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
@json_output_data_end()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
The json_output_data_end macro is designed to be
called from the 'json_data' probe from the user's script. It marks
the end of the JSON output.
</para>
</refsection>
</refentry><refentry id="API-json-output-data-start">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>macro::json_output_data_start</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>macro::json_output_data_start</refname>
<refpurpose>
Start the json output.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
@json_output_data_start()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
The json_output_data_start macro is designed to be
called from the 'json_data' probe from the user's script. It marks
the start of the JSON output.
</para>
</refsection>
</refentry><refentry id="API-json-output-numeric-value">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>macro::json_output_numeric_value</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>macro::json_output_numeric_value</refname>
<refpurpose>
Output a numeric value.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
@json_output_numeric_value(name,value)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
The name of the numeric metric.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">value</parameter></term>
<listitem>
<para>
The numeric value to output.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The json_output_numeric_value macro is designed to be
called from the 'json_data' probe in the user's script to output a
metric's numeric value. This metric should have been added with
<function moreinfo="none">json_add_numeric_metric</function>.
</para>
</refsection>
</refentry><refentry id="API-json-output-string-value">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>macro::json_output_string_value</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>macro::json_output_string_value</refname>
<refpurpose>
Output a string value.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
@json_output_string_value(name,value)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
The name of the string metric.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">value</parameter></term>
<listitem>
<para>
The string value to output.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
The json_output_string_value macro is designed to be
called from the 'json_data' probe in the user's script to output a
metric's string value. This metric should have been added with
<function moreinfo="none">json_add_string_metric</function>.
</para>
</refsection>
</refentry><refentry id="API-json-data">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::json_data</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::json_data</refname>
<refpurpose>
Fires whenever JSON data is wanted by a reader.
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">json_data </programlisting>

</refsection>
<refsection>
<title>Values</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Context</title>
<para>
This probe fires when the JSON data is about to be read. This
probe must gather up data and then call the following macros to
output the data in JSON format. First, <parameter moreinfo="none">json_output_data_start</parameter>()
must be called. That call is followed by one or more of the
following (one call for each data item):
<parameter moreinfo="none">json_output_string_value</parameter>(), <parameter moreinfo="none">json_output_numeric_value</parameter>(),
<parameter moreinfo="none">json_output_array_string_value</parameter>(), and
<parameter moreinfo="none">json_output_array_numeric_value</parameter>(). Finally <parameter moreinfo="none">json_output_data_end</parameter>()
must be called. 
</para>
</refsection>
</refentry></chapter>

<chapter id="switchfile.stp"><title>Output file switching Tapset</title><para>
Utility function to allow switching of output files.
</para><refentry id="API-switch-file">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::switch_file</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::switch_file</refname>
<refpurpose>
switch to the next output file
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
switch_file()
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<para>
None
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
This function sends a signal to the stapio process,
commanding it to rotate to the next output file when output is
sent to file(s).
</para>
</refsection>
</refentry></chapter>

<chapter id="floatingpoint.stp"><title>Floating point processing Tapset</title><para>
Utility functions to extract, convert, and perform arithmetic
on IEEE-754 doubles.
</para><refentry id="API-fp-add">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::fp_add</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::fp_add</refname>
<refpurpose>
Addition between floating points
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
fp_add:long(add1:long,add2:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">add1</parameter></term>
<listitem>
<para>
the 64 bit floating point addend
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">add2</parameter></term>
<listitem>
<para>
second 64 bit floating point addend
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Given addend 1 and addend 2, apply floating point adding
</para>
</refsection>
</refentry><refentry id="API-fp-eq">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::fp_eq</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::fp_eq</refname>
<refpurpose>
fp comparison function equal
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
fp_eq:long(infp1:long,infp2:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">infp1</parameter></term>
<listitem>
<para>
the 64 bit floating point input
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">infp2</parameter></term>
<listitem>
<para>
second 64 bit floating point input
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
check if infp1 is equal to infp2
</para>
</refsection>
</refentry><refentry id="API-fp-le">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::fp_le</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::fp_le</refname>
<refpurpose>
Check if first fp is less than or equal to
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
fp_le:long(infp1:long,infp2:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">infp1</parameter></term>
<listitem>
<para>
the 64 bit floating point input
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">infp2</parameter></term>
<listitem>
<para>
second 64 bit floating point input
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
check if infp1 is less than or equal to infp2
</para>
</refsection>
</refentry><refentry id="API-fp-lt">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::fp_lt</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::fp_lt</refname>
<refpurpose>
fp comparison function less than
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
fp_lt:long(infp1:long,infp2:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">infp1</parameter></term>
<listitem>
<para>
the 64 bit floating point input
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">infp2</parameter></term>
<listitem>
<para>
second 64 bit floating point input
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
check if infp1 is strictly less than infp2
</para>
</refsection>
</refentry><refentry id="API-fp-mul">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::fp_mul</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::fp_mul</refname>
<refpurpose>
Multiplication between floating points
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
fp_mul:long(mul1:long,mul2:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">mul1</parameter></term>
<listitem>
<para>
the 64 bit floating point multiplicand
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">mul2</parameter></term>
<listitem>
<para>
64 bit floating point multiplier
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
result is multiplicand times multiplier
</para>
</refsection>
</refentry><refentry id="API-fp-rem">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::fp_rem</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::fp_rem</refname>
<refpurpose>
Floating point division
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
fp_rem:long(div1:long,div2:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">div1</parameter></term>
<listitem>
<para>
the 64 bit floating point dividend
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">div2</parameter></term>
<listitem>
<para>
64 bit floating point divisor
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
result would be the remainder after divisor divides dividend
</para>
</refsection>
</refentry><refentry id="API-fp-sqrt">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::fp_sqrt</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::fp_sqrt</refname>
<refpurpose>
Floating point square root
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
fp_sqrt:long(infp:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">infp</parameter></term>
<listitem>
<para>
the 64 bit floating point input
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
apply sqrt to input floating point
</para>
</refsection>
</refentry><refentry id="API-fp-sub">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::fp_sub</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::fp_sub</refname>
<refpurpose>
Subtraction between floating points
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
fp_sub:long(sub1:long,sub2:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">sub1</parameter></term>
<listitem>
<para>
the 64 bit floating point minuend
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">sub2</parameter></term>
<listitem>
<para>
64 bit floating point subtrahend
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
result would be minuend minus subtrahend
</para>
</refsection>
</refentry><refentry id="API-fp-to-long">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::fp_to_long</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::fp_to_long</refname>
<refpurpose>
Convert fp to int64
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
fp_to_long:long(infp:long,roundingMode:long,exact:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">infp</parameter></term>
<listitem>
<para>
the 64 bit floating point stored in long
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">roundingMode</parameter></term>
<listitem>
<para>
through 0-6, which are round to nearest even, minMag, 
min, max, near maxMag and round to odd
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">exact</parameter></term>
<listitem>
<para>
the boolean value, if exact is 1 than raising inexact 
exception, otherwise ignore the exception.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Given a 64 bit floating point, which is stored in long,
use the long value to initiate self-defined float64_t type, then 
apply the f64_to_i64 function to get the string representation. 
</para>
</refsection>
</refentry><refentry id="API-fp-to-string">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::fp_to_string</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::fp_to_string</refname>
<refpurpose>
Convert 64 bit floating point to string
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
fp_to_string:string(infp:long,precision:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">infp</parameter></term>
<listitem>
<para>
the 64 bit floating point stored in long
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">precision</parameter></term>
<listitem>
<para>
number of digits after decimal point
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Given a 64 bit floating point, which is stored in long,
use the long value to initiate self-defined float64_t type, then
apply the f64_to_i64 function to get the string representation.
</para>
</refsection>
</refentry><refentry id="API-long-to-fp">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::long_to_fp</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::long_to_fp</refname>
<refpurpose>
Convert long int to 64 bit floating point
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
long_to_fp:long(input:long)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">input</parameter></term>
<listitem>
<para>
a long integer
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Convert from a long to a softfloat floating point, then 
print the floating point value.
</para>
</refsection>
</refentry><refentry id="API-string-to-fp">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>function::string_to_fp</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>function::string_to_fp</refname>
<refpurpose>
Convert the given string into floating point
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<programlisting format="linespecific">
string_to_fp:long(input:string)
</programlisting>
</refsection>
<refsection>
<title>Arguments</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">input</parameter></term>
<listitem>
<para>
the string representation of a decimal number
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
Given the string representation of a decimal number, convert
it to a floating point which is stored in 64 bit long.
</para>
</refsection>
</refentry></chapter>

<chapter id="syscall_any.stp"><title>Syscall Any Tapset</title><para>
This family of probe points is designed to provide low cost
instrumentation for cases where only the syscall name (or number)
and return value are required and there is no need for the detailed
syscall argument values. They are restricted versions of
syscall.* and syscall.*.return.
</para><refentry id="API-syscall-any">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::syscall_any</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::syscall_any</refname>
<refpurpose>
Record entry into a syscall
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">syscall_any </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">syscall_nr</parameter></term>
<listitem>
<para>
number of the syscall
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the syscall
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process performing the syscall
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
The syscall_any probe point is designed to be a low overhead
that monitors all the syscalls entered via a kernel tracepoint.
Because of the breadth of syscalls it monitors it provides
no information about the syscall arguments or argstr string
representation of those arguments.
</para><para>

This requires kernel 3.5+ and newer which have the
kernel.trace(<quote>sys_enter</quote>) probe point.
</para>
</refsection>
</refentry><refentry id="API-syscall-any-return">
<refentryinfo>
<title>LINUX</title>
<productname class="trade">SystemTap Tapset Reference</productname>
<date>November 2020</date>
</refentryinfo>
<refmeta>
<refentrytitle><phrase>probe::syscall_any.return</phrase></refentrytitle>
<manvolnum>3stap</manvolnum>
</refmeta>
<refnamediv>
<refname>probe::syscall_any.return</refname>
<refpurpose>
Record exit from a syscall
</refpurpose>
</refnamediv>
<refsection>
<title>Synopsis</title>
<synopsis format="linespecific">syscall_any.return </programlisting>

</refsection>
<refsection>
<title>Values</title>
<variablelist>
<varlistentry>
<term><parameter moreinfo="none">retval</parameter></term>
<listitem>
<para>
return value of the syscall
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">name</parameter></term>
<listitem>
<para>
name of the syscall
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter moreinfo="none">syscall_nr</parameter></term>
<listitem>
<para>
number of the syscall
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Context</title>
<para>
The process performing the syscall
</para>
</refsection>
<refsection>
<title>Description</title>
<para>
The syscall_any.return probe point is designed to be a low overhead
that monitors all the syscalls returns via a kernel tracepoint.
Because of the breadth of syscalls it monitors it provides
no information about the syscall arguments, argstr string
representation of those arguments, or a string interpretation
of the return value (retval).
</para><para>

This requires kernel 3.5+ and newer which have the
kernel.trace(<quote>sys_exit</quote>) probe point.
</para>
</refsection>
</refentry></chapter>


</book>
