blob: f8c3de7aa917496795d363944466939fcbc03ad3 [file] [log] [blame]
#include "defs.h"
#include <linux/reboot.h>
static const struct xlat bootflags1[] = {
XLAT(LINUX_REBOOT_MAGIC1),
XLAT_END
};
static const struct xlat bootflags2[] = {
XLAT(LINUX_REBOOT_MAGIC2),
XLAT(LINUX_REBOOT_MAGIC2A),
XLAT(LINUX_REBOOT_MAGIC2B),
XLAT(LINUX_REBOOT_MAGIC2C),
XLAT_END
};
static const struct xlat bootflags3[] = {
XLAT(LINUX_REBOOT_CMD_RESTART),
XLAT(LINUX_REBOOT_CMD_HALT),
XLAT(LINUX_REBOOT_CMD_CAD_ON),
XLAT(LINUX_REBOOT_CMD_CAD_OFF),
XLAT(LINUX_REBOOT_CMD_POWER_OFF),
XLAT(LINUX_REBOOT_CMD_RESTART2),
XLAT(LINUX_REBOOT_CMD_SW_SUSPEND),
XLAT(LINUX_REBOOT_CMD_KEXEC),
XLAT_END
};
int
sys_reboot(struct tcb *tcp)
{
if (exiting(tcp))
return 0;
printflags(bootflags1, tcp->u_arg[0], "LINUX_REBOOT_MAGIC_???");
tprints(", ");
printflags(bootflags2, tcp->u_arg[1], "LINUX_REBOOT_MAGIC_???");
tprints(", ");
printflags(bootflags3, tcp->u_arg[2], "LINUX_REBOOT_CMD_???");
if (tcp->u_arg[2] == LINUX_REBOOT_CMD_RESTART2) {
tprints(", ");
printstr(tcp, tcp->u_arg[3], -1);
}
return 0;
}