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