#include <llprocessor.h>
Collaboration diagram for CProcessor:
Public Member Functions | |
CProcessor () | |
F64 | GetCPUFrequency (unsigned int uiMeasureMSecs) |
const ProcessorInfo * | GetCPUInfo () |
bool | CPUInfoToText (char *strBuffer, unsigned int uiMaxLen) |
bool | WriteInfoTextFile (const char *strFilename) |
Public Attributes | |
F64 | uqwFrequency |
char | strCPUName [128] |
ProcessorInfo | CPUInfo |
Private Member Functions | |
bool | AnalyzeIntelProcessor () |
bool | AnalyzeAMDProcessor () |
bool | AnalyzeUnknownProcessor () |
bool | CheckCPUIDPresence () |
void | DecodeProcessorConfiguration (unsigned int cfg) |
void | TranslateProcessorConfiguration () |
void | GetStandardProcessorConfiguration () |
void | GetStandardProcessorExtensions () |
Definition at line 159 of file llprocessor.h.
CProcessor::CProcessor | ( | ) |
bool CProcessor::AnalyzeAMDProcessor | ( | ) | [private] |
Definition at line 631 of file llprocessor.cpp.
References ProcessorExtensions::_3DNOW_InstructionExtensions, ProcessorInfo::_Data, ProcessorExtensions::_E3DNOW_InstructionExtensions, ProcessorInfo::_Ext, ProcessorInfo::_Instruction, ProcessorInfo::_L1, ProcessorInfo::_L2, ProcessorExtensions::AA64_AMD64BitArchitecture, ProcessorCache::bPresent, ProcessorTLB::bPresent, CheckBit, CheckCPUIDPresence(), CPUInfo, ProcessorL1Cache::Data, ProcessorExtensions::EMMX_MultimediaExtensions, FALSE, GetStandardProcessorConfiguration(), GetStandardProcessorExtensions(), ProcessorL1Cache::Instruction, ProcessorInfo::MaxSupportedExtendedLevel, ProcessorInfo::strBrandID, strCPUName, ProcessorInfo::strFamily, ProcessorInfo::strModel, ProcessorTLB::strPageSize, ProcessorCache::strSize, TranslateProcessorConfiguration(), ProcessorCache::uiAssociativeWays, ProcessorTLB::uiAssociativeWays, ProcessorTLB::uiEntries, ProcessorInfo::uiFamily, ProcessorCache::uiLineSize, ProcessorInfo::uiModel, ProcessorInfo::uiStepping, and ProcessorInfo::uiType.
Referenced by GetCPUInfo().
bool CProcessor::AnalyzeIntelProcessor | ( | ) | [private] |
Definition at line 224 of file llprocessor.cpp.
References CheckCPUIDPresence(), CPUInfo, FALSE, GetStandardProcessorConfiguration(), GetStandardProcessorExtensions(), ProcessorInfo::MaxSupportedLevel, ProcessorInfo::strBrandID, strCPUName, ProcessorInfo::strFamily, ProcessorInfo::strModel, ProcessorInfo::strProcessorSerial, TranslateProcessorConfiguration(), ProcessorInfo::uiBrandID, ProcessorInfo::uiExtendedFamily, ProcessorInfo::uiExtendedModel, ProcessorInfo::uiFamily, ProcessorInfo::uiModel, ProcessorInfo::uiStepping, and ProcessorInfo::uiType.
Referenced by GetCPUInfo().
bool CProcessor::AnalyzeUnknownProcessor | ( | ) | [private] |
Definition at line 1035 of file llprocessor.cpp.
References ProcessorInfo::_Data, ProcessorInfo::_Instruction, ProcessorInfo::_L1, ProcessorInfo::_L2, ProcessorInfo::_L3, ProcessorInfo::_Trace, CheckCPUIDPresence(), CPUInfo, ProcessorL1Cache::Data, FALSE, GetStandardProcessorExtensions(), ProcessorL1Cache::Instruction, ProcessorInfo::strBrandID, ProcessorCache::strCache, strCPUName, ProcessorInfo::strFamily, ProcessorInfo::strModel, ProcessorInfo::strProcessorSerial, ProcessorTLB::strTLB, ProcessorInfo::uiBrandID, ProcessorInfo::uiFamily, ProcessorInfo::uiModel, ProcessorInfo::uiStepping, and ProcessorInfo::uiType.
Referenced by GetCPUInfo().
bool CProcessor::CheckCPUIDPresence | ( | ) | [private] |
Definition at line 1096 of file llprocessor.cpp.
References FALSE.
Referenced by AnalyzeAMDProcessor(), AnalyzeIntelProcessor(), AnalyzeUnknownProcessor(), GetCPUFrequency(), GetCPUInfo(), GetStandardProcessorConfiguration(), and GetStandardProcessorExtensions().
bool CProcessor::CPUInfoToText | ( | char * | strBuffer, | |
unsigned int | uiMaxLen | |||
) |
Definition at line 2120 of file llprocessor.cpp.
References ProcessorExtensions::_3DNOW_InstructionExtensions, ProcessorInfo::_Data, ProcessorExtensions::_E3DNOW_InstructionExtensions, ProcessorInfo::_Ext, ProcessorInfo::_Instruction, ProcessorInfo::_L1, ProcessorInfo::_L2, ProcessorInfo::_L3, ProcessorInfo::_Trace, ProcessorExtensions::AA64_AMD64BitArchitecture, ProcessorExtensions::ACPI_ThermalMonitorAndClockControl, ProcessorExtensions::Altivec_Extensions, ProcessorExtensions::APIC_AdvancedProgrammableInterruptController, ProcessorExtensions::APIC_ID, BOOLADD, ProcessorExtensions::CLFLUSH_InstructionCacheLineSize, ProcessorExtensions::CLFSH_CFLUSH_Instruction, ProcessorExtensions::CMOV_ConditionalMoveAndCompareInstructions, COPYADD, CPUInfo, ProcessorExtensions::CX8_COMPXCHG8B_Instruction, ProcessorL1Cache::Data, ProcessorExtensions::DE_DebuggingExtensions, ProcessorExtensions::DS_DebugStore, ProcessorExtensions::EMMX_MultimediaExtensions, f, ProcessorExtensions::FGPAT_PageAttributeTable, FORMATADD, ProcessorExtensions::FPU_FloatingPointUnit, ProcessorExtensions::FXSR_FastStreamingSIMD_ExtensionsSaveRestore, GetCPUFrequency(), GetCPUInfo(), ProcessorExtensions::HT_HyperThreading, ProcessorExtensions::IA64_Intel64BitArchitecture, ProcessorL1Cache::Instruction, ProcessorInfo::MaxSupportedExtendedLevel, ProcessorInfo::MaxSupportedLevel, ProcessorExtensions::MCA_MachineCheckArchitecture, ProcessorExtensions::MCE_MachineCheckException, ProcessorExtensions::MMX_MultimediaExtensions, ProcessorExtensions::MSR_ModelSpecificRegisters, ProcessorExtensions::MTRR_MemoryTypeRangeRegisters, ProcessorExtensions::PAE_PhysicalAddressExtension, ProcessorExtensions::PGE_PTE_GlobalFlag, ProcessorExtensions::PN_ProcessorSerialNumber, ProcessorExtensions::PSE36_36bitPageSizeExtension, ProcessorExtensions::PSE_PageSizeExtensions, ProcessorExtensions::SEP_FastSystemCall, ProcessorExtensions::SS_SelfSnoop, ProcessorExtensions::SSE2_StreamingSIMD2_Extensions, ProcessorExtensions::SSE_StreamingSIMD_Extensions, ProcessorInfo::strBrandID, ProcessorCache::strCache, ProcessorInfo::strFamily, ProcessorInfo::strModel, ProcessorInfo::strProcessorSerial, ProcessorTLB::strTLB, ProcessorInfo::strType, ProcessorInfo::strVendor, ProcessorExtensions::TM_ThermalMonitor, ProcessorExtensions::TSC_TimeStampCounter, ProcessorInfo::uiExtendedFamily, ProcessorInfo::uiExtendedModel, uqwFrequency, and ProcessorExtensions::VME_Virtual8086ModeEnhancements.
Referenced by LLCPUInfo::stream(), and WriteInfoTextFile().
void CProcessor::DecodeProcessorConfiguration | ( | unsigned int | cfg | ) | [private] |
Definition at line 1128 of file llprocessor.cpp.
References ProcessorInfo::_Data, ProcessorInfo::_Instruction, ProcessorInfo::_L1, ProcessorInfo::_L2, ProcessorInfo::_L3, ProcessorInfo::_Trace, ProcessorCache::bPresent, ProcessorTLB::bPresent, ProcessorCache::bSectored, CPUInfo, ProcessorL1Cache::Data, ProcessorL1Cache::Instruction, ProcessorTLB::strPageSize, ProcessorCache::strSize, ProcessorCache::uiAssociativeWays, ProcessorTLB::uiAssociativeWays, ProcessorTLB::uiEntries, and ProcessorCache::uiLineSize.
Referenced by GetStandardProcessorConfiguration().
F64 CProcessor::GetCPUFrequency | ( | unsigned int | uiMeasureMSecs | ) |
Definition at line 116 of file llprocessor.cpp.
References CheckCPUIDPresence(), end, start, and uqwFrequency.
Referenced by LLFastTimer::countsPerSecond(), CPUInfoToText(), and LLCPUInfo::LLCPUInfo().
const ProcessorInfo * CProcessor::GetCPUInfo | ( | ) |
Definition at line 1572 of file llprocessor.cpp.
References AnalyzeAMDProcessor(), AnalyzeIntelProcessor(), AnalyzeUnknownProcessor(), CheckCPUIDPresence(), CPUInfo, ProcessorInfo::MaxSupportedExtendedLevel, ProcessorInfo::MaxSupportedLevel, NULL, and ProcessorInfo::strVendor.
Referenced by CPUInfoToText(), and LLCPUInfo::LLCPUInfo().
void CProcessor::GetStandardProcessorConfiguration | ( | ) | [private] |
Definition at line 1445 of file llprocessor.cpp.
References CheckCPUIDPresence(), count, CPUInfo, DecodeProcessorConfiguration(), and ProcessorInfo::MaxSupportedLevel.
Referenced by AnalyzeAMDProcessor(), and AnalyzeIntelProcessor().
void CProcessor::GetStandardProcessorExtensions | ( | ) | [private] |
Definition at line 1512 of file llprocessor.cpp.
References ProcessorInfo::_Ext, ProcessorExtensions::ACPI_ThermalMonitorAndClockControl, ProcessorExtensions::Altivec_Extensions, ProcessorExtensions::APIC_AdvancedProgrammableInterruptController, ProcessorExtensions::APIC_ID, CheckBit, CheckCPUIDPresence(), ProcessorExtensions::CLFLUSH_InstructionCacheLineSize, ProcessorExtensions::CLFSH_CFLUSH_Instruction, ProcessorExtensions::CMOV_ConditionalMoveAndCompareInstructions, CPUInfo, ProcessorExtensions::CX8_COMPXCHG8B_Instruction, ProcessorExtensions::DE_DebuggingExtensions, ProcessorExtensions::DS_DebugStore, ProcessorExtensions::FGPAT_PageAttributeTable, ProcessorExtensions::FPU_FloatingPointUnit, ProcessorExtensions::FXSR_FastStreamingSIMD_ExtensionsSaveRestore, ProcessorExtensions::HT_HyperThreading, ProcessorExtensions::HT_HyterThreadingSiblings, ProcessorExtensions::IA64_Intel64BitArchitecture, ProcessorExtensions::MCA_MachineCheckArchitecture, ProcessorExtensions::MCE_MachineCheckException, ProcessorExtensions::MMX_MultimediaExtensions, ProcessorExtensions::MSR_ModelSpecificRegisters, ProcessorExtensions::MTRR_MemoryTypeRangeRegisters, ProcessorExtensions::PAE_PhysicalAddressExtension, ProcessorExtensions::PGE_PTE_GlobalFlag, ProcessorExtensions::PN_ProcessorSerialNumber, ProcessorExtensions::PSE36_36bitPageSizeExtension, ProcessorExtensions::PSE_PageSizeExtensions, ProcessorExtensions::SEP_FastSystemCall, ProcessorExtensions::SS_SelfSnoop, ProcessorExtensions::SSE2_StreamingSIMD2_Extensions, ProcessorExtensions::SSE_StreamingSIMD_Extensions, ProcessorExtensions::TM_ThermalMonitor, ProcessorExtensions::TSC_TimeStampCounter, and ProcessorExtensions::VME_Virtual8086ModeEnhancements.
Referenced by AnalyzeAMDProcessor(), AnalyzeIntelProcessor(), and AnalyzeUnknownProcessor().
void CProcessor::TranslateProcessorConfiguration | ( | ) | [private] |
Definition at line 1427 of file llprocessor.cpp.
References ProcessorInfo::_Data, ProcessorInfo::_Instruction, ProcessorInfo::_L1, ProcessorInfo::_L2, ProcessorInfo::_L3, ProcessorInfo::_Trace, CPUInfo, ProcessorL1Cache::Data, ProcessorL1Cache::Instruction, TranslateCache(), and TranslateTLB().
Referenced by AnalyzeAMDProcessor(), and AnalyzeIntelProcessor().
bool CProcessor::WriteInfoTextFile | ( | const char * | strFilename | ) |
Definition at line 171 of file llprocessor.h.
Referenced by AnalyzeAMDProcessor(), AnalyzeIntelProcessor(), AnalyzeUnknownProcessor(), CProcessor(), CPUInfoToText(), DecodeProcessorConfiguration(), GetCPUInfo(), GetStandardProcessorConfiguration(), GetStandardProcessorExtensions(), and TranslateProcessorConfiguration().
char CProcessor::strCPUName[128] |
Definition at line 170 of file llprocessor.h.
Referenced by AnalyzeAMDProcessor(), AnalyzeIntelProcessor(), AnalyzeUnknownProcessor(), CProcessor(), and LLCPUInfo::LLCPUInfo().
Definition at line 169 of file llprocessor.h.
Referenced by CProcessor(), CPUInfoToText(), and GetCPUFrequency().