From 95d1b8d7669eb087ca74170a1d5df32bc9adce62 Mon Sep 17 00:00:00 2001 From: Damien Guard Date: Sat, 20 Jul 2019 02:22:38 -0700 Subject: [PATCH] Add SMBIOS Processor Family (#101) --- Hardware/SMBIOS.cs | 220 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 220 insertions(+) diff --git a/Hardware/SMBIOS.cs b/Hardware/SMBIOS.cs index a2567a8..ad4b692 100644 --- a/Hardware/SMBIOS.cs +++ b/Hardware/SMBIOS.cs @@ -243,6 +243,8 @@ namespace OpenHardwareMonitor.Hardware { r.AppendLine(Processor.ManufacturerName); r.Append("Processor Version: "); r.AppendLine(Processor.Version); + r.Append("Processor Family: "); + r.AppendLine(Processor.Family.ToString()); r.Append("Processor Core Count: "); r.AppendLine(Processor.CoreCount.ToString()); r.Append("Processor Core Enabled: "); @@ -621,6 +623,8 @@ namespace OpenHardwareMonitor.Hardware { this.CoreEnabled = GetByte(0x24) != 255 ? GetByte(0x24) : GetWord(0x2C); this.ThreadCount = GetByte(0x25) != 255 ? GetByte(0x25) : GetWord(0x2E); this.ExternalClock = GetWord(0x12); + var family = GetByte(0x06); + this.Family = (ProcessorFamily) (family == 254 ? GetWord(0x28) : family); } public string ManufacturerName { get; private set; } @@ -634,6 +638,222 @@ namespace OpenHardwareMonitor.Hardware { public int ThreadCount { get; private set; } public int ExternalClock { get; private set; } + + public ProcessorFamily Family { get; private set; } + } + + public enum ProcessorFamily { + Other = 1, + Intel8086 = 3, + Intel80286 = 4, + Intel386, + Intel486, + Intel8087, + Intel80287, + Intel80387, + Intel80487, + IntelPentium, + IntelPentiumPro, + IntelPentiumII, + IntelPentiumMMX, + IntelCeleron, + IntelPentiumIIXeon, + IntelPentiumIII, + M1, + M2, + IntelCeleronM, + IntelPentium4HT, + AmdDuron = 24, + AmdK5, + AmdK6, + AmdK62, + AmdK63, + AmdAthlon, + Amd2900, + AmdK62Plus, + PowerPc, + PowerPc601, + PowerPc603, + PowerPc603Plus, + PowerPc604, + PowerPc620, + PowerPcx704, + PowerPc750, + IntelCoreDuo, + IntelCoreDuoMobile, + IntelCoreSoloMobile, + IntelAtom, + IntelCoreM, + IntelCoreM3, + IntelCoreM5, + IntelCoreM7, + Alpha, + Alpha21064, + Alpha21066, + Alpha21164, + Alpha21164Pc, + Alpha21164a, + Alpha21264, + Alpha21364, + AmdTurionIIUltraDualCoreMobileM, + AmdTurionDualCoreMobileM, + AmdAthlonIIDualCoreM, + AmdOpteron6100Series, + AmdOpteron4100Series, + AmdOpteron6200Series, + AmdOpteron4200Series, + AmdFxSeries, + Mips, + MipsR4000, + MipsR4200, + MipsR4400, + MipsR4600, + MipsR10000, + AmdCSeries, + AmdESeries, + AmdASeries, + AmdGSeries, + AmdZSeries, + AmdRSeries, + AmdOpteron4300Series, + AmdOpteron6300Series, + AmdOpteron3300Series, + AmdFireProSeries, + Sparc, + SuperSparc, + MicroSparcII, + MicroSparcIIep, + UltraSparc, + UltraSparcII, + UltraSparcIIi, + UltraSparcIII, + UltraSparcIIIi, + Motorola68040 = 96, + Motorola68xxx, + Motorola68000, + Motorola68010, + Motorola68020, + Motorola68030, + AmdAthlonX4QuadCore, + AmdOpteronX1000Series, + AmdOpteronX2000Series, + AmdOpteronASeries, + AmdOpteronX3000Series, + AmdZen, + Hobbit = 112, + CrusoeTm5000 = 120, + CrusoeTm3000, + EfficeonTm8000, + Weitek = 128, + IntelItanium = 130, + AmdAthlon64, + AmdOpteron, + AmdSempron, + AmdTurio64Mobile, + AmdOpteronDualCore, + AmdAthlon64X2DualCore, + AmdTurion64X2Mobile, + AmdOpteronQuadCore, + AmdOpteronThirdGen, + AmdPhenomFXQuadCore, + AmdPhenomX4QuadCore, + AmdPhenomX2DualCore, + AmdAthlonX2DualCore, + PaRisc, + PaRisc8500, + PaRisc8000, + PaRisc7300LC, + PaRisc7200, + PaRisc7100LC, + PaRisc7100, + V30 = 160, + IntelXeon3200QuadCoreSeries, + IntelXeon3000DualCoreSeries, + IntelXeon5300QuadCoreSeries, + IntelXeon5100DualCoreSeries, + IntelXeon5000DualCoreSeries, + IntelXeonLVDualCore, + IntelXeonULVDualCore, + IntelXeon7100Series, + IntelXeon5400Series, + IntelXeonQuadCore, + IntelXeon5200DualCoreSeries, + IntelXeon7200DualCoreSeries, + IntelXeon7300QuadCoreSeries, + IntelXeon7400QuadCoreSeries, + IntelXeon7400MultiCoreSeries, + IntelPentiumIIIXeon, + IntelPentiumIIISpeedStep, + IntelPentium4, + IntelXeon, + As400, + IntelXeonMP, + AmdAthlonXP, + AmdAthlonMP, + IntelItanium2, + IntelPentiumM, + IntelCeleronD, + IntelPentiumD, + IntelPentiumExtreme, + IntelCoreSolo, + IntelCore2Duo = 191, + IntelCore2Solo, + IntelCore2Extreme, + IntelCore2Quad, + IntelCore2ExtremeMobile, + IntelCore2DuoMobile, + IntelCore2SoloMobile, + IntelCoreI7, + IntelCeleronDualCore, + Ibm390, + PowerPcG4, + PowerPcG5, + Esa390G6, + ZArchitecture, + IntelCoreI5, + IntelCoreI3, + IntelCoreI9, + ViaC7M = 210, + ViaC7D, + ViaC7, + ViaEden, + IntelXeonMultiCore, + IntelXeon3xxxDualCoreSeries, + IntelXeon3xxxQuadCoreSeries, + ViaNano, + IntelXeon5xxxDualCoreSeries, + IntelXeon5xxxQuadCoreSeries, + IntelXeon7xxxDualCoreSeries = 221, + IntelXeon7xxxQuadCoreSeries, + IntelXeon7xxxMultiCoreSeries, + IntelXeon3400MultiCoreSeries, + AmdOpteron3000Series = 228, + AmdSempronII, + AmdOpteronQuadCoreEmbedded, + AmdPhenomTripleCore, + AmdTurionUltraDualCoreMobile, + AmdTurionDualCoreMobile, + AmdTurionDualCore, + AmdAthlonDualCore, + AmdSempronSI, + AmdPhenomII, + AmdAthlonII, + AmdOpteronSixCore, + AmdSempronM, + IntelI860 = 250, + IntelI960, + ArmV7 = 256, + ArmV8, + HitachiSh3, + HitachiSh4, + Arm, + StrongArm, + _686, + MediaGX, + MII, + WinChip, + Dsp, + VideoProcessor } public class MemoryDevice : Structure {