mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 07:47:35 +00:00
Kernel: Add per platform Processor.h headers
The platform independent Processor.h file includes the shared processor code and includes the specific platform header file. All references to the Arch/x86/Processor.h file have been replaced with a reference to Arch/Processor.h.
This commit is contained in:
parent
23676bee1f
commit
545ce5b595
25 changed files with 199 additions and 101 deletions
66
Kernel/Arch/aarch64/Processor.h
Normal file
66
Kernel/Arch/aarch64/Processor.h
Normal file
|
@ -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 */) { }
|
||||
};
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue