mirror of
https://github.com/Dr-Noob/cpufetch.git
synced 2026-03-25 07:50:40 +01:00
[v1.03][PPC] Fix bug where /sys/devices/system/cpu/cpu*/topology/physical_package_id contains -1 by adding a new way of finding the number of sockets. This happened in #178 and most probably in #153 too
This commit is contained in:
@@ -1,16 +1,18 @@
|
||||
#include <errno.h>
|
||||
|
||||
#include "../common/udev.h"
|
||||
#include "../common/global.h"
|
||||
#include "udev.h"
|
||||
|
||||
#define _PATH_TOPO_CORE_ID "topology/core_id"
|
||||
#define _PATH_TOPO_PACKAGE_ID "topology/physical_package_id"
|
||||
#define _PATH_TOPO_CORE_ID "topology/core_id"
|
||||
#define _PATH_TOPO_PACKAGE_ID "topology/physical_package_id"
|
||||
|
||||
bool fill_array_from_sys(int *core_ids, int total_cores, char* SYS_PATH) {
|
||||
int filelen;
|
||||
char* buf;
|
||||
char* end;
|
||||
char path[128];
|
||||
memset(path, 0, 128);
|
||||
|
||||
for(int i=0; i < total_cores; i++) {
|
||||
sprintf(path, "%s%s/cpu%d/%s", _PATH_SYS_SYSTEM, _PATH_SYS_CPU, i, SYS_PATH);
|
||||
@@ -36,5 +38,22 @@ bool fill_core_ids_from_sys(int *core_ids, int total_cores) {
|
||||
}
|
||||
|
||||
bool fill_package_ids_from_sys(int* package_ids, int total_cores) {
|
||||
return fill_array_from_sys(package_ids, total_cores, _PATH_TOPO_PACKAGE_ID);
|
||||
bool status = fill_array_from_sys(package_ids, total_cores, _PATH_TOPO_PACKAGE_ID);
|
||||
if(status) {
|
||||
// fill_array_from_sys completed successfully, but we
|
||||
// must to check the integrity of the package_ids array
|
||||
for(int i=0; i < total_cores; i++) {
|
||||
if(package_ids[i] == -1) {
|
||||
printWarn("fill_package_ids_from_sys: package_ids[%d] = -1", i);
|
||||
return false;
|
||||
}
|
||||
else if(package_ids[i] >= total_cores || package_ids[i] < 0) {
|
||||
printBug("fill_package_ids_from_sys: package_ids[%d] = %d", i, package_ids[i]);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user