panic.h File Reference

Crash handling header. More...

Detailed Description

Crash handling header.

Define a core_panic function that allows to stop/reboot the system when an unrecoverable problem has occurred.

Author
Kévin Roussel Kevin.nosp@m..Rou.nosp@m.ssel@.nosp@m.inri.nosp@m.a.fr

Definition in file panic.h.

#include "kernel_defines.h"
+ Include dependency graph for panic.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

enum  core_panic_t {
  PANIC_GENERAL_ERROR, PANIC_SOFT_REBOOT, PANIC_HARD_REBOOT, PANIC_ASSERT_FAIL,
  PANIC_SSP, PANIC_UNDEFINED
}
 Definition of available panic modes. More...
 
NORETURN void core_panic (core_panic_t crash_code, const char *message)
 Handle an unrecoverable error by halting or rebooting the system. More...
 
void panic_arch (void)
 architecture dependent handling of a panic case More...
 

Enumeration Type Documentation

◆ core_panic_t

Definition of available panic modes.

Enumerator
PANIC_SSP 

stack smashing protector failure

Definition at line 34 of file panic.h.

Function Documentation

◆ core_panic()

NORETURN void core_panic ( core_panic_t  crash_code,
const char *  message 
)

Handle an unrecoverable error by halting or rebooting the system.

A numeric code indicating the failure reason can be given as the crash_code parameter.

Detailing the failure is possible using the message parameter. This function should serve a similar purpose as the panic() function of Unix/Linux kernels.

If the DEVELHELP macro is defined, the system will be halted; the system will be rebooted otherwise.

Warning
this function NEVER returns!
Parameters
[in]crash_codea unique code for identifying the crash reason
[in]messagea human readable reason for the crash
Returns
this function never returns

◆ panic_arch()

void panic_arch ( void  )

architecture dependent handling of a panic case

This function gives the CPU the possibility to execute architecture dependent code in case of a severe error.