Lifecycle management of threads #29

已合并
harraiken 于 2026-09-07 13:45:09 +02:00 将 240 次代码提交从 threads合并至 master
仅显示提交 cf4b91ac83 的更改 - 显示所有提交

查看文件

@@ -24,7 +24,6 @@ VOID
HL::Cpu::InitializeProcessor(VOID)
{
PKPROCESSOR_BLOCK ProcessorBlock;
ULONG BlockIndex, BitIndex;
/* Get current processor block */
ProcessorBlock = KE::Processor::GetCurrentProcessorBlock();
@@ -33,12 +32,8 @@ HL::Cpu::InitializeProcessor(VOID)
ProcessorBlock->StallScaleFactor = INITIAL_STALL_FACTOR;
ProcessorBlock->Idr = 0xFFFFFFFF;
/* Calculate the precise block and bit index for the affinity map */
BlockIndex = ProcessorBlock->CpuNumber / 64;
BitIndex = ProcessorBlock->CpuNumber % 64;
/* Apply affinity to a set of processors */
RTL::Atomic::Or64((PLONG_PTR)&ActiveProcessors.Bitmap[BlockIndex], ((KAFFINITY)1 << BitIndex));
/* Register this CPU in the global active processors map */
KE::Affinity::AtomicSetProcessorAffinity(&ActiveProcessors, ProcessorBlock->CpuNumber);
/* Initialize APIC for this processor */
HL::Pic::InitializePic();