Initialize system interrupt handlers
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in 29s
Builds / ExectOS (i686, release) (push) Successful in 30s
Builds / ExectOS (amd64, release) (push) Successful in 50s
Builds / ExectOS (i686, debug) (push) Successful in 49s

This commit is contained in:
2026-06-08 20:15:18 +02:00
parent 9e64939de4
commit 5b0eebdb43
3 changed files with 45 additions and 0 deletions

View File

@@ -24,6 +24,7 @@ namespace KE
private:
STATIC XTAPI VOID BootstrapKernel(VOID);
STATIC XTAPI VOID InitializeInterruptHandlers(VOID);
STATIC XTAPI VOID InitializeKernel(VOID);
};
}

View File

@@ -51,6 +51,9 @@ KE::KernelInit::BootstrapApplicationProcessor(IN PPROCESSOR_START_BLOCK StartBlo
/* Initialize per-CPU spin lock queues */
KE::SpinLock::InitializeLockQueues();
/* Initialize interrupt handlers */
InitializeInterruptHandlers();
/* Lower to APC runlevel */
KE::RunLevel::LowerRunLevel(APC_LEVEL);
@@ -96,6 +99,9 @@ KE::KernelInit::BootstrapKernel(VOID)
KE::SpinLock::InitializeAllLocks();
KE::SpinLock::InitializeLockQueues();
/* Initialize interrupt handlers */
InitializeInterruptHandlers();
/* Lower to APC runlevel */
KE::RunLevel::LowerRunLevel(APC_LEVEL);
@@ -123,6 +129,22 @@ KE::KernelInit::BootstrapKernel(VOID)
KE::Crash::HaltSystem();
}
/**
* Initializes and registers the core system interrupt handlers.
*
* @return This routine does not return any value.
*
* @since XT 1.0
*/
XTAPI
VOID
KE::KernelInit::InitializeInterruptHandlers(VOID)
{
/* Register interrupt handlers */
HL::Irq::RegisterSystemInterruptHandler(APIC_VECTOR_DPC, KE::Dispatcher::HandleDispatchInterrupt);
HL::Irq::RegisterSystemInterruptHandler(APIC_VECTOR_IPI, KE::Ipi::HandleIpiInterrupt);
}
/**
* This routine initializes XT kernel.
*

View File

@@ -51,6 +51,9 @@ KE::KernelInit::BootstrapApplicationProcessor(IN PPROCESSOR_START_BLOCK StartBlo
/* Initialize per-CPU spin lock queues */
KE::SpinLock::InitializeLockQueues();
/* Initialize interrupt handlers */
InitializeInterruptHandlers();
/* Lower to APC runlevel */
KE::RunLevel::LowerRunLevel(APC_LEVEL);
@@ -96,6 +99,9 @@ KE::KernelInit::BootstrapKernel(VOID)
KE::SpinLock::InitializeAllLocks();
KE::SpinLock::InitializeLockQueues();
/* Initialize interrupt handlers */
InitializeInterruptHandlers();
/* Lower to APC runlevel */
KE::RunLevel::LowerRunLevel(APC_LEVEL);
@@ -123,6 +129,22 @@ KE::KernelInit::BootstrapKernel(VOID)
KE::Crash::HaltSystem();
}
/**
* Initializes and registers the core system interrupt handlers.
*
* @return This routine does not return any value.
*
* @since XT 1.0
*/
XTAPI
VOID
KE::KernelInit::InitializeInterruptHandlers(VOID)
{
/* Register interrupt handlers */
HL::Irq::RegisterSystemInterruptHandler(APIC_VECTOR_DPC, KE::Dispatcher::HandleDispatchInterrupt);
HL::Irq::RegisterSystemInterruptHandler(APIC_VECTOR_IPI, KE::Ipi::HandleIpiInterrupt);
}
/**
* This routine initializes XT kernel.
*