Remove hardcoded shift in SIPI vector calculation

此提交包含在:
2026-06-12 14:21:27 +02:00
父節點 1a062ca05f
當前提交 b0074637f8
共有 3 個檔案被更改,包括 7 行新增 和 1 行删除

查看文件

@@ -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

查看文件

@@ -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

查看文件

@@ -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;