1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 23:07:35 +00:00

Kernel: Refactor PageFault for use in the aarch64 port

The class used to look at the x86_64 specific exception code to figure
out what kind of page fault happend, however this refactor allows
aarch64 to use the same class.
This commit is contained in:
Timon Kruiper 2023-01-08 17:03:40 +01:00 committed by Andreas Kling
parent fb10774862
commit ade27fa6b9
2 changed files with 48 additions and 16 deletions

View file

@ -263,9 +263,9 @@ void page_fault_handler(TrapFrame* trap)
}
dbgln("Unrecoverable page fault, {}{}{} address {}",
regs.exception_code & PageFaultFlags::ReservedBitViolation ? "reserved bit violation / " : "",
regs.exception_code & PageFaultFlags::InstructionFetch ? "instruction fetch / " : "",
regs.exception_code & PageFaultFlags::Write ? "write to" : "read from",
fault.is_reserved_bit_violation() ? "reserved bit violation / " : "",
fault.is_instruction_fetch() ? "instruction fetch / " : "",
fault.is_write() ? "write to" : "read from",
VirtualAddress(fault_address));
constexpr FlatPtr malloc_scrub_pattern = explode_byte(MALLOC_SCRUB_BYTE);
constexpr FlatPtr free_scrub_pattern = explode_byte(FREE_SCRUB_BYTE);