util.c - libzahl - big integer library | |
git clone git://git.suckless.org/libzahl | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
util.c (798B) | |
--- | |
1 #define COMPILING_UTIL_C | |
2 #include "util.h" | |
3 | |
4 | |
5 char timebuf[512]; | |
6 unsigned long long int freq; | |
7 | |
8 | |
9 void | |
10 benchmark_init(void) | |
11 { | |
12 #if defined(__linux__) && defined(USE_RDTSC) | |
13 cpu_set_t cpuset; | |
14 FILE *f; | |
15 char *line = 0; | |
16 size_t size = 0; | |
17 char path[PATH_MAX]; | |
18 CPU_ZERO(&cpuset); | |
19 CPU_SET(USE_CPU, &cpuset); | |
20 sched_setaffinity(getpid(), sizeof(cpuset), &cpuset); | |
21 sprintf(path, "/sys/devices/system/cpu/cpu%i/cpufreq/cpuinfo_max… | |
22 f = fopen(path, "r"); | |
23 if (getline(&line, &size, f) < 0) | |
24 abort(); | |
25 fclose(f); | |
26 freq = strtoull(line, 0, 10); | |
27 free(line); | |
28 | |
29 #elif defined(__linux__) | |
30 cpu_set_t cpuset; | |
31 CPU_ZERO(&cpuset); | |
32 CPU_SET(USE_CPU, &cpuset); | |
33 sched_setaffinity(getpid(), sizeof(cpuset), &cpuset); | |
34 | |
35 #else | |
36 fprintf(stderr, "WARNING: Don't know how to set CPU affinity.\n"… | |
37 | |
38 #endif | |
39 } |