summaryrefslogtreecommitdiff
path: root/Kernel
diff options
context:
space:
mode:
authorGunnar Beutner <gbeutner@serenityos.org>2022-10-16 16:58:44 +0200
committerLinus Groh <mail@linusgroh.de>2022-10-16 17:35:37 +0200
commit69efded56284c52edadaf88fe16238b0510b453f (patch)
tree94a78e4b744288aecc17bba28a8d1e32b9a0894f /Kernel
parent1e3edb3b76c6bc0e5c5da041b7c9833638c03ee0 (diff)
downloadserenity-69efded56284c52edadaf88fe16238b0510b453f.zip
Kernel: Add more stubs needed for Thread.cpp
Diffstat (limited to 'Kernel')
-rw-r--r--Kernel/Arch/aarch64/Processor.cpp5
-rw-r--r--Kernel/Arch/aarch64/Processor.h8
-rw-r--r--Kernel/Arch/aarch64/RegisterState.h9
-rw-r--r--Kernel/Thread.cpp5
4 files changed, 27 insertions, 0 deletions
diff --git a/Kernel/Arch/aarch64/Processor.cpp b/Kernel/Arch/aarch64/Processor.cpp
index daf2917567..d001616f1b 100644
--- a/Kernel/Arch/aarch64/Processor.cpp
+++ b/Kernel/Arch/aarch64/Processor.cpp
@@ -53,4 +53,9 @@ void Processor::flush_tlb(Memory::PageDirectory const*, VirtualAddress vaddr, si
flush_tlb_local(vaddr, page_count);
}
+u32 Processor::clear_critical()
+{
+ TODO_AARCH64();
+}
+
}
diff --git a/Kernel/Arch/aarch64/Processor.h b/Kernel/Arch/aarch64/Processor.h
index d8ecba68db..025b4ac0db 100644
--- a/Kernel/Arch/aarch64/Processor.h
+++ b/Kernel/Arch/aarch64/Processor.h
@@ -142,6 +142,14 @@ public:
current_processor.m_in_critical = current_processor.in_critical() - 1;
}
+ static u32 clear_critical();
+
+ ALWAYS_INLINE static void restore_critical(u32 prev_critical)
+ {
+ (void)prev_critical;
+ TODO_AARCH64();
+ }
+
ALWAYS_INLINE static u32 in_critical()
{
return current().m_in_critical;
diff --git a/Kernel/Arch/aarch64/RegisterState.h b/Kernel/Arch/aarch64/RegisterState.h
index 63553c8fa4..da558afb4e 100644
--- a/Kernel/Arch/aarch64/RegisterState.h
+++ b/Kernel/Arch/aarch64/RegisterState.h
@@ -6,6 +6,8 @@
#pragma once
+#include <LibC/sys/arch/i386/regs.h>
+
#include <AK/Platform.h>
VALIDATE_IS_AARCH64()
@@ -16,6 +18,13 @@ struct RegisterState {
FlatPtr ip() const { return 0; }
};
+inline void copy_kernel_registers_into_ptrace_registers(PtraceRegisters& ptrace_regs, RegisterState const& kernel_regs)
+{
+ (void)ptrace_regs;
+ (void)kernel_regs;
+ TODO_AARCH64();
+}
+
struct DebugRegisterState {
};
diff --git a/Kernel/Thread.cpp b/Kernel/Thread.cpp
index 57dfdb862f..81bfc2f825 100644
--- a/Kernel/Thread.cpp
+++ b/Kernel/Thread.cpp
@@ -101,6 +101,8 @@ Thread::Thread(NonnullLockRefPtr<Process> process, NonnullOwnPtr<Memory::Region>
m_regs.cs = GDT_SELECTOR_CODE0;
else
m_regs.cs = GDT_SELECTOR_CODE3 | 3;
+#elif ARCH(AARCH64)
+ TODO_AARCH64();
#else
# error Unknown architecture
#endif
@@ -1153,6 +1155,9 @@ DispatchSignalResult Thread::dispatch_signal(u8 signal)
constexpr static FlatPtr thread_red_zone_size = 0;
#elif ARCH(X86_64)
constexpr static FlatPtr thread_red_zone_size = 128;
+#elif ARCH(AARCH64)
+ constexpr static FlatPtr thread_red_zone_size = 0; // FIXME
+ TODO_AARCH64();
#else
# error Unknown architecture in dispatch_signal
#endif