kernel: consolidate error handling code
* z_NanoFatalErrorHandler() is now moved to common kernel code and renamed z_fatal_error(). Arches dump arch-specific info before calling. * z_SysFatalErrorHandler() is now moved to common kernel code and renamed k_sys_fatal_error_handler(). It is now much simpler; the default policy is simply to lock interrupts and halt the system. If an implementation of this function returns, then the currently running thread is aborted. * New arch-specific APIs introduced: - z_arch_system_halt() simply powers off or halts the system. * We now have a standard set of fatal exception reason codes, namespaced under K_ERR_* * CONFIG_SIMPLE_FATAL_ERROR_HANDLER deleted * LOG_PANIC() calls moved to k_sys_fatal_error_handler() Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
This commit is contained in:
parent
81245a0193
commit
71ce8ceb18
53 changed files with 397 additions and 1183 deletions
|
@ -59,7 +59,7 @@ void z_unhandled_vector(int vector, int err, struct xuk_entry_frame *f)
|
|||
printk("*** R8 0x%llx R9 0x%llx R10 0x%llx R11 0x%llx\n",
|
||||
f->r8, f->r9, f->r10, f->r11);
|
||||
|
||||
z_NanoFatalErrorHandler(x86_64_except_reason, NULL);
|
||||
z_fatal_error(x86_64_except_reason, NULL);
|
||||
}
|
||||
|
||||
void z_isr_entry(void)
|
||||
|
@ -214,16 +214,3 @@ void x86_apic_set_timeout(u32_t cyc_from_now)
|
|||
const NANO_ESF _default_esf;
|
||||
|
||||
int x86_64_except_reason;
|
||||
|
||||
void z_NanoFatalErrorHandler(unsigned int reason, const NANO_ESF *esf)
|
||||
{
|
||||
z_SysFatalErrorHandler(reason, esf);
|
||||
}
|
||||
|
||||
/* App-overridable handler. Does nothing here */
|
||||
void __weak z_SysFatalErrorHandler(unsigned int reason, const NANO_ESF *esf)
|
||||
{
|
||||
ARG_UNUSED(reason);
|
||||
ARG_UNUSED(esf);
|
||||
k_thread_abort(_current);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue