mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 05:27:45 +00:00
Kernel: Split SmapDisabler so header is platform independent
A new header file has been created in the Arch/ folder while the implementation has been moved into a CPP living in the X86 folder.
This commit is contained in:
parent
f4fb637914
commit
0fbeac6011
12 changed files with 76 additions and 39 deletions
25
Kernel/Arch/x86/SmapDisabler.cpp
Normal file
25
Kernel/Arch/x86/SmapDisabler.cpp
Normal file
|
@ -0,0 +1,25 @@
|
|||
/*
|
||||
* Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#include <Kernel/Arch/SmapDisabler.h>
|
||||
|
||||
#include <Kernel/Arch/x86/ASM_wrapper.h>
|
||||
|
||||
namespace Kernel {
|
||||
|
||||
SmapDisabler::SmapDisabler()
|
||||
: m_flags(cpu_flags())
|
||||
{
|
||||
stac();
|
||||
}
|
||||
|
||||
SmapDisabler::~SmapDisabler()
|
||||
{
|
||||
if (!(m_flags & 0x40000))
|
||||
clac();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,31 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <Kernel/Arch/x86/ASM_wrapper.h>
|
||||
|
||||
namespace Kernel {
|
||||
|
||||
class SmapDisabler {
|
||||
public:
|
||||
ALWAYS_INLINE SmapDisabler()
|
||||
: m_flags(cpu_flags())
|
||||
{
|
||||
stac();
|
||||
}
|
||||
|
||||
ALWAYS_INLINE ~SmapDisabler()
|
||||
{
|
||||
if (!(m_flags & 0x40000))
|
||||
clac();
|
||||
}
|
||||
|
||||
private:
|
||||
const FlatPtr m_flags;
|
||||
};
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue