Expose installed CPU count and rename state save function
This commit is contained in:
@@ -26,12 +26,13 @@ namespace KE
|
||||
STATIC XTAPI PKPROCESSOR_CONTROL_BLOCK GetCurrentProcessorControlBlock(VOID);
|
||||
STATIC XTAPI ULONG GetCurrentProcessorNumber(VOID);
|
||||
STATIC XTAPI PKTHREAD GetCurrentThread(VOID);
|
||||
STATIC XTAPI ULONG GetInstalledCpus(VOID);
|
||||
STATIC XTAPI PKPROCESSOR_BLOCK GetProcessorBlock(IN ULONG CpuNumber);
|
||||
STATIC XTAPI XTSTATUS InitializeProcessorBlocks();
|
||||
STATIC XTAPI VOID RegisterHardwareId(IN ULONG HardwareId);
|
||||
STATIC XTAPI VOID RegisterProcessorBlock(ULONG CpuNumber,
|
||||
PKPROCESSOR_BLOCK ProcessorBlock);
|
||||
STATIC XTAPI VOID SaveProcessorState(OUT PKPROCESSOR_STATE CpuState);
|
||||
STATIC XTAPI VOID SaveProcessorControlState(OUT PKPROCESSOR_STATE CpuState);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -66,6 +66,21 @@ KE::Processor::GetCurrentThread(VOID)
|
||||
return (PKTHREAD)AR::CpuFunctions::ReadGSQuadWord(FIELD_OFFSET(KPROCESSOR_BLOCK, Prcb.CurrentThread));
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the number of installed and enabled CPUs in the system.
|
||||
*
|
||||
* @return This routine returns the number of installed CPUs in the system.
|
||||
*
|
||||
* @since XT 1.0
|
||||
*/
|
||||
XTAPI
|
||||
ULONG
|
||||
KE::Processor::GetInstalledCpus(VOID)
|
||||
{
|
||||
/* Return number of installed CPUs */
|
||||
return InstalledCpus;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the processor block for the specified processor number.
|
||||
*
|
||||
@@ -189,7 +204,7 @@ KE::Processor::RegisterProcessorBlock(ULONG CpuNumber,
|
||||
*/
|
||||
XTAPI
|
||||
VOID
|
||||
KE::Processor::SaveProcessorState(OUT PKPROCESSOR_STATE CpuState)
|
||||
KE::Processor::SaveProcessorControlState(OUT PKPROCESSOR_STATE CpuState)
|
||||
{
|
||||
/* Save CR registers */
|
||||
CpuState->SpecialRegisters.Cr0 = AR::CpuFunctions::ReadControlRegister(0);
|
||||
|
||||
@@ -66,6 +66,21 @@ KE::Processor::GetCurrentThread(VOID)
|
||||
return (PKTHREAD)AR::CpuFunctions::ReadFSDualWord(FIELD_OFFSET(KPROCESSOR_BLOCK, Prcb.CurrentThread));
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the number of installed and enabled CPUs in the system.
|
||||
*
|
||||
* @return This routine returns the number of installed CPUs in the system.
|
||||
*
|
||||
* @since XT 1.0
|
||||
*/
|
||||
XTAPI
|
||||
ULONG
|
||||
KE::Processor::GetInstalledCpus(VOID)
|
||||
{
|
||||
/* Return number of installed CPUs */
|
||||
return InstalledCpus;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the processor block for the specified processor number.
|
||||
*
|
||||
@@ -189,7 +204,7 @@ KE::Processor::RegisterProcessorBlock(ULONG CpuNumber,
|
||||
*/
|
||||
XTAPI
|
||||
VOID
|
||||
KE::Processor::SaveProcessorState(OUT PKPROCESSOR_STATE CpuState)
|
||||
KE::Processor::SaveProcessorControlState(OUT PKPROCESSOR_STATE CpuState)
|
||||
{
|
||||
/* Save CR registers */
|
||||
CpuState->SpecialRegisters.Cr0 = AR::CpuFunctions::ReadControlRegister(0);
|
||||
|
||||
Reference in New Issue
Block a user