summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhunt <hunt>2006-04-17 19:18:56 +0000
committerhunt <hunt>2006-04-17 19:18:56 +0000
commit0b5e63eb3779b41d122bbdd6a45a639aececd72b (patch)
tree6fd2c8b7712d5a96b11c2c16e878323181351e36
parent9122cd3e12ae04b74569efc511d2d972d6d6e482 (diff)
downloadsystemtap-steved-0b5e63eb3779b41d122bbdd6a45a639aececd72b.tar.gz
systemtap-steved-0b5e63eb3779b41d122bbdd6a45a639aececd72b.tar.xz
systemtap-steved-0b5e63eb3779b41d122bbdd6a45a639aececd72b.zip
2006-04-17 Martin Hunt <hunt@redhat.com>
* endian.stp (set_endian): New function.
-rw-r--r--tapset/ChangeLog4
-rw-r--r--tapset/endian.stp44
-rw-r--r--tapset/logging.stp5
3 files changed, 21 insertions, 32 deletions
diff --git a/tapset/ChangeLog b/tapset/ChangeLog
index bdad3877..a1cbf049 100644
--- a/tapset/ChangeLog
+++ b/tapset/ChangeLog
@@ -1,3 +1,7 @@
+2006-04-17 Martin Hunt <hunt@redhat.com>
+
+ * endian.stp (set_endian): New function.
+
2006-03-06 Martin Hunt <hunt@redhat.com>
* system.stp: New tapset.
diff --git a/tapset/endian.stp b/tapset/endian.stp
index 26b3a05a..ddcc2546 100644
--- a/tapset/endian.stp
+++ b/tapset/endian.stp
@@ -1,47 +1,31 @@
+# set the default endianess for binary printf
+# val: 0 - native (default)
+# 1 - little endian
+# 2 - big endian
+function set_endian:long (val:long) %{
+ _stp_endian = THIS->val;
+%}
+
function big_endian2:long (val:long) %{
-#ifdef __LITTLE_ENDIAN
- THIS->__retvalue = swab16(THIS->val);
-#else
- THIS->__retvalue = THIS->val & 0xffff;
-#endif
+ THIS->__retvalue = cpu_to_be16(THIS->val);
%}
function big_endian4:long (val:long) %{
-#ifdef __LITTLE_ENDIAN
- THIS->__retvalue = swab32(THIS->val);
-#else
- THIS->__retvalue = THIS->val & 0xffffffff;
-#endif
+ THIS->__retvalue = cpu_to_be32(THIS->val);
%}
function big_endian8:long (val:long) %{
-#ifdef __LITTLE_ENDIAN
- THIS->__retvalue = swab64(THIS->val);
-#else
- THIS->__retvalue = THIS->val;
-#endif
+ THIS->__retvalue = cpu_to_be64(THIS->val);
%}
function little_endian2:long (val:long) %{
-#ifndef __LITTLE_ENDIAN
- THIS->__retvalue = swab16(THIS->val);
-#else
- THIS->__retvalue = THIS->val & 0xffff;
-#endif
+ THIS->__retvalue = cpu_to_le16(THIS->val);
%}
function little_endian4:long (val:long) %{
-#ifndef __LITTLE_ENDIAN
- THIS->__retvalue = swab32(THIS->val);
-#else
- THIS->__retvalue = THIS->val & 0xffffffff;
-#endif
+ THIS->__retvalue = cpu_to_le32(THIS->val);
%}
function little_endian8:long (val:long) %{
-#ifndef __LITTLE_ENDIAN
- THIS->__retvalue = swab64(THIS->val);
-#else
- THIS->__retvalue = THIS->val;
-#endif
+ THIS->__retvalue = cpu_to_le64(THIS->val);
%}
diff --git a/tapset/logging.stp b/tapset/logging.stp
index a3fcac04..659ef389 100644
--- a/tapset/logging.stp
+++ b/tapset/logging.stp
@@ -6,9 +6,10 @@
// Public License (GPL); either version 2, or (at your option) any
// later version.
-// send a string out with a newline
+// Write a message to the console (actually stderr). A newline is appended
+// if the string does not end in one.
function log (msg:string) %{
- _stp_printf ("%s\n", THIS->msg);
+ _stp_log (THIS->msg);
%}
function warn (msg:string) %{