aboutsummaryrefslogtreecommitdiff
path: root/reboot.c
blob: 12de30bc4090a64f323e9c61678fb6d2867ae86c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "defs.h"

#include "xlat/bootflags1.h"
#include "xlat/bootflags2.h"
#include "xlat/bootflags3.h"

SYS_FUNC(reboot)
{
	const unsigned int magic1 = tcp->u_arg[0];
	const unsigned int magic2 = tcp->u_arg[1];
	const unsigned int cmd = tcp->u_arg[2];

	printxval(bootflags1, magic1, "LINUX_REBOOT_MAGIC_???");
	tprints(", ");
	printxval(bootflags2, magic2, "LINUX_REBOOT_MAGIC_???");
	tprints(", ");
	printxval(bootflags3, cmd, "LINUX_REBOOT_CMD_???");
	if (cmd == LINUX_REBOOT_CMD_RESTART2) {
		tprints(", ");
		/*
		 * The size of kernel buffer is 256 bytes and
		 * the last byte is always zero, at most 255 bytes
		 * are copied from the user space.
		 */
		printstr_ex(tcp, tcp->u_arg[3], 255, QUOTE_0_TERMINATED);
	}
	return RVAL_DECODED;
}