summaryrefslogtreecommitdiffstats
path: root/tapset/aux_syscalls.stp
diff options
context:
space:
mode:
Diffstat (limited to 'tapset/aux_syscalls.stp')
-rw-r--r--tapset/aux_syscalls.stp39
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"