Add helper to translate run level to software interrupt vector
All checks were successful
Builds / ExectOS (amd64, release) (push) Successful in -59m27s
Builds / ExectOS (amd64, debug) (push) Successful in -59m26s
Builds / ExectOS (i686, release) (push) Successful in -59m28s
Builds / ExectOS (i686, debug) (push) Successful in -59m26s

This commit is contained in:
2026-04-27 20:17:57 +02:00
parent 8d58a7fcc1
commit 6a983fe33c
3 changed files with 46 additions and 0 deletions

View File

@@ -20,6 +20,7 @@ XTFASTCALL
KRUNLEVEL
HL::RunLevel::GetRunLevel(VOID)
{
/* Read current run level */
return TransformApicTprToRunLevel(HL::Pic::ReadApicRegister(APIC_TPR));
}
@@ -37,6 +38,7 @@ XTFASTCALL
VOID
HL::RunLevel::SetRunLevel(IN KRUNLEVEL RunLevel)
{
/* Set new run level */
HL::Pic::WriteApicRegister(APIC_TPR, TransformRunLevelToApicTpr(RunLevel));
}
@@ -131,3 +133,23 @@ HL::RunLevel::TransformRunLevelToApicTpr(IN KRUNLEVEL RunLevel)
/* Return the TPR corresponding to the run level from the transformation table. */
return TransformationTable[RunLevel];
}
/**
* Transforms a given execution run level into a corresponding hardware interrupt vector
* suitable for software interrupts.
*
* @param RunLevel
* Supplies the run level to be translated into a software interrupt vector.
*
* @return This routine returns the 8-bit APIC vector corresponding to the requested software interrupt level.
*
* @since XT 1.0
*/
XTFASTCALL
UCHAR
HL::RunLevel::TransformRunLevelToSoftwareVector(IN KRUNLEVEL RunLevel)
{
/* Transform run level to APIC interrupt vector */
return TransformRunLevelToApicTpr(RunLevel);
}