diff options
author | zhaolei <zhaolei> | 2007-09-21 00:16:31 +0000 |
---|---|---|
committer | zhaolei <zhaolei> | 2007-09-21 00:16:31 +0000 |
commit | cfea2ff40a15c72ddd90d6d6ddba14c1984d4342 (patch) | |
tree | 84f405021c7104308b1628e13509297f291b48df | |
parent | 442b4b6f385258cf2b3d4687da46731bf62b2dad (diff) | |
download | systemtap-steved-cfea2ff40a15c72ddd90d6d6ddba14c1984d4342.tar.gz systemtap-steved-cfea2ff40a15c72ddd90d6d6ddba14c1984d4342.tar.xz systemtap-steved-cfea2ff40a15c72ddd90d6d6ddba14c1984d4342.zip |
2007-09-21 Zhaolei <zhaolei@cn.fujitsu.com>
* aux_syscalls.stp(_reboot_magic_str) Fix the problem
that LINUX_REBOOT_MAGIC1 printed as UNKNOWN VALUE.
-rw-r--r-- | tapset/aux_syscalls.stp | 39 |
1 files changed, 31 insertions, 8 deletions
diff --git a/tapset/aux_syscalls.stp b/tapset/aux_syscalls.stp index ccbea9a3..d2f53f37 100644 --- a/tapset/aux_syscalls.stp +++ b/tapset/aux_syscalls.stp @@ -1183,14 +1183,37 @@ function _shutdown_how_str(how) { return sprintf("UNKNOWN VALUE: %d", how) } -function _reboot_magic_str(magic) { - if(magic==0xFEE1DEAD) return "LINUX_REBOOT_MAGIC1" - if(magic==672274793) return "LINUX_REBOOT_MAGIC2" - if(magic==85072278) return "LINUX_REBOOT_MAGIC2A" - if(magic==369367448) return "LINUX_REBOOT_MAGIC2B" - if(magic==537993216) return "LINUX_REBOOT_MAGIC2C" - return sprintf("UNKNOWN VALUE: %d", magic) -} +%{ +#include <linux/reboot.h> +%} +function _reboot_magic_str:string(magic:long) +%{ /* pure */ + int magic = (int)THIS->magic; + switch (magic) { + case LINUX_REBOOT_MAGIC1: + strlcpy(THIS->__retvalue, "LINUX_REBOOT_MAGIC1", MAXSTRINGLEN); + break; + case LINUX_REBOOT_MAGIC2: + strlcpy(THIS->__retvalue, "LINUX_REBOOT_MAGIC2", MAXSTRINGLEN); + break; + case LINUX_REBOOT_MAGIC2A: + strlcpy(THIS->__retvalue, "LINUX_REBOOT_MAGIC2A", MAXSTRINGLEN); + break; + case LINUX_REBOOT_MAGIC2B: + strlcpy(THIS->__retvalue, "LINUX_REBOOT_MAGIC2B", MAXSTRINGLEN); + break; +/* + LINUX_REBOOT_MAGIC2C is supported from kernel 2.6 +*/ +#ifdef LINUX_REBOOT_MAGIC2C + case LINUX_REBOOT_MAGIC2C: + strlcpy(THIS->__retvalue, "LINUX_REBOOT_MAGIC2C", MAXSTRINGLEN); + break; +#endif + default: + snprintf(THIS->__retvalue, MAXSTRINGLEN, "UNKNOWN VALUE: %d", magic); + } +%} function _reboot_flag_str(flag) { if(flag==0x01234567) return "LINUX_REBOOT_CMD_RESTART" |