summaryrefslogtreecommitdiff
path: root/Kernel/Arch/aarch64/Registers.h
diff options
context:
space:
mode:
authorTimon Kruiper <timonkruiper@gmail.com>2023-01-30 15:42:39 +0100
committerJelle Raaijmakers <jelle@gmta.nl>2023-02-15 22:53:19 +0100
commitd5262a540cf7df1d1267afb81caad19f74d633f1 (patch)
tree8f74e690fe29864acfef9e37d754310d7a005117 /Kernel/Arch/aarch64/Registers.h
parent4b0f8e9a20e5193684e94f23494d2a510e5fcf47 (diff)
downloadserenity-d5262a540cf7df1d1267afb81caad19f74d633f1.zip
Kernel/aarch64: Handle SVC exception by calling syscall_handler
The SVC (supervisor call) instruction is used in userland to do syscalls, and this commit adds the handling of syscalls to Interrupts.cpp.
Diffstat (limited to 'Kernel/Arch/aarch64/Registers.h')
-rw-r--r--Kernel/Arch/aarch64/Registers.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/Kernel/Arch/aarch64/Registers.h b/Kernel/Arch/aarch64/Registers.h
index dd96a6f82a..096b4672f3 100644
--- a/Kernel/Arch/aarch64/Registers.h
+++ b/Kernel/Arch/aarch64/Registers.h
@@ -1172,6 +1172,11 @@ static inline bool exception_class_is_data_or_instruction_abort_from_lower_excep
return exception_class == 0x20 || exception_class == 0x24;
}
+static inline bool exception_class_is_svc_instruction_execution(u8 exception_class)
+{
+ return exception_class == 0x11 || exception_class == 0x15;
+}
+
// D17.2.37 ESR_EL1, Exception Syndrome Register (EL1)
// ISS encoding for an exception from a Data Abort
// DFSC, bits [5:0]