mirror of
https://github.com/openhardwaremonitor/openhardwaremonitor
synced 2025-09-02 07:15:31 +00:00
Added a processorIndex to CPU classes for multi CPU support.
This commit is contained in:
@@ -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 {
|
||||
|
@@ -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");
|
||||
|
||||
@@ -89,10 +91,10 @@ namespace OpenHardwareMonitor.Hardware.CPU {
|
||||
});
|
||||
|
||||
pciAddress = WinRing0.FindPciDeviceById(PCI_AMD_VENDOR_ID,
|
||||
PCI_AMD_10H_MISCELLANEOUS_DEVICE_ID, 0);
|
||||
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 {
|
||||
|
@@ -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;
|
||||
|
@@ -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 {
|
||||
|
Reference in New Issue
Block a user