include/linux/reboot.h
Source file repositories/reference/linux-study-clean/include/linux/reboot.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/reboot.h- Extension
.h- Size
- 5927 bytes
- Lines
- 222
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/notifier.huapi/linux/reboot.hasm/emergency-restart.h
Detected Declarations
struct devicestruct sys_off_handlerstruct pt_regsstruct sys_off_dataenum reboot_modeenum reboot_typeenum sys_off_modeenum hw_protection_actionfunction hw_protection_trigger
Annotated Snippet
struct sys_off_data {
int mode;
void *cb_data;
const char *cmd;
struct device *dev;
};
struct sys_off_handler *
register_sys_off_handler(enum sys_off_mode mode,
int priority,
int (*callback)(struct sys_off_data *data),
void *cb_data);
void unregister_sys_off_handler(struct sys_off_handler *handler);
int devm_register_sys_off_handler(struct device *dev,
enum sys_off_mode mode,
int priority,
int (*callback)(struct sys_off_data *data),
void *cb_data);
int devm_register_power_off_handler(struct device *dev,
int (*callback)(struct sys_off_data *data),
void *cb_data);
int devm_register_restart_handler(struct device *dev,
int (*callback)(struct sys_off_data *data),
void *cb_data);
int register_platform_power_off(void (*power_off)(void));
void unregister_platform_power_off(void (*power_off)(void));
/*
* Architecture independent implemenations of sys_reboot commands.
*/
extern void kernel_restart_prepare(char *cmd);
extern void kernel_restart(char *cmd);
extern void kernel_halt(void);
extern void kernel_power_off(void);
extern bool kernel_can_power_off(void);
void ctrl_alt_del(void);
extern void orderly_poweroff(bool force);
extern void orderly_reboot(void);
/**
* enum hw_protection_action - Hardware protection action
*
* @HWPROT_ACT_DEFAULT:
* The default action should be taken. This is HWPROT_ACT_SHUTDOWN
* by default, but can be overridden.
* @HWPROT_ACT_SHUTDOWN:
* The system should be shut down (powered off) for HW protection.
* @HWPROT_ACT_REBOOT:
* The system should be rebooted for HW protection.
*/
enum hw_protection_action { HWPROT_ACT_DEFAULT, HWPROT_ACT_SHUTDOWN, HWPROT_ACT_REBOOT };
void __hw_protection_trigger(const char *reason, int ms_until_forced,
enum hw_protection_action action);
/**
* hw_protection_trigger - Trigger default emergency system hardware protection action
*
* @reason: Reason of emergency shutdown or reboot to be printed.
* @ms_until_forced: Time to wait for orderly shutdown or reboot before
* triggering it. Negative value disables the forced
* shutdown or reboot.
*
* Initiate an emergency system shutdown or reboot in order to protect
* hardware from further damage. The exact action taken is controllable at
* runtime and defaults to shutdown.
*/
static inline void hw_protection_trigger(const char *reason, int ms_until_forced)
{
__hw_protection_trigger(reason, ms_until_forced, HWPROT_ACT_DEFAULT);
}
/*
* Emergency restart, callable from an interrupt handler.
*/
extern void emergency_restart(void);
#include <asm/emergency-restart.h>
#endif /* _LINUX_REBOOT_H */
Annotation
- Immediate include surface: `linux/notifier.h`, `uapi/linux/reboot.h`, `asm/emergency-restart.h`.
- Detected declarations: `struct device`, `struct sys_off_handler`, `struct pt_regs`, `struct sys_off_data`, `enum reboot_mode`, `enum reboot_type`, `enum sys_off_mode`, `enum hw_protection_action`, `function hw_protection_trigger`.
- Atlas domain: Core OS / Core Kernel Interface.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.