ladybird/Kernel/Arch/aarch64
Daniel Bertalan beb55f726f Kernel/aarch64: Detect if access faults come from SafeMem
This commit lets us differentiate whether access faults are caused by
accessing junk memory addresses given to us by userspace or if we hit a
kernel bug.

The stub implementations of the `safe_*` functions currently don't let
us jump back into them and return a value indicating failure, so we
panic if such a fault happens. Practically, this means that we still
crash, but if the access violation was caused by something else, we take
the usual kernel crash code path and print a register and memory dump,
rather than hitting the `TODO_AARCH64` in `handle_safe_access_fault`.
2023-05-21 12:00:22 +02:00
..
RPi Kernel: Flush data cache before passing a buffer to the VC Mailbox 2023-05-17 01:38:03 -06:00
ASM_wrapper.h Kernel: Flush data cache before passing a buffer to the VC Mailbox 2023-05-17 01:38:03 -06:00
boot.S Kernel/aarch64: Execute kernel with SP_EL1 instead of SP_EL0 2023-01-27 11:41:43 +01:00
BootPPMParser.cpp Kernel: Remove Prekernel namespace in the aarch64 Kernel 2022-05-12 23:14:05 +02:00
BootPPMParser.h Kernel: Remove Prekernel namespace in the aarch64 Kernel 2022-05-12 23:14:05 +02:00
CPU.h Kernel: Move Memory/PageDirectory.{cpp,h} to arch-specific directory 2023-01-27 11:41:43 +01:00
CPUID.cpp Everywhere: Change all XXX into FIXME or remove as appropriate 2023-02-15 23:33:25 +01:00
CPUID.h Revert "Kernel: Migrate ‘main id registerʼ access in Aarch64 MMIO" 2023-02-17 11:29:33 -07:00
CurrentTime.cpp Kernel: Fix build error on AARCH64 2022-10-15 06:01:45 +00:00
Dummy.cpp Kernel: Merge x86_64 and aarch64 init.cpp files 2023-04-03 20:01:28 -06:00
Exceptions.cpp Kernel/aarch64: Disable memory access alignment check 2023-02-18 19:17:21 +01:00
InterruptManagement.cpp Kernel: Stub more functions to progress aarch64 build 2022-10-26 20:01:45 +02:00
InterruptManagement.h Kernel: Stub more functions to progress aarch64 build 2022-10-26 20:01:45 +02:00
Interrupts.cpp Kernel/aarch64: Dump registers when unknown exception occurs 2023-05-15 17:16:06 -06:00
IRQController.h AK+Kernel: Add AK::AtomicRefCounted and use everywhere in the kernel 2022-08-20 17:15:52 +02:00
kprintf.cpp Kernel/aarch64: Implement dbgput{str,char} in kprintf.cpp 2022-12-29 19:32:20 -07:00
linker.ld Kernel/aarch64: Detect if access faults come from SafeMem 2023-05-21 12:00:22 +02:00
MainIdRegister.cpp Revert "Kernel: Remove old ‘main id register accessorʼ for Aarch64" 2023-02-17 11:29:33 -07:00
MainIdRegister.h Revert "Kernel: Remove old ‘main id register accessorʼ for Aarch64" 2023-02-17 11:29:33 -07:00
mcontext.h Kernel+LibC: Modify aarch64's __mcontext to store registers in an array 2023-04-06 21:19:58 +03:00
MMU.cpp Kernel: Enable data and instruction cache on aarch64 2023-05-19 20:12:25 -06:00
PageDirectory.cpp Kernel/aarch64: Flush entire TLB cache when changing TTBR0_EL1 2023-04-06 21:19:58 +03:00
PageDirectory.h Kernel: Store a pointer to the owner process in PageDirectory 2023-04-06 20:30:03 +03:00
Panic.cpp Kernel: Unify x86-64 and AArch64 __panic implementation 2023-05-17 01:32:43 -06:00
pre_init.cpp Kernel: Move Memory/PageDirectory.{cpp,h} to arch-specific directory 2023-01-27 11:41:43 +01:00
Processor.cpp Kernel/aarch64: Flush entire TLB cache when changing TTBR0_EL1 2023-04-06 21:19:58 +03:00
Processor.h Kernel/aarch64: Add implementation of Processor::for_each 2023-04-13 20:24:25 +02:00
Registers.h Kernel: Update reset value and register names of SCTLR_EL1 per Arm ARM 2023-05-19 20:12:25 -06:00
RegisterState.h Kernel/aarch64: Add getters/setters in RegisterState and ThreadRegisters 2023-04-06 21:19:58 +03:00
SafeMem.cpp Kernel/aarch64: Detect if access faults come from SafeMem 2023-05-21 12:00:22 +02:00
SmapDisabler.cpp Kernel: Use default constructors/destructors 2022-03-17 00:51:36 -07:00
ThreadRegisters.h Kernel/aarch64: Add getters/setters in RegisterState and ThreadRegisters 2023-04-06 21:19:58 +03:00
TrapFrame.cpp Kernel: Call exit_trap in AArch64 restore_context_and_eret 2023-04-03 02:59:37 -06:00
TrapFrame.h Kernel: Implement Processor::assume_context for AArch64 2023-04-03 02:59:37 -06:00
vector_table.S Kernel/aarch64: Make REGISTER_STATE_SIZE a multiple of 16 bytes 2023-05-15 17:16:06 -06:00