From 2c05afaa7b319b9b2ac1d8452cda26bf0b31a798 Mon Sep 17 00:00:00 2001 From: Timon Kruiper Date: Wed, 11 May 2022 09:35:24 +0200 Subject: [PATCH] Kernel: Add Exception Syndrome Register to aarch64 Registers.h This allows us to print more information about what kind of exception happend. --- Kernel/Arch/aarch64/Registers.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Kernel/Arch/aarch64/Registers.h b/Kernel/Arch/aarch64/Registers.h index 56889324fa..ed15fd524b 100644 --- a/Kernel/Arch/aarch64/Registers.h +++ b/Kernel/Arch/aarch64/Registers.h @@ -466,4 +466,25 @@ struct alignas(u64) MAIR_EL1 { }; static_assert(sizeof(MAIR_EL1) == 8); +// https://developer.arm.com/documentation/ddi0595/2021-06/AArch64-Registers/ESR-EL1--Exception-Syndrome-Register--EL1- +// Exception Syndrome Register (EL1) +struct ESR_EL1 { + u64 ISS : 25; + u64 IL : 1; + u64 EC : 6; + u64 ISS2 : 5; + u64 : 27; + + static inline ESR_EL1 read() + { + ESR_EL1 esr_el1; + + asm("mrs %[value], esr_el1" + : [value] "=r"(esr_el1)); + + return esr_el1; + } +}; +static_assert(sizeof(ESR_EL1) == 8); + }