Add core number to CPU information structure

pull/16/head
Timothy Pearson 13 years ago
parent 8e467d8b60
commit 7abcdb6683

@ -876,6 +876,10 @@ bool TDEStorageDevice::unmountDevice(TQString* errRet, int* retcode) {
} }
TDECPUDevice::TDECPUDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn) : TDEGenericDevice(dt, dn) { TDECPUDevice::TDECPUDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn) : TDEGenericDevice(dt, dn) {
m_frequency = -1;
m_minfrequency = -1;
m_maxfrequency = -1;
m_corenumber = -1;
} }
TDECPUDevice::~TDECPUDevice() { TDECPUDevice::~TDECPUDevice() {
@ -953,6 +957,10 @@ void TDECPUDevice::internalSetAvailableGovernors(TQStringList gp) {
m_governers = gp; m_governers = gp;
} }
void TDECPUDevice::internalSetCoreNumber(int cn) {
m_corenumber = cn;
}
bool TDECPUDevice::canSetGovernor() { bool TDECPUDevice::canSetGovernor() {
TQString governornode = systemPath() + "/cpufreq/scaling_governor"; TQString governornode = systemPath() + "/cpufreq/scaling_governor";
int rval = access (governornode.ascii(), W_OK); int rval = access (governornode.ascii(), W_OK);
@ -1001,6 +1009,10 @@ void TDECPUDevice::setMaximumScalingFrequency(double fr) {
KGlobal::hardwareDevices()->processModifiedCPUs(); KGlobal::hardwareDevices()->processModifiedCPUs();
} }
int TDECPUDevice::coreNumber() {
return m_corenumber;
}
TDESensorDevice::TDESensorDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn) : TDEGenericDevice(dt, dn) { TDESensorDevice::TDESensorDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn) : TDEGenericDevice(dt, dn) {
} }
@ -2077,6 +2089,10 @@ void TDEHardwareDevices::processModifiedCPUs() {
curline = curline.stripWhiteSpace(); curline = curline.stripWhiteSpace();
processorNumber = curline.toInt(); processorNumber = curline.toInt();
if (!cdevice) cdevice = dynamic_cast<TDECPUDevice*>(findBySystemPath(TQString("/sys/devices/system/cpu/cpu%1").arg(processorNumber))); if (!cdevice) cdevice = dynamic_cast<TDECPUDevice*>(findBySystemPath(TQString("/sys/devices/system/cpu/cpu%1").arg(processorNumber)));
if (cdevice) {
if (cdevice->coreNumber() != processorNumber) modified = true;
cdevice->internalSetCoreNumber(processorNumber);
}
} }
if (curline.startsWith("model name")) { if (curline.startsWith("model name")) {
curline.remove(0, curline.find(":")+1); curline.remove(0, curline.find(":")+1);
@ -2147,6 +2163,8 @@ void TDEHardwareDevices::processModifiedCPUs() {
cdevice = dynamic_cast<TDECPUDevice*>(findBySystemPath(TQString("/sys/devices/system/cpu/cpu%1").arg(processorNumber))); cdevice = dynamic_cast<TDECPUDevice*>(findBySystemPath(TQString("/sys/devices/system/cpu/cpu%1").arg(processorNumber)));
if (cdevice) { if (cdevice) {
// Set up CPU information structures // Set up CPU information structures
if (cdevice->coreNumber() != processorNumber) modified = true;
cdevice->internalSetCoreNumber(processorNumber);
if (cdevice->name() != modelName) modified = true; if (cdevice->name() != modelName) modified = true;
cdevice->internalSetName(modelName); cdevice->internalSetName(modelName);
if (cdevice->vendorName() != vendorName) modified = true; if (cdevice->vendorName() != vendorName) modified = true;

@ -801,6 +801,11 @@ class TDECORE_EXPORT TDECPUDevice : public TDEGenericDevice
*/ */
void setMaximumScalingFrequency(double fr); void setMaximumScalingFrequency(double fr);
/**
* @return an integer with the core number, starting at 0
*/
int coreNumber();
protected: protected:
/** /**
* @param fr a double with the current CPU frequency in MHz, if available * @param fr a double with the current CPU frequency in MHz, if available
@ -856,6 +861,12 @@ class TDECORE_EXPORT TDECPUDevice : public TDEGenericDevice
*/ */
void internalSetAvailableGovernors(TQStringList gp); void internalSetAvailableGovernors(TQStringList gp);
/**
* @param cn an integer with the core number, starting at 0
* @internal
*/
void internalSetCoreNumber(int cn);
private: private:
double m_frequency; double m_frequency;
double m_minfrequency; double m_minfrequency;
@ -866,6 +877,7 @@ class TDECORE_EXPORT TDECPUDevice : public TDEGenericDevice
TQStringList m_tiedprocs; TQStringList m_tiedprocs;
TQStringList m_frequencies; TQStringList m_frequencies;
TQStringList m_governers; TQStringList m_governers;
int m_corenumber;
friend class TDEHardwareDevices; friend class TDEHardwareDevices;
}; };

Loading…
Cancel
Save