Home | History | Annotate | Download | only in linux
      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 
     54 extern void machine_shutdown(void);
     55 struct pt_regs;
     56 extern void machine_crash_shutdown(struct pt_regs *);
     57 
     58 /*
     59  * Architecture independent implemenations of sys_reboot commands.
     60  */
     61 
     62 extern void kernel_shutdown_prepare(enum system_states state);
     63 
     64 extern void kernel_restart(char *cmd);
     65 extern void kernel_halt(void);
     66 extern void kernel_power_off(void);
     67 
     68 void ctrl_alt_del(void);
     69 
     70 /*
     71  * Emergency restart, callable from an interrupt handler.
     72  */
     73 
     74 extern void emergency_restart(void);
     75 #include <asm/emergency-restart.h>
     76 
     77 #endif
     78 
     79 #endif /* _LINUX_REBOOT_H */
     80