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::AnalyzeIntelProcessor (  )  [private]

bool CProcessor::AnalyzeAMDProcessor (  )  [private]

bool CProcessor::AnalyzeUnknownProcessor (  )  [private]

bool CProcessor::CheckCPUIDPresence (  )  [private]

void CProcessor::DecodeProcessorConfiguration ( unsigned int  cfg  )  [private]

void CProcessor::TranslateProcessorConfiguration (  )  [private]

void CProcessor::GetStandardProcessorConfiguration (  )  [private]

Definition at line 1445 of file llprocessor.cpp.

References CheckCPUIDPresence(), CPUInfo, DecodeProcessorConfiguration(), and ProcessorInfo::MaxSupportedLevel.

Referenced by AnalyzeAMDProcessor(), and AnalyzeIntelProcessor().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Here is the call graph for this function:

Here is the caller graph for this function:

F64 CProcessor::GetCPUFrequency ( unsigned int  uiMeasureMSecs  ) 

Definition at line 116 of file llprocessor.cpp.

References CheckCPUIDPresence(), and uqwFrequency.

Referenced by LLFastTimer::countsPerSecond(), CPUInfoToText(), and LLCPUInfo::LLCPUInfo().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Here is the call graph for this function:

Here is the caller graph for this function:

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

Here is the call graph for this function:

Here is the caller graph for this function:

bool CProcessor::WriteInfoTextFile ( const char *  strFilename  ) 

Definition at line 2224 of file llprocessor.cpp.

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

Here is the call graph for this function:


Member Data Documentation

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 Fri May 16 08:38:30 2008 for SecondLife by  doxygen 1.5.5