diff options
Diffstat (limited to 'Kernel/Arch/aarch64/Processor.h')
-rw-r--r-- | Kernel/Arch/aarch64/Processor.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/Kernel/Arch/aarch64/Processor.h b/Kernel/Arch/aarch64/Processor.h new file mode 100644 index 0000000000..89143a35f8 --- /dev/null +++ b/Kernel/Arch/aarch64/Processor.h @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2018-2021, James Mintram <me@jamesrm.com> + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include <AK/Array.h> +#include <AK/Concepts.h> +#include <AK/Function.h> +#include <AK/Types.h> + +namespace Kernel { + +class Thread; + +//FIXME This needs to go behind some sort of platform abstraction +// it is used between Thread and Processor. +struct [[gnu::aligned(16)]] FPUState +{ + u8 buffer[512]; +}; + +class Processor { +public: + void set_specific(ProcessorSpecificDataID /*specific_id*/, void* /*ptr*/) { } + template<typename T> + T* get_specific() { return 0; } + + ALWAYS_INLINE static void pause() { } + ALWAYS_INLINE static void wait_check() { } + + ALWAYS_INLINE static bool is_initialized() + { + return false; + } + + ALWAYS_INLINE static u32 current_id() + { + return 0; + } + + ALWAYS_INLINE static Thread* current_thread() + { + return 0; + } + + ALWAYS_INLINE static FlatPtr current_in_irq() + { + return 0; + } + + ALWAYS_INLINE static void enter_critical() { } + ALWAYS_INLINE static void leave_critical() { } + ALWAYS_INLINE static u32 in_critical() + { + return 0; + } + + ALWAYS_INLINE static Processor& current() { return *((Processor*)0); } + + static void deferred_call_queue(Function<void()> /* callback */) { } +}; + +} |