summaryrefslogtreecommitdiffstats
path: root/tapset/endian.stp
diff options
context:
space:
mode:
Diffstat (limited to 'tapset/endian.stp')
-rw-r--r--tapset/endian.stp44
1 files changed, 14 insertions, 30 deletions
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);
%}