Remove hardcoded shift in SIPI vector calculation
All checks were successful
Builds / ExectOS (amd64, release) (push) Successful in 30s
Builds / ExectOS (amd64, debug) (push) Successful in 31s
Builds / ExectOS (i686, debug) (push) Successful in 29s
Builds / ExectOS (i686, release) (push) Successful in 35s

This commit is contained in:
2026-06-12 14:21:27 +02:00
parent 1a062ca05f
commit b0074637f8
3 changed files with 7 additions and 1 deletions

View File

@@ -39,6 +39,9 @@
#define APIC_VECTOR_PERF 0xFE #define APIC_VECTOR_PERF 0xFE
#define APIC_VECTOR_NMI 0xFF #define APIC_VECTOR_NMI 0xFF
/* APIC SIPI vector shift */
#define APIC_VECTOR_SIPI_SHIFT 12
/* APIC destination formats */ /* APIC destination formats */
#define APIC_DF_FLAT 0xFFFFFFFF #define APIC_DF_FLAT 0xFFFFFFFF
#define APIC_DF_CLUSTER 0x0FFFFFFF #define APIC_DF_CLUSTER 0x0FFFFFFF

View File

@@ -45,6 +45,9 @@
#define APIC_VECTOR_PERF 0xFE #define APIC_VECTOR_PERF 0xFE
#define APIC_VECTOR_NMI 0xFF #define APIC_VECTOR_NMI 0xFF
/* APIC SIPI vector shift */
#define APIC_VECTOR_SIPI_SHIFT 12
/* APIC destination formats */ /* APIC destination formats */
#define APIC_DF_FLAT 0xFFFFFFFF #define APIC_DF_FLAT 0xFFFFFFFF
#define APIC_DF_CLUSTER 0x0FFFFFFF #define APIC_DF_CLUSTER 0x0FFFFFFF

View File

@@ -163,7 +163,7 @@ HL::Cpu::StartAllProcessors(VOID)
StartBlock = (PPROCESSOR_START_BLOCK)((PUCHAR)ApVirtualAddress + TrampolineCodeSize); StartBlock = (PPROCESSOR_START_BLOCK)((PUCHAR)ApVirtualAddress + TrampolineCodeSize);
/* Get SIPI vector */ /* Get SIPI vector */
SipiVector = (ULONG)(ApPhysicalAddress.QuadPart >> 12); SipiVector = (ULONG)(ApPhysicalAddress.QuadPart >> APIC_VECTOR_SIPI_SHIFT);
/* Loop over all CPUs */ /* Loop over all CPUs */
CpuNumber = 0; CpuNumber = 0;