Simplify active processor bit setting
All checks were successful
Builds / ExectOS (amd64, release) (push) Successful in 27s
Builds / ExectOS (amd64, debug) (push) Successful in 38s
Builds / ExectOS (i686, release) (push) Successful in 27s
Builds / ExectOS (i686, debug) (push) Successful in 38s

This commit is contained in:
2026-06-09 23:27:24 +02:00
parent 36c3d92399
commit cf4b91ac83

View File

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