36 lines
687 B
C
36 lines
687 B
C
#include <ihk/debug.h>
|
|
#include <ihk/cpu.h>
|
|
#include <cls.h>
|
|
#include <ihk/monitor.h>
|
|
|
|
extern struct cpu_local_var *clv;
|
|
extern void eventfd(int type);
|
|
extern void arch_print_stack();
|
|
|
|
void panic(const char *msg)
|
|
{
|
|
if (clv) {
|
|
struct ihk_os_cpu_monitor *monitor = cpu_local_var(monitor);
|
|
//kprintf("%s: calling eventfd\n", __FUNCTION__);
|
|
monitor->status = IHK_OS_MONITOR_PANIC;
|
|
eventfd(IHK_OS_EVENTFD_TYPE_STATUS);
|
|
}
|
|
cpu_disable_interrupt();
|
|
|
|
kprintf("%s\n", msg);
|
|
|
|
//arch_print_stack();
|
|
|
|
while (1) {
|
|
cpu_halt();
|
|
}
|
|
}
|
|
|
|
extern void arch_show_interrupt_context(const void*);
|
|
|
|
void ihk_mc_debug_show_interrupt_context(const void *reg)
|
|
{
|
|
arch_show_interrupt_context(reg);
|
|
}
|
|
|