diff options
author | Gunnar Beutner <gbeutner@serenityos.org> | 2022-10-16 16:58:44 +0200 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2022-10-16 17:35:37 +0200 |
commit | 69efded56284c52edadaf88fe16238b0510b453f (patch) | |
tree | 94a78e4b744288aecc17bba28a8d1e32b9a0894f /Kernel | |
parent | 1e3edb3b76c6bc0e5c5da041b7c9833638c03ee0 (diff) | |
download | serenity-69efded56284c52edadaf88fe16238b0510b453f.zip |
Kernel: Add more stubs needed for Thread.cpp
Diffstat (limited to 'Kernel')
-rw-r--r-- | Kernel/Arch/aarch64/Processor.cpp | 5 | ||||
-rw-r--r-- | Kernel/Arch/aarch64/Processor.h | 8 | ||||
-rw-r--r-- | Kernel/Arch/aarch64/RegisterState.h | 9 | ||||
-rw-r--r-- | Kernel/Thread.cpp | 5 |
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 |