39 pr_warn(
"installing a new warning handler...");
45 pr_warn(
"removing warning handler...");
47 mos_warn(
"no previous warning handler installed");
85 pr_fatal(
"recursive panic detected, aborting...");
101 pr_fatal(
"!!!!!!!!!!!!!!!!!!!!!!!!");
102 pr_fatal(
"!!!!! KERNEL PANIC !!!!!");
103 pr_fatal(
"!!!!!!!!!!!!!!!!!!!!!!!!");
110 pr_emerg(
"instruction: see backtrace");
118 pr_emph(
"Current stack trace:");
125 pr_emph(
"Register states before interrupt:");
128 pr_emph(
"Stack trace before interrupt");
134 pr_emph(
"No interrupt context available");
142 if (hook->enabled && !*hook->enabled)
145 pr_dinfo2(panic,
"invoking panic hook '%s' at %ps", hook->name, (
void *) hook);
void platform_halt_cpu(void)
#define mos_warn(fmt,...)
#define MOS_PRINTK_BUFFER_SIZE
MOSAPI int vsnprintf(char *__restrict buf, size_t size, const char *__restrict format, va_list args)
void ipi_send_all(ipi_type_t type)
bool cmdline_string_truthiness(mos::string_view arg, bool default_value)
#define once()
Returns true for the first call, false for all subsequent calls.
void __stack_chk_fail(void)
const panic_point_t __MOS_PANIC_LIST_START[]
void kwarn_handler_set(kmsg_handler_t *handler)
const panic_hook_t __MOS_PANIC_HOOKS_START[]
void handle_kernel_panic(const panic_point_t *point)
const panic_point_t __MOS_PANIC_LIST_END[]
static bool poweroff_on_panic
const panic_hook_t __MOS_PANIC_HOOKS_END[]
void try_handle_kernel_panics(ptr_t ip)
static const panic_point_t * find_panic_point(ptr_t ip)
static kmsg_handler_t * kwarn_handler
void __stack_chk_fail_local(void)
void kwarn_handler_remove(void)
void mos_kwarn(const char *func, u32 line, const char *fmt,...)
#define mos_panic(fmt,...)
void kmsg_handler_t(const char *func, u32 line, const char *fmt, va_list args)
void power_shutdown(void)
Shutdown the system.
bool printk_unquiet(void)
#define pr_fatal(fmt,...)
#define pr_emerg(fmt,...)
void lprintk(LogLevel loglevel, const char *format,...)
#define pr_dinfo2(feat, fmt,...)
#define pr_dwarn(feat, fmt,...)
#define MOS_EARLY_SETUP(_param, _fn)