mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 23:50:19 +00:00
Kernel: Make Region.cpp compile on aarch64
This commit is contained in:
parent
a883079b29
commit
627fd231d5
Notes:
sideshowbarker
2024-07-17 14:35:46 +09:00
Author: https://github.com/jamesmintram Commit: https://github.com/SerenityOS/serenity/commit/627fd231d5 Pull-request: https://github.com/SerenityOS/serenity/pull/13447
3 changed files with 25 additions and 4 deletions
|
@ -48,6 +48,16 @@ public:
|
|||
return 0;
|
||||
}
|
||||
|
||||
ALWAYS_INLINE bool has_nx() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
ALWAYS_INLINE bool has_pat() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
ALWAYS_INLINE static FlatPtr current_in_irq()
|
||||
{
|
||||
return 0;
|
||||
|
|
|
@ -397,6 +397,16 @@ public:
|
|||
|
||||
static void deferred_call_queue(Function<void()> callback);
|
||||
|
||||
ALWAYS_INLINE bool has_nx() const
|
||||
{
|
||||
return has_feature(CPUFeature::NX);
|
||||
}
|
||||
|
||||
ALWAYS_INLINE bool has_pat() const
|
||||
{
|
||||
return has_feature(CPUFeature::PAT);
|
||||
}
|
||||
|
||||
ALWAYS_INLINE bool has_feature(CPUFeature::Type const& feature) const
|
||||
{
|
||||
return m_features.has_flag(feature);
|
||||
|
|
|
@ -6,7 +6,8 @@
|
|||
|
||||
#include <AK/Memory.h>
|
||||
#include <AK/StringView.h>
|
||||
#include <Kernel/Arch/x86/PageFault.h>
|
||||
#include <Kernel/Arch/PageDirectory.h>
|
||||
#include <Kernel/Arch/PageFault.h>
|
||||
#include <Kernel/Debug.h>
|
||||
#include <Kernel/FileSystem/Inode.h>
|
||||
#include <Kernel/Memory/AnonymousVMObject.h>
|
||||
|
@ -212,9 +213,9 @@ bool Region::map_individual_page_impl(size_t page_index)
|
|||
pte->set_writable(false);
|
||||
else
|
||||
pte->set_writable(is_writable());
|
||||
if (Processor::current().has_feature(CPUFeature::NX))
|
||||
if (Processor::current().has_nx())
|
||||
pte->set_execute_disabled(!is_executable());
|
||||
if (Processor::current().has_feature(CPUFeature::PAT))
|
||||
if (Processor::current().has_pat())
|
||||
pte->set_pat(is_write_combine());
|
||||
pte->set_user_allowed(user_allowed);
|
||||
}
|
||||
|
@ -317,7 +318,7 @@ void Region::remap()
|
|||
|
||||
ErrorOr<void> Region::set_write_combine(bool enable)
|
||||
{
|
||||
if (enable && !Processor::current().has_feature(CPUFeature::PAT)) {
|
||||
if (enable && !Processor::current().has_pat()) {
|
||||
dbgln("PAT is not supported, implement MTRR fallback if available");
|
||||
return Error::from_errno(ENOTSUP);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue