From 70496c9bde8f71ecbe564ab4a00c16648b8f3ab1 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sat, 24 Feb 2024 09:22:58 +0100 Subject: Improved cpu detection for cpuid --- src/tools/my_cpuid.c | 45 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/tools/my_cpuid.c b/src/tools/my_cpuid.c index 09dbb4af..e4de411a 100644 --- a/src/tools/my_cpuid.c +++ b/src/tools/my_cpuid.c @@ -12,13 +12,34 @@ int get_cpuMhz() { int MHz = 0; - FILE *f = fopen("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq", "r"); - if(f) { - int r; - if(1==fscanf(f, "%d", &r)) - MHz = r/1000; - fclose(f); - } + char *p = NULL; + if((p=getenv("BOX64_CPUMHZ"))) { + MHz = atoi(p); + return MHz; + } + char cpumhz[200]; + sprintf(cpumhz, "%d", MHz?:1000); + setenv("BOX64_CPUMHZ", cpumhz, 1); // set temp value incase box64 gets recursively called + + int cpucore = 0; + while(cpucore!=-1) { + char cpufreq[4096]; + sprintf(cpufreq, "/sys/devices/system/cpu/cpu%d/cpufreq/cpuinfo_max_freq", cpucore); + FILE *f = fopen(cpufreq, "r"); + if(f) { + int r; + if(1==fscanf(f, "%d", &r)) { + r /= 1000; + if(MHz