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
   9struct device;
  10
  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
  16enum reboot_mode {
  17        REBOOT_COLD = 0,
  18        REBOOT_WARM,
  19        REBOOT_HARD,
  20        REBOOT_SOFT,
  21        REBOOT_GPIO,
  22};
  23extern enum reboot_mode reboot_mode;
  24
  25enum reboot_type {
  26        BOOT_TRIPLE     = 't',
  27        BOOT_KBD        = 'k',
  28        BOOT_BIOS       = 'b',
  29        BOOT_ACPI       = 'a',
  30        BOOT_EFI        = 'e',
  31        BOOT_CF9_FORCE  = 'p',
  32        BOOT_CF9_SAFE   = 'q',
  33};
  34extern enum reboot_type reboot_type;
  35
  36extern int reboot_default;
  37extern int reboot_cpu;
  38extern int reboot_force;
  39
  40
  41extern int register_reboot_notifier(struct notifier_block *);
  42extern int unregister_reboot_notifier(struct notifier_block *);
  43
  44extern int devm_register_reboot_notifier(struct device *, struct notifier_block *);
  45
  46extern int register_restart_handler(struct notifier_block *);
  47extern int unregister_restart_handler(struct notifier_block *);
  48extern void do_kernel_restart(char *cmd);
  49
  50/*
  51 * Architecture-specific implementations of sys_reboot commands.
  52 */
  53
  54extern void migrate_to_reboot_cpu(void);
  55extern void machine_restart(char *cmd);
  56extern void machine_halt(void);
  57extern void machine_power_off(void);
  58
  59extern void machine_shutdown(void);
  60struct pt_regs;
  61extern void machine_crash_shutdown(struct pt_regs *);
  62
  63/*
  64 * Architecture independent implemenations of sys_reboot commands.
  65 */
  66
  67extern void kernel_restart_prepare(char *cmd);
  68extern void kernel_restart(char *cmd);
  69extern void kernel_halt(void);
  70extern void kernel_power_off(void);
  71
  72extern int C_A_D; /* for sysctl */
  73void ctrl_alt_del(void);
  74
  75#define POWEROFF_CMD_PATH_LEN   256
  76extern char poweroff_cmd[POWEROFF_CMD_PATH_LEN];
  77
  78extern void orderly_poweroff(bool force);
  79extern void orderly_reboot(void);
  80
  81/*
  82 * Emergency restart, callable from an interrupt handler.
  83 */
  84
  85extern void emergency_restart(void);
  86#include <asm/emergency-restart.h>
  87
  88#endif /* _LINUX_REBOOT_H */
  89