summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhaolei <zhaolei@cn.fujitsu.com>2008-06-19 17:35:55 +0800
committerZhaolei <zhaolei@cn.fujitsu.com>2008-06-19 17:35:55 +0800
commit8b1d2a696fd6bbbaa5a41387d49e5231c2d1347b (patch)
treea01a7f4402a0f58bcafcb541edbb87ede5081c68
parentc7d479359e0a73a5dd02ae1678940acd44db51a1 (diff)
downloadsystemtap-steved-8b1d2a696fd6bbbaa5a41387d49e5231c2d1347b.tar.gz
systemtap-steved-8b1d2a696fd6bbbaa5a41387d49e5231c2d1347b.tar.xz
systemtap-steved-8b1d2a696fd6bbbaa5a41387d49e5231c2d1347b.zip
aux_syscalls.stp: Output unknown bits in _stp_lookup_or_str.
-rw-r--r--tapset/ChangeLog4
-rw-r--r--tapset/aux_syscalls.stp9
2 files changed, 10 insertions, 3 deletions
diff --git a/tapset/ChangeLog b/tapset/ChangeLog
index f263c81f..d51e186a 100644
--- a/tapset/ChangeLog
+++ b/tapset/ChangeLog
@@ -1,3 +1,7 @@
+2008-06-19 Zhaolei <zhaolei@cn.fujitsu.com>
+
+ * aux_syscalls.stp: Output unknown bits in _stp_lookup_or_str.
+
2008-06-17 Zhaolei <zhaolei@cn.fujitsu.com>
* syscalls.stp: Add sys_linkat.
diff --git a/tapset/aux_syscalls.stp b/tapset/aux_syscalls.stp
index 502b0ff8..f79acaf0 100644
--- a/tapset/aux_syscalls.stp
+++ b/tapset/aux_syscalls.stp
@@ -1548,7 +1548,7 @@ void _stp_lookup_str(const _stp_val_array * const array, long val, char *ptr, in
}
void _stp_lookup_or_str(const _stp_val_array * const array, long val, char *ptr, int len)
{
- int i = 0, flag = 0;
+ int i = 0, flag = 0, slen;
if (val == 0) {
_stp_lookup_str(array, val, ptr, len);
@@ -1560,12 +1560,15 @@ void _stp_lookup_or_str(const _stp_val_array * const array, long val, char *ptr,
if (flag)
strlcat(ptr, "|", len);
strlcat(ptr, array[i].name, len);
+ val &= (~array[i].val);
flag = 1;
}
i++;
}
- if (flag == 0) {
- int slen = strlen(ptr);
+ if (val) {
+ if (flag)
+ strlcat(ptr, "|", len);
+ slen = strlen(ptr);
_stp_snprintf(ptr + slen, len - slen, "0x%lx", val);
}
}