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