mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-01 05:39:11 +00:00
Kernel: Move ScopedCritical + SmapDisabler CPP files into x86 common
This commit is contained in:
parent
418d69c0ad
commit
e35222a76e
Notes:
sideshowbarker
2024-07-18 02:17:41 +09:00
Author: https://github.com/jamesmintram
Commit: e35222a76e
Pull-request: https://github.com/SerenityOS/serenity/pull/10505
3 changed files with 2 additions and 2 deletions
51
Kernel/Arch/x86/common/ScopedCritical.cpp
Normal file
51
Kernel/Arch/x86/common/ScopedCritical.cpp
Normal file
|
@ -0,0 +1,51 @@
|
|||
/*
|
||||
* Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#include <Kernel/Arch/ScopedCritical.h>
|
||||
|
||||
#include <Kernel/Arch/Processor.h>
|
||||
|
||||
namespace Kernel {
|
||||
|
||||
ScopedCritical::ScopedCritical()
|
||||
{
|
||||
enter();
|
||||
}
|
||||
|
||||
ScopedCritical::~ScopedCritical()
|
||||
{
|
||||
if (m_valid)
|
||||
leave();
|
||||
}
|
||||
|
||||
ScopedCritical::ScopedCritical(ScopedCritical&& from)
|
||||
: m_valid(exchange(from.m_valid, false))
|
||||
{
|
||||
}
|
||||
|
||||
ScopedCritical& ScopedCritical::operator=(ScopedCritical&& from)
|
||||
{
|
||||
if (&from != this) {
|
||||
m_valid = exchange(from.m_valid, false);
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
void ScopedCritical::leave()
|
||||
{
|
||||
VERIFY(m_valid);
|
||||
m_valid = false;
|
||||
Processor::leave_critical();
|
||||
}
|
||||
|
||||
void ScopedCritical::enter()
|
||||
{
|
||||
VERIFY(!m_valid);
|
||||
m_valid = true;
|
||||
Processor::enter_critical();
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue