From 540d615641f794223db690ba929061bb38e806c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=B6ller?= Date: Mon, 26 Apr 2010 18:51:22 +0000 Subject: [PATCH] Added a processorIndex to CPU classes for multi CPU support. --- Hardware/CPU/AMD0FCPU.cs | 8 +++++--- Hardware/CPU/AMD10CPU.cs | 12 +++++++----- Hardware/CPU/CPUGroup.cs | 6 +++--- Hardware/CPU/IntelCPU.cs | 6 ++++-- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/Hardware/CPU/AMD0FCPU.cs b/Hardware/CPU/AMD0FCPU.cs index 3683139..480722a 100644 --- a/Hardware/CPU/AMD0FCPU.cs +++ b/Hardware/CPU/AMD0FCPU.cs @@ -48,6 +48,7 @@ namespace OpenHardwareMonitor.Hardware.CPU { private string name; private Image icon; + private int processorIndex; private uint pciAddress; private Sensor[] coreTemperatures; @@ -63,8 +64,9 @@ namespace OpenHardwareMonitor.Hardware.CPU { private const byte THERM_SENSE_CORE_SEL_CPU0 = 0x4; private const byte THERM_SENSE_CORE_SEL_CPU1 = 0x0; - public AMD0FCPU(CPUID[][] cpuid) { + public AMD0FCPU(int processorIndex, CPUID[][] cpuid) { + this.processorIndex = processorIndex; this.name = cpuid[0][0].Name; this.icon = Utilities.EmbeddedResources.GetImage("cpu.png"); @@ -110,7 +112,7 @@ namespace OpenHardwareMonitor.Hardware.CPU { } pciAddress = WinRing0.FindPciDeviceById(PCI_AMD_VENDOR_ID, - PCI_AMD_0FH_MISCELLANEOUS_DEVICE_ID, 0); + PCI_AMD_0FH_MISCELLANEOUS_DEVICE_ID, (byte)processorIndex); Update(); } @@ -120,7 +122,7 @@ namespace OpenHardwareMonitor.Hardware.CPU { } public string Identifier { - get { return "/amdcpu/0"; } + get { return "/amdcpu/" + processorIndex; } } public Image Icon { diff --git a/Hardware/CPU/AMD10CPU.cs b/Hardware/CPU/AMD10CPU.cs index b9a16a2..0f181fc 100644 --- a/Hardware/CPU/AMD10CPU.cs +++ b/Hardware/CPU/AMD10CPU.cs @@ -47,6 +47,7 @@ namespace OpenHardwareMonitor.Hardware.CPU { private string name; private Image icon; + private int processorIndex; private uint pciAddress; private Sensor coreTemperature; @@ -60,8 +61,9 @@ namespace OpenHardwareMonitor.Hardware.CPU { private const ushort PCI_AMD_11H_MISCELLANEOUS_DEVICE_ID = 0x1303; private const uint REPORTED_TEMPERATURE_CONTROL_REGISTER = 0xA4; - public AMD10CPU(CPUID[][] cpuid) { + public AMD10CPU(int processorIndex, CPUID[][] cpuid) { + this.processorIndex = processorIndex; this.name = cpuid[0][0].Name; this.icon = Utilities.EmbeddedResources.GetImage("cpu.png"); @@ -88,11 +90,11 @@ namespace OpenHardwareMonitor.Hardware.CPU { new ParameterDescription("Offset", "Temperature offset.", 0) }); - pciAddress = WinRing0.FindPciDeviceById(PCI_AMD_VENDOR_ID, - PCI_AMD_10H_MISCELLANEOUS_DEVICE_ID, 0); + pciAddress = WinRing0.FindPciDeviceById(PCI_AMD_VENDOR_ID, + PCI_AMD_10H_MISCELLANEOUS_DEVICE_ID, (byte)processorIndex); if (pciAddress == 0xFFFFFFFF) pciAddress = WinRing0.FindPciDeviceById(PCI_AMD_VENDOR_ID, - PCI_AMD_11H_MISCELLANEOUS_DEVICE_ID, 0); + PCI_AMD_11H_MISCELLANEOUS_DEVICE_ID, (byte)processorIndex); Update(); } @@ -102,7 +104,7 @@ namespace OpenHardwareMonitor.Hardware.CPU { } public string Identifier { - get { return "/amdcpu/0"; } + get { return "/amdcpu/" + processorIndex; } } public Image Icon { diff --git a/Hardware/CPU/CPUGroup.cs b/Hardware/CPU/CPUGroup.cs index ee81551..2298972 100644 --- a/Hardware/CPU/CPUGroup.cs +++ b/Hardware/CPU/CPUGroup.cs @@ -119,15 +119,15 @@ namespace OpenHardwareMonitor.Hardware.CPU { switch (threads[0].Vendor) { case Vendor.Intel: - hardware.Add(new IntelCPU(coreThreads)); + hardware.Add(new IntelCPU(index, coreThreads)); break; case Vendor.AMD: switch (threads[0].Family) { case 0x0F: - hardware.Add(new AMD0FCPU(coreThreads)); + hardware.Add(new AMD0FCPU(index, coreThreads)); break; case 0x10: - hardware.Add(new AMD10CPU(coreThreads)); + hardware.Add(new AMD10CPU(index, coreThreads)); break; default: break; diff --git a/Hardware/CPU/IntelCPU.cs b/Hardware/CPU/IntelCPU.cs index 888753b..4239eff 100644 --- a/Hardware/CPU/IntelCPU.cs +++ b/Hardware/CPU/IntelCPU.cs @@ -48,6 +48,7 @@ using System.Text; namespace OpenHardwareMonitor.Hardware.CPU { public class IntelCPU : Hardware, IHardware { + private int processorIndex; private CPUID[][] cpuid; private int coreCount; @@ -93,8 +94,9 @@ namespace OpenHardwareMonitor.Hardware.CPU { return result; } - public IntelCPU(CPUID[][] cpuid) { + public IntelCPU(int processorIndex, CPUID[][] cpuid) { + this.processorIndex = processorIndex; this.cpuid = cpuid; this.coreCount = cpuid.Length; this.name = cpuid[0][0].Name; @@ -236,7 +238,7 @@ namespace OpenHardwareMonitor.Hardware.CPU { } public string Identifier { - get { return "/intelcpu/0"; } + get { return "/intelcpu/" + processorIndex; } } public Image Icon {