| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 | extern int register_reboot_notifier(struct notifier_block *); | 
 | 43 | extern int unregister_reboot_notifier(struct notifier_block *); | 
 | 44 |  | 
 | 45 |  | 
 | 46 | /* | 
 | 47 |  * Architecture-specific implementations of sys_reboot commands. | 
 | 48 |  */ | 
 | 49 |  | 
 | 50 | extern void machine_restart(char *cmd); | 
 | 51 | extern void machine_halt(void); | 
 | 52 | extern void machine_power_off(void); | 
 | 53 |  | 
| Eric W. Biederman | dc009d9 | 2005-06-25 14:57:52 -0700 | [diff] [blame] | 54 | extern void machine_shutdown(void); | 
| Alexander Nyberg | 6e274d1 | 2005-06-25 14:58:26 -0700 | [diff] [blame] | 55 | struct pt_regs; | 
 | 56 | extern void machine_crash_shutdown(struct pt_regs *); | 
| Eric W. Biederman | dc009d9 | 2005-06-25 14:57:52 -0700 | [diff] [blame] | 57 |  | 
| Eric W. Biederman | 4a00ea1 | 2005-07-26 11:24:14 -0600 | [diff] [blame] | 58 | /*  | 
 | 59 |  * Architecture independent implemenations of sys_reboot commands. | 
 | 60 |  */ | 
 | 61 |  | 
 | 62 | extern void kernel_restart(char *cmd); | 
 | 63 | extern void kernel_halt(void); | 
 | 64 | extern void kernel_power_off(void); | 
| Adrian Bunk | 83cc5ed | 2006-06-25 05:47:41 -0700 | [diff] [blame] | 65 |  | 
 | 66 | void ctrl_alt_del(void); | 
| Eric W. Biederman | 4a00ea1 | 2005-07-26 11:24:14 -0600 | [diff] [blame] | 67 |  | 
| Jeremy Fitzhardinge | 10a0a8d | 2007-07-17 18:37:02 -0700 | [diff] [blame] | 68 | #define POWEROFF_CMD_PATH_LEN	256 | 
 | 69 | extern char poweroff_cmd[POWEROFF_CMD_PATH_LEN]; | 
 | 70 |  | 
 | 71 | extern int orderly_poweroff(bool force); | 
 | 72 |  | 
| Eric W. Biederman | 7c90347 | 2005-07-26 11:29:55 -0600 | [diff] [blame] | 73 | /* | 
 | 74 |  * Emergency restart, callable from an interrupt handler. | 
 | 75 |  */ | 
 | 76 |  | 
 | 77 | extern void emergency_restart(void); | 
 | 78 | #include <asm/emergency-restart.h> | 
 | 79 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 80 | #endif | 
 | 81 |  | 
 | 82 | #endif /* _LINUX_REBOOT_H */ |