1 #include <lunaix/mm/fault.h>
2 #include <asm/aa64_exception.h>
3 #include <asm/aa64_msrs.h>
7 __arch_prepare_fault_context(struct fault_context* fault)
9 struct hart_state* hs = fault->hstate;
11 ptr_t ptr = read_sysreg(FAR_EL1);
16 fault->fault_ptep = mkptep_va(VMS_SELF, ptr);
17 fault->fault_data = esr_ec(hs->execp.syndrome);
18 fault->fault_instn = hart_pc(hs);
19 fault->fault_va = ptr;
25 handle_mm_abort(struct hart_state* state)
27 struct fault_context fault;
29 __arch_prepare_fault_context(&fault);
31 if (!handle_page_fault(&fault)) {
32 fault_resolving_failed(&fault);