CProcessor Class Reference

#include <llprocessor.h>

Collaboration diagram for CProcessor:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 CProcessor ()
F64 GetCPUFrequency (unsigned int uiMeasureMSecs)
const ProcessorInfoGetCPUInfo ()
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 ()

Detailed Description

Definition at line 159 of file llprocessor.h.


Constructor & Destructor Documentation

CProcessor::CProcessor (  ) 

Definition at line 105 of file llprocessor.cpp.

References CPUInfo, strCPUName, and uqwFrequency.


Member Function Documentation

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 2224 of file llprocessor.cpp.

References CPUInfoToText(), and LLFile::fopen().


Member Data Documentation

ProcessorInfo CProcessor::CPUInfo

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().

F64 CProcessor::uqwFrequency

Definition at line 169 of file llprocessor.h.

Referenced by CProcessor(), CPUInfoToText(), and GetCPUFrequency().


The documentation for this class was generated from the following files:
Generated on Thu Jul 1 06:11:09 2010 for Second Life Viewer by  doxygen 1.4.7