adjust exec_param to keep track of sp_el0, fix incorrect use sys regs
[lunaix-os.git] / lunaix-os / includes / lunaix / mm / fault.h
index 3367841c7a5fceb8c7d67b9cfabe03996524ecc5..abc8b7e14e7b377b9a202fd4fcc2de0fca78be35 100644 (file)
@@ -4,14 +4,14 @@
 #include <lunaix/mm/mm.h>
 #include <lunaix/mm/page.h>
 #include <lunaix/mm/procvm.h>
-#include <lunaix/pcontext.h>
+#include <lunaix/hart_state.h>
 
 #define RESOLVE_OK      ( 0b000001 )
 #define NO_PREALLOC     ( 0b000010 )
 
 struct fault_context
 {
-    isr_param* ictx;
+    struct hart_state* hstate;
 
     struct 
     {
@@ -41,12 +41,16 @@ struct fault_context
     int resolve_type;
 };
 
-bool
-__arch_prepare_fault_context(struct fault_context* context);
-
 static inline void
 fault_resolved(struct fault_context* fault, int flags)
 {
     fault->resolve_type |= (flags | RESOLVE_OK);
 }
+
+bool
+handle_page_fault(struct fault_context* fault);
+
+void noret
+fault_resolving_failed(struct fault_context* fault);
+
 #endif /* __LUNAIX_FAULT_H */