mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 23:27:43 +00:00
Kernel: Add basic aarch64 support to MemoryManager
FIXME: There's still a lot to do like for example, port `quickmap_page`. This does however get us further into the boot process than before.
This commit is contained in:
parent
14fe03569a
commit
7e1e208d08
6 changed files with 41 additions and 18 deletions
|
@ -13,8 +13,7 @@
|
|||
|
||||
#include <Kernel/Arch/ProcessorSpecificDataID.h>
|
||||
#include <Kernel/Arch/aarch64/Registers.h>
|
||||
|
||||
class VirtualAddress;
|
||||
#include <Kernel/VirtualAddress.h>
|
||||
|
||||
namespace Kernel {
|
||||
|
||||
|
@ -36,18 +35,19 @@ struct [[gnu::aligned(16)]] FPUState
|
|||
extern Processor* g_current_processor;
|
||||
|
||||
class Processor {
|
||||
void* m_processor_specific_data[static_cast<size_t>(ProcessorSpecificDataID::__Count)];
|
||||
|
||||
public:
|
||||
void initialize(u32 cpu);
|
||||
|
||||
void set_specific(ProcessorSpecificDataID /*specific_id*/, void* /*ptr*/)
|
||||
{
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
template<typename T>
|
||||
T* get_specific()
|
||||
{
|
||||
VERIFY_NOT_REACHED();
|
||||
return 0;
|
||||
return static_cast<T*>(m_processor_specific_data[static_cast<size_t>(T::processor_specific_data_id())]);
|
||||
}
|
||||
void set_specific(ProcessorSpecificDataID specific_id, void* ptr)
|
||||
{
|
||||
m_processor_specific_data[static_cast<size_t>(specific_id)] = ptr;
|
||||
}
|
||||
|
||||
ALWAYS_INLINE static void pause()
|
||||
|
@ -76,11 +76,7 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
ALWAYS_INLINE static void flush_tlb_local(VirtualAddress&, size_t&)
|
||||
{
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
||||
static void flush_tlb_local(VirtualAddress vaddr, size_t page_count);
|
||||
ALWAYS_INLINE static void flush_tlb(Memory::PageDirectory const*, VirtualAddress const&, size_t)
|
||||
{
|
||||
VERIFY_NOT_REACHED();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue