aboutsummaryrefslogtreecommitdiff
path: root/getcore.c
diff options
context:
space:
mode:
Diffstat (limited to 'getcore.c')
-rw-r--r--getcore.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/getcore.c b/getcore.c
index 23bf946..51ac0e4 100644
--- a/getcore.c
+++ b/getcore.c
@@ -23,6 +23,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <glib.h>
+#include <unistd.h>
unsigned int cores;
@@ -33,13 +34,11 @@ unsigned int cores;
bool core_exists(unsigned int core)
{
FILE* fd;
- char path[80];
- char corestr[4];
+ char path[128];
- sprintf(corestr, "%d", core);
- sprintf(path, "/sys/devices/system/cpu/cpu%s/cpufreq/cpuinfo_cur_freq", corestr);
+ sprintf(path, "/sys/devices/system/cpu/cpu%d/cpufreq", core);
debug("Checking if core %d exists by opening '%s'\n",core,path);
- return (gboolean)(fd = fopen(path, "r"));
+ return (access(path, F_OK) != -1);
}
@@ -49,7 +48,9 @@ bool core_exists(unsigned int core)
void gc_init()
{
cores = 0;
- while(core_exists(++cores));
+ while(core_exists(cores))
+ cores++;
+
debug("Found %d cores\n",cores);
}