168d171d13386289e6ddd206dac46877f4443e3dcFei Jie#include "tests.h" 26a2f43ce6469c06d0244a07cea3d04f3740a66ceDmitry V. Levin#include <asm/unistd.h> 368d171d13386289e6ddd206dac46877f4443e3dcFei Jie 468d171d13386289e6ddd206dac46877f4443e3dcFei Jie#ifdef __NR_reboot 568d171d13386289e6ddd206dac46877f4443e3dcFei Jie 668d171d13386289e6ddd206dac46877f4443e3dcFei Jie# include <stdio.h> 768d171d13386289e6ddd206dac46877f4443e3dcFei Jie# include <linux/reboot.h> 868d171d13386289e6ddd206dac46877f4443e3dcFei Jie# include <unistd.h> 968d171d13386289e6ddd206dac46877f4443e3dcFei Jie 1068d171d13386289e6ddd206dac46877f4443e3dcFei Jie# define INVALID_MAGIC 319887762 1168d171d13386289e6ddd206dac46877f4443e3dcFei Jie# define INVALID_CMD 0x01234568 1268d171d13386289e6ddd206dac46877f4443e3dcFei Jie 1368d171d13386289e6ddd206dac46877f4443e3dcFei Jieint 1468d171d13386289e6ddd206dac46877f4443e3dcFei Jiemain(void) 1568d171d13386289e6ddd206dac46877f4443e3dcFei Jie{ 1668d171d13386289e6ddd206dac46877f4443e3dcFei Jie static const char buf[] = "reboot"; 17dc75b01004a0588c1eb3bc26d7248a6e473b2cddElliott Hughes long rc = syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, 18dc75b01004a0588c1eb3bc26d7248a6e473b2cddElliott Hughes INVALID_MAGIC, LINUX_REBOOT_CMD_RESTART2, buf); 1968d171d13386289e6ddd206dac46877f4443e3dcFei Jie printf("reboot(LINUX_REBOOT_MAGIC1, %#x /* LINUX_REBOOT_MAGIC_??? */," 2068d171d13386289e6ddd206dac46877f4443e3dcFei Jie " LINUX_REBOOT_CMD_RESTART2, \"%s\") = %ld %s (%m)\n", 2168d171d13386289e6ddd206dac46877f4443e3dcFei Jie INVALID_MAGIC, buf, rc, errno2name()); 2268d171d13386289e6ddd206dac46877f4443e3dcFei Jie 23dc75b01004a0588c1eb3bc26d7248a6e473b2cddElliott Hughes rc = syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, 24dc75b01004a0588c1eb3bc26d7248a6e473b2cddElliott Hughes LINUX_REBOOT_MAGIC2, INVALID_CMD); 2568d171d13386289e6ddd206dac46877f4443e3dcFei Jie printf("reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2," 2668d171d13386289e6ddd206dac46877f4443e3dcFei Jie " %#x /* LINUX_REBOOT_CMD_??? */) = %ld %s (%m)\n", 2768d171d13386289e6ddd206dac46877f4443e3dcFei Jie INVALID_CMD, rc, errno2name()); 2868d171d13386289e6ddd206dac46877f4443e3dcFei Jie 2968d171d13386289e6ddd206dac46877f4443e3dcFei Jie puts("+++ exited with 0 +++"); 3068d171d13386289e6ddd206dac46877f4443e3dcFei Jie return 0; 3168d171d13386289e6ddd206dac46877f4443e3dcFei Jie} 3268d171d13386289e6ddd206dac46877f4443e3dcFei Jie 3368d171d13386289e6ddd206dac46877f4443e3dcFei Jie#else 3468d171d13386289e6ddd206dac46877f4443e3dcFei Jie 3568d171d13386289e6ddd206dac46877f4443e3dcFei JieSKIP_MAIN_UNDEFINED("__NR_reboot") 3668d171d13386289e6ddd206dac46877f4443e3dcFei Jie 3768d171d13386289e6ddd206dac46877f4443e3dcFei Jie#endif 38