Files
exectos/xtoskrnl/ke/runlevel.cc
Aiken Harris 307ec1794c
All checks were successful
Builds / ExectOS (amd64, release) (push) Successful in 27s
Builds / ExectOS (amd64, debug) (push) Successful in 29s
Builds / ExectOS (i686, release) (push) Successful in 29s
Builds / ExectOS (i686, debug) (push) Successful in 30s
Clean up after migration to C++
2025-09-16 14:20:20 +02:00

82 lines
1.7 KiB
C++

/**
* PROJECT: ExectOS
* COPYRIGHT: See COPYING.md in the top level directory
* FILE: xtoskrnl/ke/runlevel.cc
* DESCRIPTION: Running Level management support
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
*/
#include <xtos.hh>
/**
* Gets the current running level of the current processor.
*
* @return This routine returns the current running level.
*
* @since XT 1.0
*/
XTFASTCALL
KRUNLEVEL
KE::RunLevel::GetCurrentRunLevel(VOID)
{
return HL::RunLevel::GetRunLevel();
}
/**
* Lowers the running level of the current processor.
*
* @param RunLevel
* Supplies the new running level to lower to.
*
* @return This routine does not return any value.
*
* @since XT 1.0
*/
XTFASTCALL
VOID
KE::RunLevel::LowerRunLevel(IN KRUNLEVEL RunLevel)
{
KRUNLEVEL OldRunLevel;
/* Read current run level */
OldRunLevel = HL::RunLevel::GetRunLevel();
/* Validate run level lowerage */
if(OldRunLevel > RunLevel)
{
/* Set new, lower run level */
HL::RunLevel::SetRunLevel(RunLevel);
}
}
/**
* Raises the running level of the current processor.
*
* @param RunLevel
* Supplies the new running level to raise to.
*
* @return This routine returns the old running level.
*
* @since XT 1.0
*/
XTFASTCALL
KRUNLEVEL
KE::RunLevel::RaiseRunLevel(IN KRUNLEVEL RunLevel)
{
KRUNLEVEL OldRunLevel;
/* Read current run level */
OldRunLevel = HL::RunLevel::GetRunLevel();
/* Validate run level raise */
if(OldRunLevel < RunLevel)
{
/* Set new, higher run level */
HL::RunLevel::SetRunLevel(RunLevel);
}
/* Return old run level */
return OldRunLevel;
}