Each function is described with a signature, and its behavior/restrictions. The signature line includes the name of the function, the type of its return value (if any), and the names and types of all parameters. The syntax is the same as printed with the stap option -p2. Examples:
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.
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.
For powerpc, the following names are recognized: r0, r1, ... r31, nip, msr, orig_gpr3, ctr, link, xer, ccr, softe, trap, dar, dsisr, result.
For s390x, the following names are recognized: r0, r1, ... r15, args, psw.mask, psw.addr, orig_gpr2, ilc, trap.
On 32-bit architectures --- and when probing 32-bit applications on 64-bit architectures --- a 64-bit argument occupies two "arg slots." For example, if you are probing the following function
void f(int a, long long b, char *c)
you would refer to a, b, and c as int_arg(1), longlong_arg(2), and pointer_arg(3), respectively, on a 64-bit architecture; but on a 32-bit architecture, you would refer to c as pointer_arg(4) (since b occupies slots 2 and 3).
If the function you are probing doesn't follow the default rules for argument passing, you need to call one of the following functions (which see) in your handler before calling any *_arg function: asmlinkage(), fastcall(), or regparm(). (This isn't necessary when referring to arguments only by name.)
For some architectures, the *_arg functions may reject unusually high values of n.
The queue_stats tapset provides functions that, given notifications of elementary queuing events (wait, run, done), tracks averages such as queue length, service and wait times, utilization. The following three functions should be called from appropriate probes, in sequence.
Functions with the prefix qsq_ are for querying the statistics averaged since the first queue operation (or when qsq_start was called). Since statistics are often fractional, a scale parameter is multiplies the result to a more useful scale. For some fractions, a scale of 100 will usefully return percentage numbers.
The indent tapset provides functions to generate indented lines for nested kinds of trace messages. Each line contains a relative timestamp, and the process name / pid.