Unit testing framework and devicetree framework refactoring (#50)
[lunaix-os.git] / lunaix-os / arch / x86 / exceptions / intr_routines.c
index 05f547e9c60c441b8d6c3e52e21fb2b1ea24a90b..5e18496f9a630700f1e14deb6401dd086f206c2f 100644 (file)
@@ -1,6 +1,5 @@
-#include <sys/hart.h>
+#include <asm/hart.h>
 
 
-#include <lunaix/generic/isrm.h>
 #include <lunaix/process.h>
 #include <lunaix/sched.h>
 #include <lunaix/spike.h>
 #include <lunaix/process.h>
 #include <lunaix/sched.h>
 #include <lunaix/spike.h>
@@ -10,8 +9,9 @@
 
 #include <klibc/strfmt.h>
 
 
 #include <klibc/strfmt.h>
 
-#include "sys/apic.h"
-#include <sys/int_handler.h>
+#include <asm/x86_isrm.h>
+#include "asm/soc/apic.h"
+#include "asm/x86.h"
 
 LOG_MODULE("INTR")
 
 
 LOG_MODULE("INTR")
 
@@ -39,6 +39,12 @@ intr_routine_general_protection(const struct hart_state* state)
     __print_panic_msg("general protection", state);
 }
 
     __print_panic_msg("general protection", state);
 }
 
+void
+intr_routine_invl_opcode(const struct hart_state* state)
+{
+    __print_panic_msg("invalid opcode", state);
+}
+
 void
 intr_routine_sys_panic(const struct hart_state* state)
 {
 void
 intr_routine_sys_panic(const struct hart_state* state)
 {
@@ -89,6 +95,7 @@ intr_routine_init()
     isrm_bindiv(FAULT_GENERAL_PROTECTION, intr_routine_general_protection);
     isrm_bindiv(FAULT_PAGE_FAULT, intr_routine_page_fault);
     isrm_bindiv(FAULT_STACK_SEG_FAULT, intr_routine_page_fault);
     isrm_bindiv(FAULT_GENERAL_PROTECTION, intr_routine_general_protection);
     isrm_bindiv(FAULT_PAGE_FAULT, intr_routine_page_fault);
     isrm_bindiv(FAULT_STACK_SEG_FAULT, intr_routine_page_fault);
+    isrm_bindiv(FAULT_INVALID_OPCODE, intr_routine_invl_opcode);
 
     isrm_bindiv(LUNAIX_SYS_PANIC, intr_routine_sys_panic);
     isrm_bindiv(LUNAIX_SCHED, intr_routine_sched);
 
     isrm_bindiv(LUNAIX_SYS_PANIC, intr_routine_sys_panic);
     isrm_bindiv(LUNAIX_SCHED, intr_routine_sched);