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