]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
1da177e4 LT |
2 | #ifndef _LINUX_REBOOT_H |
3 | #define _LINUX_REBOOT_H | |
4 | ||
1da177e4 LT |
5 | |
6 | #include <linux/notifier.h> | |
607ca46e | 7 | #include <uapi/linux/reboot.h> |
1da177e4 | 8 | |
2d8364ba AS |
9 | struct device; |
10 | ||
c5f41752 AW |
11 | #define SYS_DOWN 0x0001 /* Notify of system down */ |
12 | #define SYS_RESTART SYS_DOWN | |
13 | #define SYS_HALT 0x0002 /* Notify of system halt */ | |
14 | #define SYS_POWER_OFF 0x0003 /* Notify of system power off */ | |
15 | ||
edf2b139 | 16 | enum reboot_mode { |
b287a25a | 17 | REBOOT_UNDEFINED = -1, |
edf2b139 RH |
18 | REBOOT_COLD = 0, |
19 | REBOOT_WARM, | |
c97a7008 RH |
20 | REBOOT_HARD, |
21 | REBOOT_SOFT, | |
7b6d864b | 22 | REBOOT_GPIO, |
edf2b139 | 23 | }; |
1b3a5d02 | 24 | extern enum reboot_mode reboot_mode; |
b287a25a | 25 | extern enum reboot_mode panic_reboot_mode; |
1b3a5d02 RH |
26 | |
27 | enum reboot_type { | |
5be44a6f IM |
28 | BOOT_TRIPLE = 't', |
29 | BOOT_KBD = 'k', | |
30 | BOOT_BIOS = 'b', | |
31 | BOOT_ACPI = 'a', | |
32 | BOOT_EFI = 'e', | |
33 | BOOT_CF9_FORCE = 'p', | |
34 | BOOT_CF9_SAFE = 'q', | |
1b3a5d02 RH |
35 | }; |
36 | extern enum reboot_type reboot_type; | |
37 | ||
38 | extern int reboot_default; | |
39 | extern int reboot_cpu; | |
40 | extern int reboot_force; | |
41 | ||
edf2b139 | 42 | |
1da177e4 LT |
43 | extern int register_reboot_notifier(struct notifier_block *); |
44 | extern int unregister_reboot_notifier(struct notifier_block *); | |
45 | ||
2d8364ba AS |
46 | extern int devm_register_reboot_notifier(struct device *, struct notifier_block *); |
47 | ||
b63adb97 GR |
48 | extern int register_restart_handler(struct notifier_block *); |
49 | extern int unregister_restart_handler(struct notifier_block *); | |
50 | extern void do_kernel_restart(char *cmd); | |
1da177e4 LT |
51 | |
52 | /* | |
53 | * Architecture-specific implementations of sys_reboot commands. | |
54 | */ | |
55 | ||
c97102ba | 56 | extern void migrate_to_reboot_cpu(void); |
1da177e4 LT |
57 | extern void machine_restart(char *cmd); |
58 | extern void machine_halt(void); | |
59 | extern void machine_power_off(void); | |
60 | ||
dc009d92 | 61 | extern void machine_shutdown(void); |
6e274d14 AN |
62 | struct pt_regs; |
63 | extern void machine_crash_shutdown(struct pt_regs *); | |
dc009d92 | 64 | |
972ee83d | 65 | /* |
4a00ea1e EB |
66 | * Architecture independent implemenations of sys_reboot commands. |
67 | */ | |
68 | ||
ca195b7f | 69 | extern void kernel_restart_prepare(char *cmd); |
4a00ea1e EB |
70 | extern void kernel_restart(char *cmd); |
71 | extern void kernel_halt(void); | |
72 | extern void kernel_power_off(void); | |
83cc5ed3 | 73 | |
eb5572fe | 74 | extern int C_A_D; /* for sysctl */ |
83cc5ed3 | 75 | void ctrl_alt_del(void); |
4a00ea1e | 76 | |
10a0a8d4 JF |
77 | #define POWEROFF_CMD_PATH_LEN 256 |
78 | extern char poweroff_cmd[POWEROFF_CMD_PATH_LEN]; | |
79 | ||
7a54f46b JS |
80 | extern void orderly_poweroff(bool force); |
81 | extern void orderly_reboot(void); | |
10a0a8d4 | 82 | |
7c903473 EB |
83 | /* |
84 | * Emergency restart, callable from an interrupt handler. | |
85 | */ | |
86 | ||
87 | extern void emergency_restart(void); | |
88 | #include <asm/emergency-restart.h> | |
89 | ||
1da177e4 | 90 | #endif /* _LINUX_REBOOT_H */ |