Take CPU number from processor block
This commit is contained in:
parent
38b0b2ac7d
commit
c34b6ff6c1
|
@ -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();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue
Block a user