mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-26 13:32:08 +00:00
104 lines
No EOL
4 KiB
C#
104 lines
No EOL
4 KiB
C#
/* Licensed under the terms of the New BSD License.
|
|
*
|
|
* Authors:
|
|
* Gero Landmann (gero_dev) <gero@myzeug.de>
|
|
*/
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace Cosmos.Hardware.SMBIOS.Table
|
|
{
|
|
public class ProcessorInformation : BaseInfo, IProcessorInformation
|
|
{
|
|
|
|
public string SocketDesignation { get; private set; }
|
|
public byte ProcessorType { get; private set; }
|
|
public byte ProcessorFamily { get; private set; }
|
|
public string ProcessorManufacturer { get; private set; }
|
|
public ulong ProcessorID { get; private set; }
|
|
public string ProcessorVersion { get; private set; }
|
|
public byte Voltage { get; private set; }
|
|
public ushort ExternalClock { get; private set; }
|
|
public ushort MaxSpeed { get; private set; }
|
|
public ushort CurrentSpeed { get; private set; }
|
|
public byte Status { get; private set; }
|
|
public byte ProcessorUpgrade { get; private set; }
|
|
public ushort L1CacheHandle { get; private set; }
|
|
public ushort L2CacheHandle { get; private set; }
|
|
public ushort L3CacheHandle { get; private set; }
|
|
public string SerialNumber { get; private set; }
|
|
public string AssetTag { get; private set; }
|
|
public string PartNumber { get; private set; }
|
|
public byte CoreCount { get; private set; }
|
|
public byte CoreEnabled { get; private set; }
|
|
public byte ThreadCount { get; private set; }
|
|
public ushort ProcessorCharacteristics { get; private set; }
|
|
public ushort ProcessorFamily2 { get; private set; }
|
|
|
|
public ProcessorInformation( BaseTable bt )
|
|
{
|
|
if( bt.TableType != (int) TableTypes.ProcessorInformation )
|
|
return;
|
|
|
|
if( bt.SMBIOSMinorVersion >= 0 )
|
|
{
|
|
Handle = bt.Handle;
|
|
HardwareType = bt.TableType;
|
|
SocketDesignation = bt.GetString( bt.Data.Read8Unchecked( 0x04 ) );
|
|
ProcessorType = bt.Data.Read8Unchecked( 0x05 );
|
|
ProcessorFamily = bt.Data.Read8Unchecked( 0x06 );
|
|
ProcessorManufacturer = bt.GetString( bt.Data.Read8Unchecked( 0x07 ) );
|
|
ProcessorID = bt.Data.Read64Unchecked( 0x08 );
|
|
ProcessorVersion = bt.GetString( bt.Data.Read8Unchecked( 0x10 ) );
|
|
Voltage = bt.Data.Read8Unchecked( 0x11 );
|
|
ExternalClock = bt.Data.Read16Unchecked( 0x12 );
|
|
MaxSpeed = bt.Data.Read16Unchecked( 0x14 );
|
|
CurrentSpeed = bt.Data.Read16Unchecked( 0x16 );
|
|
Status = bt.Data.Read8Unchecked( 0x18 );
|
|
ProcessorUpgrade = bt.Data.Read8Unchecked( 0x19 );
|
|
}
|
|
else return;
|
|
|
|
if( bt.SMBIOSMinorVersion >= 1 )
|
|
{
|
|
L1CacheHandle = bt.Data.Read16Unchecked( 0x1A );
|
|
L2CacheHandle = bt.Data.Read16Unchecked( 0x1C );
|
|
L3CacheHandle = bt.Data.Read16Unchecked( 0x1E );
|
|
}
|
|
else return;
|
|
|
|
if( bt.SMBIOSMinorVersion >= 3 )
|
|
{
|
|
|
|
SerialNumber = bt.GetString( bt.Data.Read8Unchecked( 0x20 ) );
|
|
AssetTag = bt.GetString( bt.Data.Read8Unchecked( 0x21 ) );
|
|
PartNumber = bt.GetString( bt.Data.Read8Unchecked( 0x22 ) );
|
|
}
|
|
else return;
|
|
|
|
if( bt.SMBIOSMinorVersion >= 5 )
|
|
{
|
|
|
|
CoreCount = bt.Data.Read8Unchecked( 0x23 );
|
|
CoreEnabled = bt.Data.Read8Unchecked( 0x24 );
|
|
ThreadCount = bt.Data.Read8Unchecked( 0x25 );
|
|
ProcessorCharacteristics = bt.Data.Read16Unchecked( 0x26 );
|
|
}
|
|
else return;
|
|
|
|
if( bt.SMBIOSMinorVersion >= 6 )
|
|
{
|
|
ProcessorFamily2 = bt.Data.Read16Unchecked( 0x28 );
|
|
}
|
|
else return;
|
|
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return base.ToString();
|
|
}
|
|
}
|
|
} |