summaryrefslogtreecommitdiffstats
path: root/tapset/aux_syscalls.stp
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 /tapset/aux_syscalls.stp
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.
Diffstat (limited to 'tapset/aux_syscalls.stp')
-rw-r--r--tapset/aux_syscalls.stp9
1 files changed, 6 insertions, 3 deletions
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);
}
}