diff --git a/sdk/xtdk/amd64/hltypes.h b/sdk/xtdk/amd64/hltypes.h index 68cdfa215..3446d7a0f 100644 --- a/sdk/xtdk/amd64/hltypes.h +++ b/sdk/xtdk/amd64/hltypes.h @@ -39,6 +39,9 @@ #define APIC_VECTOR_PERF 0xFE #define APIC_VECTOR_NMI 0xFF +/* APIC SIPI vector shift */ +#define APIC_VECTOR_SIPI_SHIFT 12 + /* APIC destination formats */ #define APIC_DF_FLAT 0xFFFFFFFF #define APIC_DF_CLUSTER 0x0FFFFFFF diff --git a/sdk/xtdk/i686/hltypes.h b/sdk/xtdk/i686/hltypes.h index 898ed95be..1b616933a 100644 --- a/sdk/xtdk/i686/hltypes.h +++ b/sdk/xtdk/i686/hltypes.h @@ -45,6 +45,9 @@ #define APIC_VECTOR_PERF 0xFE #define APIC_VECTOR_NMI 0xFF +/* APIC SIPI vector shift */ +#define APIC_VECTOR_SIPI_SHIFT 12 + /* APIC destination formats */ #define APIC_DF_FLAT 0xFFFFFFFF #define APIC_DF_CLUSTER 0x0FFFFFFF diff --git a/xtoskrnl/hl/x86/cpu.cc b/xtoskrnl/hl/x86/cpu.cc index f833a051d..fca616c8a 100644 --- a/xtoskrnl/hl/x86/cpu.cc +++ b/xtoskrnl/hl/x86/cpu.cc @@ -163,7 +163,7 @@ HL::Cpu::StartAllProcessors(VOID) StartBlock = (PPROCESSOR_START_BLOCK)((PUCHAR)ApVirtualAddress + TrampolineCodeSize); /* Get SIPI vector */ - SipiVector = (ULONG)(ApPhysicalAddress.QuadPart >> 12); + SipiVector = (ULONG)(ApPhysicalAddress.QuadPart >> APIC_VECTOR_SIPI_SHIFT); /* Loop over all CPUs */ CpuNumber = 0;