diff options
author | Zhaolei <zhaolei@cn.fujitsu.com> | 2008-06-19 17:35:55 +0800 |
---|---|---|
committer | Zhaolei <zhaolei@cn.fujitsu.com> | 2008-06-19 17:35:55 +0800 |
commit | 8b1d2a696fd6bbbaa5a41387d49e5231c2d1347b (patch) | |
tree | a01a7f4402a0f58bcafcb541edbb87ede5081c68 /tapset/aux_syscalls.stp | |
parent | c7d479359e0a73a5dd02ae1678940acd44db51a1 (diff) | |
download | systemtap-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.stp | 9 |
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); } } |