Take CPU number from processor block
所有检测均成功
Builds / ExectOS (amd64) (push) Successful in 50s
Builds / ExectOS (i686) (push) Successful in 48s

这个提交包含在:
Rafal Kupiec 2024-05-08 21:59:18 +02:00
父节点 38b0b2ac7d
当前提交 c34b6ff6c1
签署人:: belliash
GPG 密钥 ID: 4E829243E0CFE6B4
共有 7 个文件被更改,包括 18 次插入15 次删除

查看文件

@ -21,7 +21,7 @@
*/
XTAPI
VOID
HlInitializeProcessor(IN ULONG CpuNumber)
HlInitializeProcessor()
{
PKPROCESSOR_BLOCK ProcessorBlock;
KAFFINITY Affinity;
@ -31,20 +31,19 @@ HlInitializeProcessor(IN ULONG CpuNumber)
/* Set initial stall factor, CPU number and mask interrupts */
ProcessorBlock->StallScaleFactor = INITIAL_STALL_FACTOR;
ProcessorBlock->CpuNumber = CpuNumber;
ProcessorBlock->Idr = 0xFFFFFFFF;
/* Record processor block in the processors table */
HlpProcessorsIdentity[CpuNumber].ProcessorBlock = ProcessorBlock;
HlpProcessorsIdentity[ProcessorBlock->CpuNumber].ProcessorBlock = ProcessorBlock;
/* Set processor affinity */
Affinity = (KAFFINITY) 1 << CpuNumber;
Affinity = (KAFFINITY) 1 << ProcessorBlock->CpuNumber;
/* Apply affinity to a set of processors */
HlpActiveProcessors |= Affinity;
/* Initialize APIC for this processor */
HlpInitializePic(CpuNumber);
HlpInitializePic();
/* Set the APIC running level */
HlSetRunLevel(KeGetCurrentProcessorBlock()->RunLevel);

查看文件

@ -187,11 +187,12 @@ HlpHandlePicSpuriousService(VOID)
*/
XTAPI
VOID
HlpInitializeApic(IN ULONG CpuNumber)
HlpInitializeApic()
{
APIC_BASE_REGISTER BaseRegister;
APIC_LVT_REGISTER LvtRegister;
APIC_SPURIOUS_REGISTER SpuriousRegister;
ULONG CpuNumber;
/* Check if this is an x2APIC compatible machine */
if(HlpCheckX2ApicSupport())
@ -205,6 +206,9 @@ HlpInitializeApic(IN ULONG CpuNumber)
HlpApicMode = APIC_MODE_COMPAT;
}
/* Get processor number */
CpuNumber = KeGetCurrentProcessorNumber();
/* Enable the APIC */
BaseRegister.LongLong = ArReadModelSpecificRegister(APIC_LAPIC_MSR_BASE);
BaseRegister.Enable = 1;
@ -281,9 +285,9 @@ HlpInitializeApic(IN ULONG CpuNumber)
*/
XTAPI
VOID
HlpInitializePic(IN ULONG CpuNumber)
HlpInitializePic()
{
/* Disable legacy PIC and initialize APIC */
HlDisableLegacyPic();
HlpInitializeApic(CpuNumber);
HlpInitializeApic();
}

查看文件

@ -48,11 +48,11 @@ HlpHandlePicSpuriousService(VOID);
XTAPI
VOID
HlpInitializeApic(IN ULONG CpuNumber);
HlpInitializeApic();
XTAPI
VOID
HlpInitializePic(IN ULONG CpuNumber);
HlpInitializePic();
XTFASTCALL
KRUNLEVEL

查看文件

@ -68,6 +68,6 @@ HlSetRunLevel(IN KRUNLEVEL RunLevel);
XTAPI
VOID
HlInitializeProcessor(IN ULONG CpuNumber);
HlInitializeProcessor();
#endif /* __XTOSKRNL_HLI_H */

查看文件

@ -48,11 +48,11 @@ HlpHandlePicSpuriousService(VOID);
XTAPI
VOID
HlpInitializeApic(IN ULONG CpuNumber);
HlpInitializeApic();
XTAPI
VOID
HlpInitializePic(IN ULONG CpuNumber);
HlpInitializePic();
XTFASTCALL
KRUNLEVEL

查看文件

@ -77,7 +77,7 @@ KepInitializeMachine(VOID)
HlInitializeFrameBuffer();
/* Initialize processor */
HlInitializeProcessor(0);
HlInitializeProcessor();
}
/**

查看文件

@ -77,7 +77,7 @@ KepInitializeMachine(VOID)
HlInitializeFrameBuffer();
/* Initialize processor */
HlInitializeProcessor(0);
HlInitializeProcessor();
}
/**