]> sourceware.org Git - systemtap.git/commitdiff
Use function overloading in some tapset functions
authorFelix Lu <flu@redhat.com>
Wed, 9 Mar 2016 14:22:40 +0000 (09:22 -0500)
committerFelix Lu <flu@redhat.com>
Wed, 9 Mar 2016 18:32:33 +0000 (13:32 -0500)
Documentation for overloaded functions are now merged into
one entry. Some tapset functions are now simplified through
overloading. Instead of having new function names with suffixes
such as "2" or "pid" to indicate extra arguments, the functions
now seem to have optional arguments.

* doc/SystemTap_Tapset_Reference/overload.py: New script to resolve
documentation for overloaded functions.
* tapset/*: Rename some functions.
* testsuite/*: Rename functions in tests.

47 files changed:
doc/Makefile.in
doc/SystemTap_Tapset_Reference/Makefile.am
doc/SystemTap_Tapset_Reference/Makefile.in
doc/SystemTap_Tapset_Reference/overload.py [new file with mode: 0755]
doc/beginners/Makefile.in
java/Makefile.in
man/Makefile.in
man/cs/Makefile.in
scripts/generate-docs
stapdyn/Makefile.in
staprun/Makefile.in
tapset/ansi.stp
tapset/linux/context-envvar.stp
tapset/linux/context.stp
tapset/linux/conversions.stp
tapset/linux/ioscheduler.stp
tapset/linux/nd_syscalls.stp
tapset/linux/nd_syscalls2.stp
tapset/linux/netfilter.stp
tapset/linux/proc_mem.stp
tapset/linux/rpc.stp
tapset/linux/syscalls.stp
tapset/linux/syscalls2.stp
tapset/linux/task_time.stp
tapset/logging.stp
tapset/tokenize.stp
tapset/uconversions.stp
testsuite/buildok/conversions-embedded.stp
testsuite/buildok/conversions.stp
testsuite/buildok/proc_mem-embedded.stp
testsuite/buildok/task_test.stp
testsuite/buildok/task_time-embedded.stp
testsuite/systemtap.examples/general/ansi_colors.meta
testsuite/systemtap.examples/general/ansi_colors.stp
testsuite/systemtap.examples/general/ansi_colors2.meta
testsuite/systemtap.examples/general/ansi_colors2.stp
testsuite/systemtap.examples/index.html
testsuite/systemtap.examples/index.txt
testsuite/systemtap.examples/keyword-index.html
testsuite/systemtap.examples/keyword-index.txt
testsuite/systemtap.examples/lwtools/opensnoop-nd.stp
testsuite/systemtap.examples/process/proctop.stp
testsuite/systemtap.stress/conversions.stp
testsuite/systemtap.stress/conversions_perf.stp
testsuite/systemtap.stress/conversions_profile.stp
testsuite/systemtap.stress/conversions_trace.stp
testsuite/systemtap.string/user_string_n_quoted.stp

index ce6708e9d05eb82bc4e9e01f92663bd31aa996f4..1b4f10e1a69b7f4862383d1d507a89b0a660c0ed 100644 (file)
@@ -231,6 +231,7 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 POSUB = @POSUB@
 RANLIB = @RANLIB@
+READLINE_LIBS = @READLINE_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
index ac7642f3c93e3ebc4a9a255c9c7357698671c330..c7b37b5a4844b13c3d85210e5a5d2bd3a1471f5c 100644 (file)
@@ -23,8 +23,9 @@ tapsets.xml: docproc $(shell find $(SRCTREE)/tapset -name '*.stp')
 if BUILD_HTMLDOCS
        sed -e '/^!Syscalls/{r $(abs_srcdir)/syscalls.xmlpart' -e 'd}' $(abs_srcdir)/tapsets.tmpl > tapsets.tmpl.new
        SRCTREE=$(SRCTREE) $(DOCPROC) doc tapsets.tmpl.new > tapsets.xml.new
-       xsltproc $(srcdir)/sort-tapsets.xslt tapsets.xml.new > tapsets.xml.new2
-       rm tapsets.xml.new tapsets.tmpl.new
+       python $(srcdir)/overload.py tapsets.xml.new > tapsets.xml.new1
+       xsltproc $(srcdir)/sort-tapsets.xslt tapsets.xml.new1 > tapsets.xml.new2
+       rm tapsets.xml.new tapsets.xml.new1 tapsets.tmpl.new
        if test -s tapsets.xml && cmp tapsets.xml.new2 tapsets.xml >/dev/null ; then \
                echo tapsets.xml unchanged; \
                rm tapsets.xml.new2; \
index 6483dad1c42b10eabeaeed9bdc082ccff11589ab..6677d91bf553bf1181343b88877bb85740332f16 100644 (file)
@@ -238,6 +238,7 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 POSUB = @POSUB@
 RANLIB = @RANLIB@
+READLINE_LIBS = @READLINE_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -585,8 +586,9 @@ uninstall-am:
 @BUILD_REFDOCS_TRUE@tapsets.xml: docproc $(shell find $(SRCTREE)/tapset -name '*.stp')
 @BUILD_HTMLDOCS_TRUE@@BUILD_REFDOCS_TRUE@      sed -e '/^!Syscalls/{r $(abs_srcdir)/syscalls.xmlpart' -e 'd}' $(abs_srcdir)/tapsets.tmpl > tapsets.tmpl.new
 @BUILD_HTMLDOCS_TRUE@@BUILD_REFDOCS_TRUE@      SRCTREE=$(SRCTREE) $(DOCPROC) doc tapsets.tmpl.new > tapsets.xml.new
-@BUILD_HTMLDOCS_TRUE@@BUILD_REFDOCS_TRUE@      xsltproc $(srcdir)/sort-tapsets.xslt tapsets.xml.new > tapsets.xml.new2
-@BUILD_HTMLDOCS_TRUE@@BUILD_REFDOCS_TRUE@      rm tapsets.xml.new tapsets.tmpl.new
+@BUILD_HTMLDOCS_TRUE@@BUILD_REFDOCS_TRUE@      python $(srcdir)/overload.py tapsets.xml.new > tapsets.xml.new1
+@BUILD_HTMLDOCS_TRUE@@BUILD_REFDOCS_TRUE@      xsltproc $(srcdir)/sort-tapsets.xslt tapsets.xml.new1 > tapsets.xml.new2
+@BUILD_HTMLDOCS_TRUE@@BUILD_REFDOCS_TRUE@      rm tapsets.xml.new tapsets.xml.new1 tapsets.tmpl.new
 @BUILD_HTMLDOCS_TRUE@@BUILD_REFDOCS_TRUE@      if test -s tapsets.xml && cmp tapsets.xml.new2 tapsets.xml >/dev/null ; then \
 @BUILD_HTMLDOCS_TRUE@@BUILD_REFDOCS_TRUE@              echo tapsets.xml unchanged; \
 @BUILD_HTMLDOCS_TRUE@@BUILD_REFDOCS_TRUE@              rm tapsets.xml.new2; \
diff --git a/doc/SystemTap_Tapset_Reference/overload.py b/doc/SystemTap_Tapset_Reference/overload.py
new file mode 100755 (executable)
index 0000000..73735c5
--- /dev/null
@@ -0,0 +1,100 @@
+#! /usr/bin/python
+# XML tree transformation for systemtap function overloading
+# This script merges all overloaded tapset function entries
+# into one entry.
+
+import sys
+from lxml import etree
+
+DEBUG = 0
+
+def collect_overloads(refentries):
+    """
+    Collect overloads into lists.
+    """
+    functions = {}
+    for entry in refentries:
+        name = entry.xpath("refnamediv/refname")[0].text
+        if name not in functions:
+            functions[name] = []
+        functions[name].append(entry)
+    return {k: v for (k, v) in functions.items() if len(v) > 1}
+
+def get_params(functions):
+    """
+    Return a parameter list containing the parameters for all overloads.
+    """
+    seen = set()
+    params = []
+    for overload in functions:
+        refsect = overload.xpath("refsect1[1]")[0]
+        # add variablelist node for future construction
+        if len(refsect.xpath("variablelist")) == 0:
+            refsect.remove(refsect[1])
+            etree.SubElement(refsect, "variablelist")
+            continue
+        param_list = refsect.xpath("variablelist")[0].getchildren()
+        for param in param_list:
+            name = param.xpath("term/parameter")[0].text
+            if name not in seen:
+                seen.add(name)
+                params.append(param)
+    return params
+
+def annotate(entry):
+    """
+    Numbers all overloaded entries.
+    """
+    num_overloads = len(entry.xpath("refsect1[2]/para"))
+    synopsis = entry.xpath("refsynopsisdiv/programlisting")
+    description = entry.xpath("refsect1[2]/para")
+    for i in range(num_overloads):
+        synopsis[i].text = str(i+1) + ")" + " " + synopsis[i].text.strip()
+        description[i].text = str(i+1) + ")" + " " + description[i].text.strip()
+
+def merge(functions):
+    """
+    Merge matching refentries into one and delete them from their parents.
+    """
+    merged = functions[0]
+
+    # merge params
+    new_params = get_params(functions)
+    param_list = merged.xpath("refsect1[1]/variablelist")[0]
+    for param in param_list:
+        param.getparent().remove(param)
+    for param in new_params:
+        param_list.append(param)
+
+    # merge synopsis and descriptions
+    description = merged.xpath("refsect1[2]")[0]
+    synopsis = merged.xpath("refsynopsisdiv")[0]
+    for overload in functions[1:]:
+        synopsis.append(overload.xpath("refsynopsisdiv/programlisting")[0])
+        description.append(overload.xpath("refsect1[2]/para")[0])
+        overload.getparent().remove(overload)
+
+    annotate(merged)
+
+def merge_overloads(functions_list):
+    for functions in functions_list.values():
+        merge(functions)
+
+def usage():
+    print "Usage: ./overload.py <xml>"
+
+def main():
+    if len(sys.argv) != 2:
+        usage()
+        sys.exit()
+    parser = etree.XMLParser(remove_comments=False)
+    tree = etree.parse(sys.argv[1], parser=parser)
+    root = tree.getroot()
+    refentries = [r for r in root.iter("refentry")]
+    functions = collect_overloads(refentries)
+    merge_overloads(functions)
+    print etree.tostring(root, encoding='UTF-8', xml_declaration=True,
+            doctype=tree.docinfo.doctype)
+
+if __name__ == '__main__':
+    main()
index e348efdc5ed56bed106afea40a209ccdf5b044e4..3b408a19567f775aaebf78d1461b48b973045dae 100644 (file)
@@ -197,6 +197,7 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 POSUB = @POSUB@
 RANLIB = @RANLIB@
+READLINE_LIBS = @READLINE_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -369,8 +370,8 @@ distclean-generic:
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
        @echo "it deletes files that may require special tools to rebuild."
-@BUILD_DOCS_FALSE@uninstall-local:
 @BUILD_DOCS_FALSE@clean-local:
+@BUILD_DOCS_FALSE@uninstall-local:
 @BUILD_DOCS_FALSE@install-data-hook:
 clean: clean-am
 
index 32eb6eca8b9b38d9b60d8f0e96790433025e6477..0625b22c4074455458400215f3147fc8997f2b64 100644 (file)
@@ -285,6 +285,7 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 POSUB = @POSUB@
 RANLIB = @RANLIB@
+READLINE_LIBS = @READLINE_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
index 513afd93417e259051324c88155bb8542e11f888..e6bed42b2d21a6033fc41089bb36797b24ea8a1f 100644 (file)
@@ -269,6 +269,7 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 POSUB = @POSUB@
 RANLIB = @RANLIB@
+READLINE_LIBS = @READLINE_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
index 82dce6437e04bf1bb9c0d84460d368be81216280..3bedbf694d2f5110578c6d7c253694acd1432139 100644 (file)
@@ -233,6 +233,7 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 POSUB = @POSUB@
 RANLIB = @RANLIB@
+READLINE_LIBS = @READLINE_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
index 6b418dbda517be8b87278dcf6ca178894ad51af6..4d78518d520ec97476155dc3644e1ad3c802fbce 100755 (executable)
@@ -28,8 +28,9 @@ echo "Generating tapsets.xml"
 gcc -o docproc $DOCS/$STR/docproc.c
 sed -e '/^!Syscalls/{r $DOCS/$STR/syscalls.xmlpart' -e 'd}' $DOCS/$STR/tapsets.tmpl > tapsets.tmpl.new
 SRCTREE=$BASE/ ./docproc doc tapsets.tmpl.new > tapsets.xml.new
-xsltproc $DOCS/$STR/sort-tapsets.xslt tapsets.xml.new > tapsets.xml.new2
-rm tapsets.xml.new tapsets.tmpl.new
+python $DOCS/$STR/overload.py tapsets.xml.new > tapsets.xml.new1
+xsltproc $DOCS/$STR/sort-tapsets.xslt tapsets.xml.new1 > tapsets.xml.new2
+rm tapsets.xml.new tapsets.xml.new1 tapsets.tmpl.new
 if test -s tapsets.xml && cmp tapsets.xml.new2 tapsets.xml >/dev/null ; then
     echo tapsets.xml unchanged;
     rm tapsets.xml.new2;
index defeab1b81b004810c0cfbe7f065d39008bf6a17..76cbb23084fc54028bbbecd51acc4d4a542468ff 100644 (file)
@@ -295,6 +295,7 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 POSUB = @POSUB@
 RANLIB = @RANLIB@
+READLINE_LIBS = @READLINE_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
index 5b28c57de81d68e15c1e3a717e38411842b0ab23..fce2e8d0c68ed4b5f479c0ed8c48cf9a952e29b3 100644 (file)
@@ -337,6 +337,7 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 POSUB = @POSUB@
 RANLIB = @RANLIB@
+READLINE_LIBS = @READLINE_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
index a6cf4c2c35ac8b25b78b5dc8d2854d1b086b38d9..e6178db43305fa4cd37d8c2d15938cba7595147d 100644 (file)
@@ -32,7 +32,7 @@ function ansi_set_color(fg:long) {
 }
 
 /**
- * sfunction ansi_set_color2 - Set the ansi Select Graphic Rendition mode.
+ * sfunction ansi_set_color - Set the ansi Select Graphic Rendition mode.
  * @fg: Foreground color to set.
  * @bg: Background color to set.
  *
@@ -42,12 +42,12 @@ function ansi_set_color(fg:long) {
  * background color, Black (40), Red (41), Green (42), Yellow (43),
  * Blue (44), Magenta (45), Cyan (46), White (47).
  */
-function ansi_set_color2(fg:long, bg:long) {
+function ansi_set_color(fg:long, bg:long) {
        printf("\033[%d;%dm", bg, fg)
 }
 
 /**
- * sfunction ansi_set_color3 - Set the ansi Select Graphic Rendition mode.
+ * sfunction ansi_set_color - Set the ansi Select Graphic Rendition mode.
  * @fg: Foreground color to set.
  * @bg: Background color to set.
  * @attr: Color attribute to set.
@@ -60,7 +60,7 @@ function ansi_set_color2(fg:long, bg:long) {
  * All attributes off (0), Intensity Bold (1), Underline Single (4),
  * Blink Slow (5), Blink Rapid (6), Image Negative (7).
  */
-function ansi_set_color3(fg:long, bg:long, attr:long) {
+function ansi_set_color(fg:long, bg:long, attr:long) {
        attr_str = attr ? sprintf(";%dm", attr) : "m"
        printf("\033[%d;%d%s", bg, fg, attr_str)
 }
@@ -72,7 +72,7 @@ function ansi_set_color3(fg:long, bg:long, attr:long) {
  * attribute to default values.
  */
 function ansi_reset_color() {
-       ansi_set_color3(0, 0, 0)
+       ansi_set_color(0, 0, 0)
 }
 
 /**
index e554681422bbc0f442286c1bc01920706d745ccd..4d4c648f449fc8c45721592a557f83b2bfaa628b 100644 (file)
@@ -33,7 +33,7 @@ function env_var:string(name:string)
       if (env_start != 0 && env_end != 0)
         {
           len = env_end - env_start;
-          cur = user_string2(env_start, "");
+          cur = user_string(env_start, "");
           env_name = tokenize(cur, "=");
           while (env_name != name && len > 0)
             {
@@ -42,7 +42,7 @@ function env_var:string(name:string)
               len -= env_len + 1;
               if (len > 0)
                 {
-                  cur = user_string2(env_start, "");
+                  cur = user_string(env_start, "");
                   env_name = tokenize(cur, "=");
                 }
               else
index 3147ea7df9d8da933437ad79fa06ccd56a0bd81d..31d63e92a90689e0c060e81cdb4d417783a15456 100644 (file)
@@ -569,7 +569,7 @@ function cmdline_args:string(n:long, m:long, delim:string)
          (m<0 || __nr<=m); // caller still interested?
        __nr++) { 
 
-    __arg = user_string2(__arg_start, ""); // argv[__nr], unquoted
+    __arg = user_string(__arg_start, ""); // argv[__nr], unquoted
     __arg_start += strlen(__arg) + 1; // skip over for next iteration
 
     if (__nr == n)     // caller starting to get interested?
index 795c9f16e35d4583ba61976895e0dda8219a7dcb..48fb6d097f97974831728b847304a2b9fcaedbc5 100644 (file)
@@ -31,7 +31,7 @@ deref_fault: /* branched to from deref_string() */
 %}
 
 /**
- * sfunction kernel_string2 - Retrieves string from kernel memory with alternative error string
+ * sfunction kernel_string - Retrieves string from kernel memory with alternative error string
  * @addr: The kernel address to retrieve the string from
  * @err_msg: The error message to return when data isn't available
  *
@@ -39,7 +39,7 @@ deref_fault: /* branched to from deref_string() */
  * from a given kernel memory address. Reports the given error message
  * on string copy fault.
  */
-function kernel_string2:string (addr:long, err_msg:string) {
+function kernel_string:string (addr:long, err_msg:string) {
   try { return kernel_string(addr) } catch { return err_msg }
 }
 
@@ -123,7 +123,7 @@ deref_fault: /* branched to from deref_string() */
 %}
 
 /**
- * sfunction kernel_string2_utf32 - Retrieves UTF-32 string from kernel memory with alternative error string
+ * sfunction kernel_string_utf32 - Retrieves UTF-32 string from kernel memory with alternative error string
  * @addr: The kernel address to retrieve the string from
  * @err_msg: The error message to return when data isn't available
  *
@@ -131,7 +131,7 @@ deref_fault: /* branched to from deref_string() */
  * from the UTF-32 string at a given kernel memory address. Reports the given
  * error message on string copy fault or conversion error.
  */
-function kernel_string2_utf32:string (addr:long, err_msg:string) {
+function kernel_string_utf32:string (addr:long, err_msg:string) {
   try { return kernel_string_utf32(addr) } catch { return err_msg }
 }
 
@@ -199,7 +199,7 @@ deref_fault: /* branched to from deref_string() */
 %}
 
 /**
- * sfunction kernel_string2_utf16 - Retrieves UTF-16 string from kernel memory with alternative error string
+ * sfunction kernel_string_utf16 - Retrieves UTF-16 string from kernel memory with alternative error string
  * @addr: The kernel address to retrieve the string from
  * @err_msg: The error message to return when data isn't available
  *
@@ -207,7 +207,7 @@ deref_fault: /* branched to from deref_string() */
  * from the UTF-16 string at a given kernel memory address. Reports the given
  * error message on string copy fault or conversion error.
  */
-function kernel_string2_utf16:string (addr:long, err_msg:string) {
+function kernel_string_utf16:string (addr:long, err_msg:string) {
   try { return kernel_string_utf16(addr) } catch { return err_msg }
 }
 
index 8da4a4c0fd7f17c73b30c603c4d5f52f8da583b0..00d75a57e88b47f921c286a4721cfa468aeec1bb 100644 (file)
@@ -23,7 +23,7 @@ probe ioscheduler.elv_next_request = kernel.function("blk_peek_request") !,
                                     kernel.function("elv_next_request")
 {
        name = "elv_next_request"
-       elevator_name = kernel_string2(
+       elevator_name = kernel_string(
                @choose_defined($q->elevator->type->elevator_name,
                        @choose_defined($q->elevator->elevator_type->elevator_name,
                                         $q->elevator->elevator_name)), "")
@@ -73,7 +73,7 @@ probe ioscheduler.elv_completed_request
        = kernel.function("elv_completed_request")
 {
        name = "elv_completed_request"
-       elevator_name = kernel_string2(
+       elevator_name = kernel_string(
                @choose_defined($q->elevator->type->elevator_name,
                        @choose_defined($q->elevator->elevator_type->elevator_name,
                                         $q->elevator->elevator_name)), "")
@@ -111,7 +111,7 @@ probe ioscheduler.elv_add_request.kp =
                kernel.function("__elv_add_request")
 {
        name = "elv_add_request"
-       elevator_name = kernel_string2(
+       elevator_name = kernel_string(
                @choose_defined($q->elevator->type->elevator_name,
                        @choose_defined($q->elevator->elevator_type->elevator_name,
                                         $q->elevator->elevator_name)), "")
@@ -149,7 +149,7 @@ probe ioscheduler.elv_add_request.tp = kernel.trace("block_rq_insert") ?
 {
        name = "elv_add_request"
        q =  $q
-       elevator_name = kernel_string2(
+       elevator_name = kernel_string(
                @choose_defined($q->elevator->type->elevator_name,
                        @choose_defined($q->elevator->elevator_type->elevator_name,
                                         $q->elevator->elevator_name)), "")
@@ -197,7 +197,7 @@ probe ioscheduler_trace.elv_completed_request
                        = kernel.trace("block_rq_complete") ?
 {
        name = "elv_completed_request"
-       elevator_name = kernel_string2(
+       elevator_name = kernel_string(
                @choose_defined($q->elevator->type->elevator_name,
                        @choose_defined($q->elevator->elevator_type->elevator_name,
                                         $q->elevator->elevator_name)), "")
@@ -231,7 +231,7 @@ probe ioscheduler_trace.elv_issue_request
                        = kernel.trace("block_rq_issue") ?
 {
        name = "elv_issue_request"
-       elevator_name = kernel_string2(
+       elevator_name = kernel_string(
                @choose_defined($q->elevator->type->elevator_name,
                        @choose_defined($q->elevator->elevator_type->elevator_name,
                                         $q->elevator->elevator_name)), "")
@@ -265,7 +265,7 @@ probe ioscheduler_trace.elv_requeue_request
                        = kernel.trace("block_rq_requeue") ?
 {
        name = "elv_requeue_request"
-       elevator_name = kernel_string2(
+       elevator_name = kernel_string(
                @choose_defined($q->elevator->type->elevator_name,
                        @choose_defined($q->elevator->elevator_type->elevator_name,
                                         $q->elevator->elevator_name)), "")
@@ -298,7 +298,7 @@ probe ioscheduler_trace.elv_abort_request
                        = kernel.trace("block_rq_abort") ?
 {
        name = "elv_abort_request"
-       elevator_name = kernel_string2(
+       elevator_name = kernel_string(
                @choose_defined($q->elevator->type->elevator_name,
                        @choose_defined($q->elevator->elevator_type->elevator_name,
                                         $q->elevator->elevator_name)), "")
index a65928b1687e5d4fc93292e228e4e1851393fcba..4174454b33a573f21bcd555b6c089e88dd46003e 100644 (file)
@@ -212,7 +212,7 @@ probe nd_syscall.add_key = kprobe.function("sys_add_key") ?
        argstr = sprintf("%s, %s, %s, %u, %d",
                user_string_quoted(type_uaddr),
                user_string_quoted(description_uaddr),
-               user_string_n2_quoted(payload_uaddr, plen, syscall_string_trunc),
+               user_string_n_quoted(payload_uaddr, plen, syscall_string_trunc),
                plen, ringid)
 }
 probe nd_syscall.add_key.return = kprobe.function("sys_add_key").return ?
index ac7095faa3532d50f1d578aa66fc36d7d5c20598..f68af943b78f6b9a0c9a3b459880597d3daeb078 100644 (file)
@@ -890,7 +890,7 @@ probe nd_syscall.pwrite = kprobe.function("sys_pwrite64") ?
        count = ulong_arg(3)
        offset = longlong_arg(4)
        argstr = sprintf("%d, %s, %u, %d", fd,
-                        user_string_n2_quoted(buf_uaddr, count, syscall_string_trunc),
+                        user_string_n_quoted(buf_uaddr, count, syscall_string_trunc),
                                count, offset)
 }
 probe nd_syscall.pwrite.return = kprobe.function("sys_pwrite64").return ?
@@ -912,7 +912,7 @@ probe nd_syscall.pwrite32 = kprobe.function("sys32_pwrite64") ?
        count = ulong_arg(3)
        offset = (u32_arg(4) << 32) + u32_arg(5)
        argstr = sprintf("%d, %s, %u, %d", fd,
-                        user_string_n2_quoted(buf_uaddr, count,
+                        user_string_n_quoted(buf_uaddr, count,
                                               syscall_string_trunc),
                         count, offset)
 }
@@ -5692,7 +5692,7 @@ probe nd_syscall.write =
        buf_uaddr = pointer_arg(2)
        count = ulong_arg(3)
        argstr = sprintf("%d, %s, %u", fd,
-                        user_string_n2_quoted(buf_uaddr, count,
+                        user_string_n_quoted(buf_uaddr, count,
                                               syscall_string_trunc),
                         count)
 }
index 93265ed3e8ae646f87d5219080b0565d03683074..b2b1bde0808a50e2992bafb04d3fde6d8a8ef089 100644 (file)
 
         indev = & @cast($in, "struct net_device", "kernel<linux/netdevice.h>")
         outdev = & @cast($out, "struct net_device", "kernel<linux/netdevice.h>")
-        indev_name = kernel_string2(indev->name, "")
-        outdev_name = kernel_string2(outdev->name, "")
+        indev_name = kernel_string(indev->name, "")
+        outdev_name = kernel_string(outdev->name, "")
 
         if (indev) {
            indev_mac_len = indev->addr_len
index 744dc276d08eb03b2fff66cc0cfa6c2cb6a101b2..83a5bdb87d460bd2412d36ca815a10dafbe7d3e2 100644 (file)
@@ -130,7 +130,7 @@ function proc_mem_size:long ()
 }
 
 /**
- * sfunction proc_mem_size_pid - Total program virtual memory size in pages
+ * sfunction proc_mem_size - Total program virtual memory size in pages
  *
  * @pid: The pid of process to examine
  *
@@ -138,7 +138,7 @@ function proc_mem_size:long ()
  * given process, or zero when that process doesn't exist or the
  * number of pages couldn't be retrieved.
  */
-function proc_mem_size_pid:long (pid:long)
+function proc_mem_size:long (pid:long)
 {
   task = pid2task(pid)
   if (_stp_valid_task(task)) {
@@ -169,7 +169,7 @@ function proc_mem_rss:long ()
 }
 
 /**
- * sfunction proc_mem_rss_pid - Program resident set size in pages
+ * sfunction proc_mem_rss - Program resident set size in pages
  *
  * @pid: The pid of process to examine
  *
@@ -177,7 +177,7 @@ function proc_mem_rss:long ()
  * process, or zero when the process doesn't exist or the number of
  * pages couldn't be retrieved.
  */
-function proc_mem_rss_pid:long (pid:long)
+function proc_mem_rss:long (pid:long)
 {
   task = pid2task(pid)
   if (_stp_valid_task(task)) {
@@ -208,7 +208,7 @@ function proc_mem_shr:long ()
 }
 
 /**
- * sfunction proc_mem_shr_pid - Program shared pages (from shared mappings)
+ * sfunction proc_mem_shr - Program shared pages (from shared mappings)
  *
  * @pid: The pid of process to examine
  *
@@ -216,7 +216,7 @@ function proc_mem_shr:long ()
  * given process, or zero when the process doesn't exist or the
  * number of pages couldn't be retrieved.
  */
-function proc_mem_shr_pid:long (pid:long)
+function proc_mem_shr:long (pid:long)
 {
   task = pid2task(pid)
   if (_stp_valid_task(task)) {
@@ -257,7 +257,7 @@ function proc_mem_txt:long ()
 }
 
 /**
- * sfunction proc_mem_txt_pid - Program text (code) size in pages
+ * sfunction proc_mem_txt - Program text (code) size in pages
  *
  * @pid: The pid of process to examine
  *
@@ -265,7 +265,7 @@ function proc_mem_txt:long ()
  * or zero when the process doesn't exist or the number of pages
  * couldn't be retrieved.
  */
-function proc_mem_txt_pid:long (pid:long)
+function proc_mem_txt:long (pid:long)
 {
   task = pid2task(pid)
   if (_stp_valid_task(task)) {
@@ -300,7 +300,7 @@ function proc_mem_data:long ()
 }
 
 /**
- * sfunction proc_mem_data_pid - Program data size (data + stack) in pages
+ * sfunction proc_mem_data - Program data size (data + stack) in pages
  *
  * @pid: The pid of process to examine
  *
@@ -308,7 +308,7 @@ function proc_mem_data:long ()
  * in pages, or zero when the process doesn't exist or the number of
  * pages couldn't be retrieved.
  */
-function proc_mem_data_pid:long (pid:long)
+function proc_mem_data:long (pid:long)
 {
   task = pid2task(pid)
   if (_stp_valid_task(task)) {
@@ -388,7 +388,7 @@ function pages_to_string:string (pages:long)
 }
 
 /**
- * sfunction proc_mem_string - Human readable string of current proc memory usage
+ * sfunction proc_mem_string - Human readable string of process memory usage
  *
  * Description: Returns a human readable string showing the size, rss,
  * shr, txt and data of the memory used by the current process.
@@ -405,7 +405,7 @@ function proc_mem_string:string ()
 }
 
 /**
- * sfunction proc_mem_string_pid - Human readable string of process memory usage
+ * sfunction proc_mem_string - Human readable string of process memory usage
  *
  * @pid: The pid of process to examine
  *
@@ -413,12 +413,12 @@ function proc_mem_string:string ()
  * shr, txt and data of the memory used by the given process.
  * For example "size: 301m, rss: 11m, shr: 8m, txt: 52k, data: 2248k".
  */
-function proc_mem_string_pid:string (pid:long)
+function proc_mem_string:string (pid:long)
 {
   return sprintf ("size: %s, rss: %s, shr: %s, txt: %s, data: %s",
-                  pages_to_string(proc_mem_size_pid(pid)),
-                  pages_to_string(proc_mem_rss_pid(pid)),
-                  pages_to_string(proc_mem_shr_pid(pid)),
-                  pages_to_string(proc_mem_txt_pid(pid)),
-                  pages_to_string(proc_mem_data_pid(pid)));
+                  pages_to_string(proc_mem_size(pid)),
+                  pages_to_string(proc_mem_rss(pid)),
+                  pages_to_string(proc_mem_shr(pid)),
+                  pages_to_string(proc_mem_txt(pid)),
+                  pages_to_string(proc_mem_data(pid)));
 }
index 4659923fdcf3fe8140fdbd505e3a594d8ddc5260..5d8181af1b6f8a0571c308d34ad740184aafb5c6 100644 (file)
@@ -489,7 +489,7 @@ probe sunrpc.clnt.call_sync = kernel.function("rpc_call_sync") !,
                                            &$clnt->cl_count)) == 0)
 
        proc = proc_from_msg($msg)
-       procname = kernel_string2(@choose_defined($msg->rpc_proc->p_name, 0), "NULL")
+       procname = kernel_string(@choose_defined($msg->rpc_proc->p_name, 0), "NULL")
        flags = $flags
        
        name = "sunrpc.clnt.call_sync"
@@ -542,7 +542,7 @@ probe sunrpc.clnt.call_async = kernel.function("rpc_call_async") !,
                                            &$clnt->cl_count)) == 0)
 
        proc = proc_from_msg($msg)
-       procname = kernel_string2(@choose_defined($msg->rpc_proc->p_name, 0), "NULL")
+       procname = kernel_string(@choose_defined($msg->rpc_proc->p_name, 0), "NULL")
        flags = $flags
        
        name = "sunrpc.clnt.call_async"
index 00d821fc7abc32aca37b62c891d50cd53ca70cde..82d2ec7ceb160e492917b1204a4edfccca66eba1 100644 (file)
@@ -193,7 +193,7 @@ probe syscall.add_key = kernel.function("sys_add_key").call ?
        argstr = sprintf("%s, %s, %s, %u, %d",
                user_string_quoted($_type),
                user_string_quoted($_description),
-               user_string_n2_quoted($_payload, $plen, syscall_string_trunc),
+               user_string_n_quoted($_payload, $plen, syscall_string_trunc),
                __ulong($plen), __int32($ringid))
 }
 probe syscall.add_key.return = kernel.function("sys_add_key").return ?
index b39f17dca78090a986ab04c21b5a1492cfb0bed6..82eb076c594a86ca9b270a8d755bd86a544a69c8 100644 (file)
@@ -902,7 +902,7 @@ probe syscall.pwrite = kernel.function("sys_pwrite64").call
        count = __ulong($count)
        offset = $pos
        argstr = sprintf("%d, %s, %u, %d", __int32($fd),
-               user_string_n2_quoted($buf, $count, syscall_string_trunc),
+               user_string_n_quoted($buf, $count, syscall_string_trunc),
                __ulong($count), $pos)
 }
 probe syscall.pwrite.return = kernel.function("sys_pwrite64").return
@@ -923,7 +923,7 @@ probe syscall.pwrite32 = kernel.function("sys32_pwrite64").call ?
        offset = ($poshi << 32) + $poslo
        buf_uaddr = @choose_defined($buf, $ubuf)
        argstr = sprintf("%d, %s, %u, %d", __int32($fd),
-                        user_string_n2_quoted(buf_uaddr, $count,
+                        user_string_n_quoted(buf_uaddr, $count,
                                               syscall_string_trunc),
                         $count, ($poshi << 32) + $poslo)
 }
@@ -5313,7 +5313,7 @@ probe syscall.write =
        buf_uaddr = $buf
        count = __ulong($count)
        argstr = sprintf("%d, %s, %u", __int32($fd),
-               user_string_n2_quoted($buf, $count, syscall_string_trunc),
+               user_string_n_quoted($buf, $count, syscall_string_trunc),
                __ulong($count))
 }
 probe __syscall.write = kernel.function("sys_write").call
index 069394eee5b7574c45e1f25f051d427862dbc8ea..af854965c0821bd2a7bc7bd2e82b7d8dad4f9b08 100644 (file)
@@ -42,7 +42,7 @@
 %}
 
 /**
- * sfunction task_utime - User time of the current task
+ * sfunction task_utime - User time of the task
  *
  * Description: Returns the user time of the current task in cputime.
  * Does not include any time used by other tasks in this process, nor
@@ -54,7 +54,7 @@ function task_utime:long ()
 %}
 
 /**
- * sfunction task_utime_tid - User time of the given task
+ * sfunction task_utime - User time of the task
  *
  * @tid: Thread id of the given task
  *
@@ -63,7 +63,7 @@ function task_utime:long ()
  * Does not include any time used by other tasks in this process, nor
  * does it include any time of the children of this task.
  */
-function task_utime_tid:long(tid:long)
+function task_utime:long(tid:long)
 {
   task = pid2task(tid);
   if (task != 0)
@@ -73,7 +73,7 @@ function task_utime_tid:long(tid:long)
 }
 
 /**
- * sfunction task_stime - System time of the current task
+ * sfunction task_stime - System time of the task
  *
  * Description: Returns the system time of the current task in cputime.
  * Does not include any time used by other tasks in this process, nor
@@ -85,7 +85,7 @@ function task_stime:long ()
 %}
 
 /**
- * sfunction task_stime_tid - System time of the given task
+ * sfunction task_stime - System time of the task
  *
  * @tid: Thread id of the given task
  *
@@ -94,7 +94,7 @@ function task_stime:long ()
  * Does not include any time used by other tasks in this process, nor
  * does it include any time of the children of this task.
  */
-function task_stime_tid:long(tid:long)
+function task_stime:long(tid:long)
 {
   task = pid2task(tid);
   if (task != 0)
@@ -239,6 +239,6 @@ function task_time_string:string ()
 function task_time_string_tid:string (tid:long)
 {
   return sprintf ("usr: %s, sys: %s",
-                  cputime_to_string (task_utime_tid(tid)),
-                  cputime_to_string (task_stime_tid(tid)));
+                  cputime_to_string (task_utime(tid)),
+                  cputime_to_string (task_stime(tid)));
 }
index ee159ac4ae2291076be20edb1f027a16b632bf67..ed49e0f5a6472350a0ecccef56f9eaf42f094e81 100644 (file)
@@ -70,6 +70,22 @@ function error (msg:string) %{ /* unprivileged */ /* unmodified-fnargs */
   CONTEXT->last_stmt = NULL;
 %}
 
+/**
+ * sfunction assert - evaluate assertion
+ *
+ * @expression: The expression to evaluate
+ *
+ * Description: This function checks the expression and aborts the
+ * current running probe if expression evaluates to zero. Uses error()
+ * and may be caught by try{} catch{}. A default message will be
+ * displayed.
+ */
+function assert(expression:long) {
+    if (!expression) {
+        error("Assertion failed")
+    }
+}
+
 /**
  * sfunction assert - evaluate assertion
  *
@@ -78,9 +94,10 @@ function error (msg:string) %{ /* unprivileged */ /* unmodified-fnargs */
  *
  * Description: This function checks the expression and aborts the
  * current running probe if expression evaluates to zero. Uses error()
- * and may be caught by try{} catch{}.
+ * and may be caught by try{} catch{}. The specified message will be
+ * displayed.
  */
-function assert(expression, msg) {
+function assert(expression:long, msg:string) {
     if (!expression) {
         error(msg)
     }
index cc2e365f2715ae57f7bb9aa85c173171b67a8dad..7a9dc0ca0e7f83ef582f7dc4de5ae67557fa5232 100644 (file)
 #define STAP_NEED_CONTEXT_TOKENIZE 1
 %}
 
+/**
+ * sfunction tokenize - Return the next non-empty token in a string
+ *
+ * @delim: set of characters that delimit the tokens
+ *
+ * Description: 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.
+ */
+function tokenize:string(delim:string) {
+  return tokenize("", delim)
+}
+
 /**
  * sfunction tokenize - Return the next non-empty token in a string
  *
index ce0418352270c8b4853cf4f43d72fd776fe3ec16..73898a87b26bf0fb3402ed42d81c4cb30364589f 100644 (file)
@@ -45,7 +45,7 @@ function user_string:string (addr:long) {
 }
 
 /**
- * sfunction user_string2 - Retrieves string from user space with alternative error string
+ * sfunction user_string - Retrieves string from user space with alternative error string
  *
  * @addr: the user space address to retrieve the string from
  * @err_msg: the error message to return when data isn't available
@@ -54,8 +54,8 @@ function user_string:string (addr:long) {
  * memory address. Reports the given error message on the rare cases when
  * userspace data is not accessible.
  */
-function user_string2:string (addr:long, err_msg:string) {
-       return user_string_n2(addr, @MAXSTRINGLEN, err_msg)
+function user_string:string (addr:long, err_msg:string) {
+       return user_string_n(addr, @MAXSTRINGLEN, err_msg)
 }
 
 /**
@@ -69,15 +69,15 @@ function user_string2:string (addr:long, err_msg:string) {
  */
 function user_string_warn:string (addr:long) {
 %(systemtap_v < "2.3" %? // PR15044
-       return user_string2_warn(addr, "<unknown>")
+       return user_string_warn(addr, "<unknown>")
 %:
-       return user_string2_warn(addr, "")
+       return user_string_warn(addr, "")
 %)
 }
 
 
 /**
- * sfunction user_string2_warn - Retrieves string from user space with alternative warning string
+ * sfunction user_string_warn - Retrieves string from user space with alternative warning string
  *
  * @addr: the user space address to retrieve the string from
  * @warn_msg: the warning message to return when data isn't available
@@ -87,8 +87,8 @@ function user_string_warn:string (addr:long) {
  * when userspace data is not accessible and warns (but does not abort)
  * about the failure.
  */
-function user_string2_warn:string (addr:long, warn_msg:string) {
-       return user_string2_n_warn(addr, @MAXSTRINGLEN, warn_msg)
+function user_string_warn:string (addr:long, warn_msg:string) {
+       return user_string_n_warn(addr, @MAXSTRINGLEN, warn_msg)
 }
 
 /**
@@ -122,7 +122,7 @@ function user_string_quoted:string (addr:long) {
  */
 function user_string_n:string (addr:long, n:long)
 %( systemtap_v < "2.3" %? // PR15044
-       { return user_string_n2(addr, n, "<unknown>") }
+       { return user_string_n(addr, n, "<unknown>") }
 %:
        %{ /* pure */ /* myproc-unprivileged */
                long rc;
@@ -141,7 +141,7 @@ function user_string_n:string (addr:long, n:long)
 %)
 
 /**
- * sfunction user_string_n2 - Retrieves string of given length from user space
+ * sfunction user_string_n - Retrieves string of given length from user space
  *
  * @addr: the user space address to retrieve the string from
  * @n: the maximum length of the string (if not null terminated)
@@ -152,7 +152,7 @@ function user_string_n:string (addr:long, n:long)
  * the rare cases when userspace data is not accessible at the given
  * address.
  */
-function user_string_n2:string (addr:long, n:long, err_msg:string)
+function user_string_n:string (addr:long, n:long, err_msg:string)
 %{ /* pure */ /* myproc-unprivileged */ /* unmodified-fnargs */
   int64_t len = clamp_t(int64_t, STAP_ARG_n + 1, 1, MAXSTRINGLEN);
   if (_stp_strncpy_from_user(STAP_RETVALUE, 
@@ -175,14 +175,14 @@ function user_string_n2:string (addr:long, n:long, err_msg:string)
  */
 function user_string_n_warn:string (addr:long, n:long) {
 %(systemtap_v < "2.3" %? // PR15044
-       return user_string2_n_warn(addr, n, "<unknown>")
+       return user_string_n_warn(addr, n, "<unknown>")
 %:
-       return user_string2_n_warn(addr, n, "")
+       return user_string_n_warn(addr, n, "")
 %)
 }
 
 /**
- * sfunction user_string2_n_warn - Retrieves string from user space with alternative warning string
+ * sfunction user_string_n_warn - Retrieves string from user space with alternative warning string
  *
  * @addr: the user space address to retrieve the string from
  * @n: the maximum length of the string (if not null terminated)
@@ -193,7 +193,7 @@ function user_string_n_warn:string (addr:long, n:long) {
  * rare cases when userspace data is not accessible and warns (but does
  * not abort) about the failure.
  */
-function user_string2_n_warn:string (addr:long, n:long, warn_msg:string)
+function user_string_n_warn:string (addr:long, n:long, warn_msg:string)
 %{ /* pure */ /* myproc-unprivileged */ /* unmodified-fnargs */
        int64_t len = clamp_t(int64_t, STAP_ARG_n + 1, 1, MAXSTRINGLEN);
        long rc;
@@ -227,14 +227,14 @@ function user_string2_n_warn:string (addr:long, n:long, warn_msg:string)
 function user_string_n_quoted:string (addr:long, n:long) {
 %(systemtap_v < "2.4" %?
        // We used to count n by output characters
-       return user_string_n2_quoted(addr, @MAXSTRINGLEN, n)
+       return user_string_n_quoted(addr, @MAXSTRINGLEN, n)
 %:
-       return user_string_n2_quoted(addr, n, @MAXSTRINGLEN)
+       return user_string_n_quoted(addr, n, @MAXSTRINGLEN)
 %)
 }
 
 /**
- * sfunction user_string_n2_quoted - Retrieves and quotes string from user space
+ * sfunction user_string_n_quoted - Retrieves and quotes string from user space
  *
  * @addr: the user space address to retrieve the string from
  * @inlen: the maximum length of the string to read (if not null terminated)
@@ -248,7 +248,7 @@ function user_string_n_quoted:string (addr:long, n:long) {
  * the given address, the address itself is returned as a string, without
  * double quotes.
  */
-function user_string_n2_quoted:string (addr:long, inlen:long, outlen:long)
+function user_string_n_quoted:string (addr:long, inlen:long, outlen:long)
 %( systemtap_v >= "3.0" %?
    {
      try
@@ -334,7 +334,7 @@ deref_fault: /* branched to from deref_string() */
 %}
 
 /**
- * sfunction user_string2_utf32 - Retrieves UTF-32 string from user memory with alternative error string
+ * sfunction user_string_utf32 - Retrieves UTF-32 string from user memory with alternative error string
  * @addr: The user address to retrieve the string from
  * @err_msg: The error message to return when data isn't available
  *
@@ -342,7 +342,7 @@ deref_fault: /* branched to from deref_string() */
  * from the UTF-32 string at a given user memory address. Reports the given
  * error message on string copy fault or conversion error.
  */
-function user_string2_utf32:string (addr:long, err_msg:string) {
+function user_string_utf32:string (addr:long, err_msg:string) {
   try { return user_string_utf32(addr) } catch { return err_msg }
 }
 
@@ -411,7 +411,7 @@ deref_fault: /* branched to from deref_string() */
 %}
 
 /**
- * sfunction user_string2_utf16 - Retrieves UTF-16 string from user memory with alternative error string
+ * sfunction user_string_utf16 - Retrieves UTF-16 string from user memory with alternative error string
  * @addr: The user address to retrieve the string from
  * @err_msg: The error message to return when data isn't available
  *
@@ -419,7 +419,7 @@ deref_fault: /* branched to from deref_string() */
  * from the UTF-16 string at a given user memory address. Reports the given
  * error message on string copy fault or conversion error.
  */
-function user_string2_utf16:string (addr:long, err_msg:string) {
+function user_string_utf16:string (addr:long, err_msg:string) {
   try { return user_string_utf16(addr) } catch { return err_msg }
 }
 
index a239c6c3bcd33363061bcc01ce38b96bfce1af66..6cbae4fa93d1d1213d2de109eade4bebd89d9de6 100755 (executable)
@@ -12,15 +12,15 @@ probe begin {
        print (kernel_pointer(0))
 
        print (user_string(0))
-       print (user_string2 (0, ""))
+       print (user_string (0, ""))
        print (user_string_warn (0))
        print (user_string_quoted (0))
 
        print (user_string_n(0, 5))
-       print (user_string_n2(0, 5, "foobar"))
+       print (user_string_n(0, 5, "foobar"))
        print (user_string_n_warn(0, 0))
        print (user_string_n_quoted(0, 0))
-       print (user_string_n2_quoted(0, 0, 0))
+       print (user_string_n_quoted(0, 0, 0))
        print (user_string_utf32 (0))
        print (user_string_utf16 (0))
        print (user_short(0))
index 5c8111403c294b79c65d51483a49f3b36859aa87..e0470896fb78ae10cd5e73fa16ce97ba0e822c27 100755 (executable)
@@ -16,12 +16,12 @@ probe begin {
   print (kernel_pointer(2342))
 
   print (user_string(2342))
-  print (user_string2(2342,"foobar"))
+  print (user_string(2342,"foobar"))
   print (user_string_warn(2342))
   print (user_string_quoted (2342))
 
   print (user_string_n(2342, 5))
-  print (user_string_n2(2342, 5, "foobar"))
+  print (user_string_n(2342, 5, "foobar"))
   print (user_string_n_warn(2342, 5))
   print (user_string_n_quoted(2342, 5))
   print (user_string_utf32(2342))
index 2123bcd94086d678dc5c158cf6d9f124f1d3cca7..3e3471c47a9a42c922bd908a183e1f770ee99f49 100755 (executable)
@@ -17,10 +17,10 @@ probe begin {
 }
 
 probe end {
-  printf("%d\n", proc_mem_size_pid(0));
-  printf("%d\n", proc_mem_rss_pid(0));
-  printf("%d\n", proc_mem_shr_pid(0));
-  printf("%d\n", proc_mem_txt_pid(0));
-  printf("%d\n", proc_mem_data_pid(0));
-  printf("%s\n", proc_mem_string_pid(0));
+  printf("%d\n", proc_mem_size(0));
+  printf("%d\n", proc_mem_rss(0));
+  printf("%d\n", proc_mem_shr(0));
+  printf("%d\n", proc_mem_txt(0));
+  printf("%d\n", proc_mem_data(0));
+  printf("%s\n", proc_mem_string(0));
 }
index a604a3f09f073e08c2488d0f4d17075c4fb25b3c..625ae5a7476513527b48145600e523801485a905 100755 (executable)
@@ -29,8 +29,8 @@ probe begin {
   log(sprint(task_start_time(0)))
 
   log(task_time_string_tid(0))
-  log(sprint(task_stime_tid(0)))
-  log(sprint(task_utime_tid(0)))
+  log(sprint(task_stime(0)))
+  log(sprint(task_utime(0)))
 
   exit()
 }
index 9deef6422425cb8e7edb3eff473aaff43a6d5ff7..35eab480c45bb56abe21a68ba8e07b586727bd6b 100755 (executable)
@@ -3,9 +3,9 @@
 probe begin
 {
        print(task_utime()
-             + task_utime_tid(0)
+             + task_utime(0)
              + task_stime()
-             + task_stime_tid(0)
+             + task_stime(0)
              + cputime_to_msecs(0)
              + cputime_to_usecs(0))
        print(msecs_to_string(0))
index 927c77c83fad5a893d1894fdcd88e81d1980aaf5..fa8b9bc568489074436b387a6f502ec956a5c715 100644 (file)
@@ -1,4 +1,4 @@
-title: Color Table for ansi_set_color2() and ansi_set_color3()
+title: Color Table for ansi_set_color()
 name: ansi_colors.stp
 version: 1.0
 author: Eugene Teo
@@ -8,6 +8,6 @@ status: production
 exit: fixed
 output: graph
 scope: system-wide
-description: The script prints a table showing the available color combinations for the ansi_set_color2() and ans_set_color3() functions in the ansi.stp tapset.
+description: The script prints a table showing the available color combinations for the ansi_set_color() function in the ansi.stp tapset.
 test_check: stap -p4 ansi_colors.stp
 test_installcheck: stap ansi_colors.stp
index 01e58b9c830a03b83f454373091f89472397e3db..6e0274e10055355edef6b5ec7f489af02ab547b8 100755 (executable)
@@ -20,7 +20,7 @@ probe begin {
                for (t = 0; t < 2; t++) {
                        printf("   %2d,%1d   |", r, t);
                        for (c = 40; c < 48; c++) {
-                               ansi_set_color3(r, c, t)
+                               ansi_set_color(r, c, t)
                                printf(" %s ", !t ? "Normal" : "Bold  ")
                                ansi_reset_color()
                        }
index 66e556fcfac674079450e80e0e2fed275d2929ae..043def221bfb1ce9a9b629e7a0ffca4da06cb2a8 100644 (file)
@@ -1,4 +1,4 @@
-title: Show Attribues in Table for ansi_set_color3()
+title: Show Attribues in Table for ansi_set_color()
 name: ansi_colors2.stp
 version: 1.0
 author: Eugene Teo
@@ -8,6 +8,6 @@ status: production
 exit: fixed
 output: graph
 scope: system-wide
-description: The script prints a table showing the available attributes (bold, underline, and inverse) with color combinations for the ans_set_color3() function in the ansi.stp tapset.
+description: The script prints a table showing the available attributes (bold, underline, and inverse) with color combinations for the ans_set_color() function in the ansi.stp tapset.
 test_check: stap -p4 ansi_colors2.stp
 test_installcheck: stap ansi_colors2.stp
index fadcf0115581530035532d2c5de1ab500b58456e..3ff3a16cde8d8fcaec2c5bea3bf45056a83f129b 100755 (executable)
@@ -21,7 +21,7 @@ probe begin {
                for (t = 0; t < 8; !t ? ++t : t+=3) {
                        printf("   %2d,%1d   |", r, t);
                        for (c = 40; c < 48; c++) {
-                               ansi_set_color3(r, c, t)
+                               ansi_set_color(r, c, t)
                                printf(" Colors ")
                                ansi_reset_color()
                        }
index e15a1d7c96e9974b46e1ca51187a7b4cc02932f4..e204d11540d17efed794c1acc0e5861e952f5e73 100644 (file)
 <li><a name="general/alias_suffixes.stp"></a><a href="#general/alias_suffixes.stp">&para;</a> <a href="general/alias_suffixes.stp">general/alias_suffixes.stp</a> - Count I/O Syscalls using Alias Suffixes<br>
 keywords: <a href="keyword-index.html#IO">IO</a> <a href="keyword-index.html#STATISTICS">STATISTICS</a> <br>
 <p>alias_suffixes.stp is a demonstration of how alias suffixes in the systemtap language might be used. The script tracks the wall clock time for each invocation of the system calls open, close, read, and write. When the script exists it prints out the minimum, average, and maximum times in microseconds for each system call, followed by a count of times that each syscall was invoked and a histogram showing the distributions of times.</p><p><font size="-2"><pre># stap alias_suffixes.stp -c &quot;sleep 1&quot;</pre></font></p>
-</li><li><a name="general/ansi_colors.stp"></a><a href="#general/ansi_colors.stp">&para;</a> <a href="general/ansi_colors.stp">general/ansi_colors.stp</a> - Color Table for ansi_set_color2() and ansi_set_color3()<br>
+</li><li><a name="general/ansi_colors.stp"></a><a href="#general/ansi_colors.stp">&para;</a> <a href="general/ansi_colors.stp">general/ansi_colors.stp</a> - Color Table for ansi_set_color()<br>
 keywords: <a href="keyword-index.html#FORMAT">FORMAT</a> <br>
-<p>The script prints a table showing the available color combinations for the ansi_set_color2() and ans_set_color3() functions in the ansi.stp tapset.</p><p><font size="-2"><pre># stap ansi_colors.stp</pre></font></p>
-</li><li><a name="general/ansi_colors2.stp"></a><a href="#general/ansi_colors2.stp">&para;</a> <a href="general/ansi_colors2.stp">general/ansi_colors2.stp</a> - Show Attribues in Table for ansi_set_color3()<br>
+<p>The script prints a table showing the available color combinations for the ansi_set_color() function in the ansi.stp tapset.</p><p><font size="-2"><pre># stap ansi_colors.stp</pre></font></p>
+</li><li><a name="general/ansi_colors2.stp"></a><a href="#general/ansi_colors2.stp">&para;</a> <a href="general/ansi_colors2.stp">general/ansi_colors2.stp</a> - Show Attribues in Table for ansi_set_color()<br>
 keywords: <a href="keyword-index.html#FORMAT">FORMAT</a> <br>
-<p>The script prints a table showing the available attributes (bold, underline, and inverse) with color combinations for the ans_set_color3() function in the ansi.stp tapset.</p><p><font size="-2"><pre># stap ansi_colors2.stp</pre></font></p>
+<p>The script prints a table showing the available attributes (bold, underline, and inverse) with color combinations for the ans_set_color() function in the ansi.stp tapset.</p><p><font size="-2"><pre># stap ansi_colors2.stp</pre></font></p>
 </li><li><a name="general/badname.stp"></a><a href="#general/badname.stp">&para;</a> <a href="general/badname.stp">general/badname.stp</a> - Bad Filename Filter<br>
 keywords: <a href="keyword-index.html#FILESYSTEM">FILESYSTEM</a> <a href="keyword-index.html#GURU">GURU</a> <br>
 <p>The badname.stp script shows how one could prevent the creation of files with undesirable names using guru mode.</p><p><i><a href="general/badname.txt">sample usage in general/badname.txt</i></font></p>
index 810354eefd57d0e2e8bb32f682b3190f5657ba9a..93fcff7c78b6ca91b9fda035536f4bce1c2b0605 100644 (file)
@@ -18,22 +18,21 @@ keywords: io statistics
   # stap alias_suffixes.stp -c "sleep 1"
 
 
-general/ansi_colors.stp - Color Table for ansi_set_color2() and ansi_set_color3()
+general/ansi_colors.stp - Color Table for ansi_set_color()
 keywords: format
 
   The script prints a table showing the available color combinations
-  for the ansi_set_color2() and ans_set_color3() functions in the
-  ansi.stp tapset.
+  for the ansi_set_color() function in the ansi.stp tapset.
 
   # stap ansi_colors.stp
 
 
-general/ansi_colors2.stp - Show Attribues in Table for ansi_set_color3()
+general/ansi_colors2.stp - Show Attribues in Table for ansi_set_color()
 keywords: format
 
   The script prints a table showing the available attributes (bold,
   underline, and inverse) with color combinations for the
-  ans_set_color3() function in the ansi.stp tapset.
+  ans_set_color() function in the ansi.stp tapset.
 
   # stap ansi_colors2.stp
 
index 1502276e0868aae05249011447af4773e6ab5ec4..33fafd5d4536456b3b3cb9fe2f09e75bdb232bf2 100644 (file)
@@ -188,12 +188,12 @@ keywords: <a href="keyword-index.html#IO">IO</a> <a href="keyword-index.html#FIL
 </li></ul>
 <h3><a name="FORMAT"><a href="#FORMAT">&para;</a> FORMAT</a></h3>
 <ul>
-<li><a href="general/ansi_colors.stp">general/ansi_colors.stp</a> - Color Table for ansi_set_color2() and ansi_set_color3()<br>
+<li><a href="general/ansi_colors.stp">general/ansi_colors.stp</a> - Color Table for ansi_set_color()<br>
 keywords: <a href="keyword-index.html#FORMAT">FORMAT</a> <br>
-<p>The script prints a table showing the available color combinations for the ansi_set_color2() and ans_set_color3() functions in the ansi.stp tapset.</p><p><font size="-2"><pre># stap ansi_colors.stp</pre></font></p>
-</li><li><a href="general/ansi_colors2.stp">general/ansi_colors2.stp</a> - Show Attribues in Table for ansi_set_color3()<br>
+<p>The script prints a table showing the available color combinations for the ansi_set_color() function in the ansi.stp tapset.</p><p><font size="-2"><pre># stap ansi_colors.stp</pre></font></p>
+</li><li><a href="general/ansi_colors2.stp">general/ansi_colors2.stp</a> - Show Attribues in Table for ansi_set_color()<br>
 keywords: <a href="keyword-index.html#FORMAT">FORMAT</a> <br>
-<p>The script prints a table showing the available attributes (bold, underline, and inverse) with color combinations for the ans_set_color3() function in the ansi.stp tapset.</p><p><font size="-2"><pre># stap ansi_colors2.stp</pre></font></p>
+<p>The script prints a table showing the available attributes (bold, underline, and inverse) with color combinations for the ans_set_color() function in the ansi.stp tapset.</p><p><font size="-2"><pre># stap ansi_colors2.stp</pre></font></p>
 </li></ul>
 <h3><a name="FUNCTION"><a href="#FUNCTION">&para;</a> FUNCTION</a></h3>
 <ul>
index 8c399f80ed834828d97a5ebb11f09da2dbb72153..af79cb7fb4797a8fbc8f97c3c349573af01e2142 100644 (file)
@@ -495,22 +495,21 @@ keywords: io filesystem
 
 = FORMAT =
 
-general/ansi_colors.stp - Color Table for ansi_set_color2() and ansi_set_color3()
+general/ansi_colors.stp - Color Table for ansi_set_color()
 keywords: format
 
   The script prints a table showing the available color combinations
-  for the ansi_set_color2() and ans_set_color3() functions in the
-  ansi.stp tapset.
+  for the ansi_set_color() function in the ansi.stp tapset.
 
   # stap ansi_colors.stp
 
 
-general/ansi_colors2.stp - Show Attribues in Table for ansi_set_color3()
+general/ansi_colors2.stp - Show Attribues in Table for ansi_set_color()
 keywords: format
 
   The script prints a table showing the available attributes (bold,
   underline, and inverse) with color combinations for the
-  ans_set_color3() function in the ansi.stp tapset.
+  ans_set_color() function in the ansi.stp tapset.
 
   # stap ansi_colors2.stp
 
index ca676b0297b3385e2406bbd4c856ab3128ef9e2b..d458315eec3f9052b48b708f16adc68adab4ffed 100755 (executable)
@@ -27,5 +27,5 @@ probe nd_syscall.open.return
 {
        /* trace on return to ensure the pathname has faulted in */
        printf("%6d %6d %16s %4d %s\n", uid(), pid(), execname(),
-           returnval(), user_string2(@entry(pointer_arg(1)), "-"));
+           returnval(), user_string(@entry(pointer_arg(1)), "-"));
 }
index 3078fa2ed50cbb63820469f5de2ff8324ea509f1..4c3a14869583c2f2f57e71f0b80a35d195303862 100755 (executable)
@@ -19,9 +19,9 @@ probe scheduler.ctxswitch {
   if (task_stime() > stime[prev_pid]){
     stime[prev_pid] = task_stime()
     utime[prev_pid] = task_utime()
-    virtmem[prev_pid] = proc_mem_size_pid(prev_pid)
-    rssmem[prev_pid] = proc_mem_rss_pid(prev_pid)
-    shrmem[prev_pid] = proc_mem_shr_pid(prev_pid)
+    virtmem[prev_pid] = proc_mem_size(prev_pid)
+    rssmem[prev_pid] = proc_mem_rss(prev_pid)
+    shrmem[prev_pid] = proc_mem_shr(prev_pid)
   }
 
   // update the state if we've encountered the process before
index dc6374f99eb9d1b51bef738f3d9e97f89adb55cb..df1f928faf6033c57125f90de54e466e7a46ecd6 100755 (executable)
@@ -13,14 +13,14 @@ probe begin { str = sprintf("%m", $1); printf ("%s", str) }
 probe begin { printf ("%M", $1) }
 probe begin { str = sprintf("%M", $1); printf ("%s", str) }
 probe begin { print (user_string ($1)) }
-probe begin { print (user_string2 ($1,"<only suspected, not known>")) }
+probe begin { print (user_string ($1,"<only suspected, not known>")) }
 probe begin { print (user_string_warn ($1)) }
-probe begin { print (user_string2_warn ($1, "<only suspected, not known>")) }
+probe begin { print (user_string_warn ($1, "<only suspected, not known>")) }
 probe begin { print (user_string_quoted ($1)) }
 probe begin { print (user_string_n ($1, 5)) }
-probe begin { print (user_string_n2 ($1, 5, "<only suspected, not known>")) }
+probe begin { print (user_string_n ($1, 5, "<only suspected, not known>")) }
 probe begin { print (user_string_n_warn ($1, 5)) }
-probe begin { print (user_string2_n_warn ($1, 5, "<only suspected, not known>")) }
+probe begin { print (user_string_n_warn ($1, 5, "<only suspected, not known>")) }
 probe begin { print (user_string_n_quoted ($1, 5)) }
 probe begin { print (user_short ($1)) }
 probe begin { print (user_short_warn ($1)) }
index f1a007ea11827232b128269c2a5dbfd05875347f..7747c1c3383a626bedf168f37a4ce399d7c7651b 100644 (file)
@@ -75,7 +75,7 @@ probe perf.sw.cpu_clock {
 probe perf.sw.cpu_clock {
        if (hits[11] == 0) {
                hits[11] = 1
-               print (user_string2 ($1,"<only suspected, not known>"))
+               print (user_string ($1,"<only suspected, not known>"))
        }
 }
 probe perf.sw.cpu_clock {
@@ -87,7 +87,7 @@ probe perf.sw.cpu_clock {
 probe perf.sw.cpu_clock {
        if (hits[13] == 0) {
                hits[13] = 1
-               print (user_string2_warn ($1, "<only suspected, not known>"))
+               print (user_string_warn ($1, "<only suspected, not known>"))
        }
 }
 probe perf.sw.cpu_clock {
@@ -105,7 +105,7 @@ probe perf.sw.cpu_clock {
 probe perf.sw.cpu_clock {
        if (hits[16] == 0) {
                hits[16] = 1
-               print (user_string_n2 ($1, 5, "<only suspected, not known>"))
+               print (user_string_n ($1, 5, "<only suspected, not known>"))
        }
 }
 probe perf.sw.cpu_clock {
@@ -117,7 +117,7 @@ probe perf.sw.cpu_clock {
 probe perf.sw.cpu_clock {
        if (hits[18] == 0) {
                hits[18] = 1
-               print (user_string2_n_warn ($1, 5, "<only suspected, not known>"))
+               print (user_string_n_warn ($1, 5, "<only suspected, not known>"))
        }
 }
 probe perf.sw.cpu_clock {
index 7cfe89aefba55704e7ec06ba988576b230cf0955..055ca4fd39acb2f2b3dc2d6c35329c5fc58b342b 100644 (file)
@@ -75,7 +75,7 @@ probe timer.profile {
 probe timer.profile {
        if (hits[11] == 0) {
                hits[11] = 1
-               print (user_string2 ($1,"<only suspected, not known>"))
+               print (user_string ($1,"<only suspected, not known>"))
        }
 }
 probe timer.profile {
@@ -87,7 +87,7 @@ probe timer.profile {
 probe timer.profile {
        if (hits[13] == 0) {
                hits[13] = 1
-               print (user_string2_warn ($1, "<only suspected, not known>"))
+               print (user_string_warn ($1, "<only suspected, not known>"))
        }
 }
 probe timer.profile {
@@ -105,7 +105,7 @@ probe timer.profile {
 probe timer.profile {
        if (hits[16] == 0) {
                hits[16] = 1
-               print (user_string_n2 ($1, 5, "<only suspected, not known>"))
+               print (user_string_n ($1, 5, "<only suspected, not known>"))
        }
 }
 probe timer.profile {
@@ -117,7 +117,7 @@ probe timer.profile {
 probe timer.profile {
        if (hits[18] == 0) {
                hits[18] = 1
-               print (user_string2_n_warn ($1, 5, "<only suspected, not known>"))
+               print (user_string_n_warn ($1, 5, "<only suspected, not known>"))
        }
 }
 probe timer.profile {
index cedae93245f8992fc2f05e8303b85f6fe85cfc89..f98497c4896b332cc273789a5f015d0545f91733 100644 (file)
@@ -75,7 +75,7 @@ probe kernel.trace("sched_switch") {
 probe kernel.trace("sched_switch") {
        if (hits[11] == 0) {
                hits[11] = 1
-               print (user_string2 ($1,"<only suspected, not known>"))
+               print (user_string ($1,"<only suspected, not known>"))
        }
 }
 probe kernel.trace("sched_switch") {
@@ -87,7 +87,7 @@ probe kernel.trace("sched_switch") {
 probe kernel.trace("sched_switch") {
        if (hits[13] == 0) {
                hits[13] = 1
-               print (user_string2_warn ($1, "<only suspected, not known>"))
+               print (user_string_warn ($1, "<only suspected, not known>"))
        }
 }
 probe kernel.trace("sched_switch") {
@@ -105,7 +105,7 @@ probe kernel.trace("sched_switch") {
 probe kernel.trace("sched_switch") {
        if (hits[16] == 0) {
                hits[16] = 1
-               print (user_string_n2 ($1, 5, "<only suspected, not known>"))
+               print (user_string_n ($1, 5, "<only suspected, not known>"))
        }
 }
 probe kernel.trace("sched_switch") {
@@ -117,7 +117,7 @@ probe kernel.trace("sched_switch") {
 probe kernel.trace("sched_switch") {
        if (hits[18] == 0) {
                hits[18] = 1
-               print (user_string2_n_warn ($1, 5, "<only suspected, not known>"))
+               print (user_string_n_warn ($1, 5, "<only suspected, not known>"))
        }
 }
 probe kernel.trace("sched_switch") {
index b54b059bda80303c09a970950986d22144863b62..0b179a901aac1adce261b6178c016118232eba2d 100644 (file)
@@ -1,6 +1,6 @@
 # Ensure that user_string_n_quoted truncates properly by input length and
 # there's no off-by-one error (see PR15617). Also ensures that
-# user_string_n2_quoted properly truncates by output length.
+# user_string_n_quoted properly truncates by output length.
 # We avoid using @MAXSTRINGLEN to not have to require -g
 
 probe syscall.write {
@@ -8,11 +8,11 @@ probe syscall.write {
                printf("%s\n", user_string_n_quoted(buf_uaddr, 15))
                printf("%s\n", user_string_n_quoted(buf_uaddr, 14))
                printf("%s\n", user_string_n_quoted(buf_uaddr, 13))
-               printf("%s\n", user_string_n2_quoted(buf_uaddr, 99, 20))
-               printf("%s\n", user_string_n2_quoted(buf_uaddr, 99, 19))
-               printf("%s\n", user_string_n2_quoted(buf_uaddr, 99, 18))
-               printf("%s\n", user_string_n2_quoted(buf_uaddr, 99, 17))
-               printf("%s\n", user_string_n2_quoted(buf_uaddr, 99, 16))
+               printf("%s\n", user_string_n_quoted(buf_uaddr, 99, 20))
+               printf("%s\n", user_string_n_quoted(buf_uaddr, 99, 19))
+               printf("%s\n", user_string_n_quoted(buf_uaddr, 99, 18))
+               printf("%s\n", user_string_n_quoted(buf_uaddr, 99, 17))
+               printf("%s\n", user_string_n_quoted(buf_uaddr, 99, 16))
                exit()
        }
 }
This page took 0.098896 seconds and 5 git commands to generate.