JCL Help:TCpuInfo

From Project JEDI Wiki
Jump to navigationJump to search


Summary

The TCpuInfo record is used by GetCpuInfo and returns the requested processor information.


Pascal

 public TCpuInfo = record
HasInstruction: Boolean;
AES: Boolean;
MMX: Boolean;
ExMMX: Boolean;
_3DNow: Boolean;
Ex3DNow: Boolean;
SSE: TSSESupports;
IsFDIVOK: Boolean;
Is64Bits: Boolean;
DEPCapable: Boolean;
HasCacheInfo: Boolean;
HasExtendedInfo: Boolean;
PType: Byte;
Family: Byte;
ExtendedFamily: Byte;
Model: Byte;
ExtendedModel: Byte;
Stepping: Byte;
Features: Cardinal;
FrequencyInfo: TFreqInfo;
VendorIDString: array [0..11] of AnsiChar;
Manufacturer: array [0..9] of AnsiChar;
CpuName: array [0..47] of AnsiChar;
L1DataCacheSize: Cardinal;
L1DataCacheLineSize: Byte;
L1DataCacheAssociativity: Byte;
L1InstructionCacheSize: Cardinal;
L1InstructionCacheLineSize: Byte;
L1InstructionCacheAssociativity: Byte;
L2CacheSize: Cardinal;
L2CacheLineSize: Byte;
L2CacheAssociativity: Byte;
L3CacheSize: Cardinal;
L3CacheLineSize: Byte;
L3CacheAssociativity: Byte;
L3LinesPerSector: Byte;
LogicalCore: Byte;
PhysicalCore: Byte;
HyperThreadingTechnology: Boolean;
HardwareHyperThreadingTechnology: Boolean;
CpuType: Byte;
case Byte of
CPU_TYPE_AMD: (AMDSpecific: TAMDSpecific;);
CPU_TYPE_CYRIX: (CyrixSpecific: TCyrixSpecific;);
CPU_TYPE_INTEL: (IntelSpecific: TIntelSpecific;);
CPU_TYPE_TRANSMETA: (TransmetaSpecific: TTransmetaSpecific;);
CPU_TYPE_VIA: (ViaSpecific: TViaSpecific;);
end;


Members

Members Description
HasInstruction: Boolean; True if the processor supports CPU identification instructions. If False the MMX, Features and FrequencyInfo fields do not contain valid data.
MMX: Boolean; True if the processor supports the MMX extension instructions.
IsFDIVOK: Boolean; True if the FDIV instruction is OK, False if it's flawed.
HasCacheInfo: Boolean; True if the processor specific subrecords contain valid cache information data. If False the IntelSpecific, CyrixSpecific and AMDSpecific subrecords do not contain valid data.
HasExtendedInfo: Boolean; Denotes whether or not the AMD or Cyrix processors have the extended CPUID instruction. This affects the possible flags in the Features field. If False the Features member does not contain any of the extended Cyrix and AMD flags (the ones starting with an 'E').
PType: Byte; Denotes the CPU: Type 0 = Normal, 1 = Overdrive
Family: Byte; Processor family. For example, for Intel processors a value of 4 denotes a 486, 5 a Pentium and 6 a Pentium Pro. The family and model members are used together to form a descriptive string in the CpuName member.
Model: Byte; The specific model within a processor family. For example, for an Intel processor with family 6 (Pentium Pro) a value of 1 denotes a Pentium Pro while a 3 denotes a Pentium II. The family and model members are used together to form a descriptive string in the CpuName member.
Stepping: Byte; TODO
Features: Cardinal; Contains a set of flags detailing the features of the processor. The possible flags are processor specific. See Flags for more information.
FrequencyInfo: TFreqInfo; Contains processor freqeuncy information.
VendorIDString: array [0..11] of AnsiChar; Contains a string describing the processor's vendor.
Manufacturer: array [0..9] of AnsiChar; Contains a string describing the processor's manufacturer.
CpuName: array [0..47] of AnsiChar; Contains a descriptive string for the processor (for example "Pentium II Xeon").
CpuType: Byte; Denotes the CPU vendor, can be one of the following values: CPU_TYPE_INTEL, CPU_TYPE_CYRIX, CPU_TYPE_AMD.
IntelSpecific: TIntelSpecific; Contains Intel processor specific information. Only valid if HasCacheInfo is True.
CyrixSpecific: TCyrixSpecific; Contains Cyrix processor specific information. Only valid if HasCacheInfo is True.
AMDSpecific: TAMDSpecific; Contains AMD processor specific information. Only valid if HasCacheInfo is True.


Description

The TCpuInfo record is used by GetCpuInfo and returns the requested processor information.


About

Unit

JclSysInfo


Navigation

Donator

Bryan Coutch


Contribute to this help topic

This documentation wiki is based on the collaborative effort of Project JEDI users. Your edits are welcome in order to improve documentation quality: edit this page