1 #ifndef _LINUX_REBOOT_H
2 #define _LINUX_REBOOT_H
3 
4 /*
5  * Magic values required to use _reboot() system call.
6  */
7 
8 #define	LINUX_REBOOT_MAGIC1	0xfee1dead
9 #define	LINUX_REBOOT_MAGIC2	672274793
10 #define	LINUX_REBOOT_MAGIC2A	85072278
11 #define	LINUX_REBOOT_MAGIC2B	369367448
12 #define	LINUX_REBOOT_MAGIC2C	537993216
13 
14 
15 /*
16  * Commands accepted by the _reboot() system call.
17  *
18  * RESTART     Restart system using default command and mode.
19  * HALT        Stop OS and give system control to ROM monitor, if any.
20  * CAD_ON      Ctrl-Alt-Del sequence causes RESTART command.
21  * CAD_OFF     Ctrl-Alt-Del sequence sends SIGINT to init task.
22  * POWER_OFF   Stop OS and remove all power from system, if possible.
23  * RESTART2    Restart system using given command string.
24  * SW_SUSPEND  Suspend system using software suspend if compiled in.
25  * KEXEC       Restart system using a previously loaded Linux kernel
26  */
27 
28 #define	LINUX_REBOOT_CMD_RESTART	0x01234567
29 #define	LINUX_REBOOT_CMD_HALT		0xCDEF0123
30 #define	LINUX_REBOOT_CMD_CAD_ON		0x89ABCDEF
31 #define	LINUX_REBOOT_CMD_CAD_OFF	0x00000000
32 #define	LINUX_REBOOT_CMD_POWER_OFF	0x4321FEDC
33 #define	LINUX_REBOOT_CMD_RESTART2	0xA1B2C3D4
34 #define	LINUX_REBOOT_CMD_SW_SUSPEND	0xD000FCE2
35 #define	LINUX_REBOOT_CMD_KEXEC		0x45584543
36 
37 
38 #ifdef __KERNEL__
39 
40 #include <linux/notifier.h>
41 
42 #define SYS_DOWN	0x0001	/* Notify of system down */
43 #define SYS_RESTART	SYS_DOWN
44 #define SYS_HALT	0x0002	/* Notify of system halt */
45 #define SYS_POWER_OFF	0x0003	/* Notify of system power off */
46 
47 extern int register_reboot_notifier(struct notifier_block *);
48 extern int unregister_reboot_notifier(struct notifier_block *);
49 
50 
51 /*
52  * Architecture-specific implementations of sys_reboot commands.
53  */
54 
55 extern void machine_restart(char *cmd);
56 extern void machine_halt(void);
57 extern void machine_power_off(void);
58 
59 extern void machine_shutdown(void);
60 struct pt_regs;
61 extern void machine_crash_shutdown(struct pt_regs *);
62 
63 /*
64  * Architecture independent implemenations of sys_reboot commands.
65  */
66 
67 extern void kernel_restart_prepare(char *cmd);
68 extern void kernel_restart(char *cmd);
69 extern void kernel_halt(void);
70 extern void kernel_power_off(void);
71 
72 extern int C_A_D; /* for sysctl */
73 void ctrl_alt_del(void);
74 
75 #define POWEROFF_CMD_PATH_LEN	256
76 extern char poweroff_cmd[POWEROFF_CMD_PATH_LEN];
77 
78 extern int orderly_poweroff(bool force);
79 
80 /*
81  * Emergency restart, callable from an interrupt handler.
82  */
83 
84 extern void emergency_restart(void);
85 #include <asm/emergency-restart.h>
86 
87 #endif
88 
89 #endif /* _LINUX_REBOOT_H */
90