mvebu: add support for the Linksys WRT3200ACM (Rango)
[openwrt-github/.git] / package / devel / perf / musl-compat.h
1 #ifndef __PERF_MUSL_COMPAT_H
2 #define __PERF_MUSL_COMPAT_H
3
4 #ifndef __ASSEMBLER__
5
6 #include <sys/ioctl.h>
7 #include <asm/unistd.h>
8 #include <unistd.h>
9 #include <stdio.h>
10
11 #undef _IOWR
12 #undef _IOR
13 #undef _IOW
14 #undef _IOC
15 #undef _IO
16
17 #define _SC_LEVEL1_DCACHE_LINESIZE -1
18
19 static inline long sysconf_wrap(int name)
20 {
21         FILE *f;
22         int val;
23
24         switch (name) {
25         case _SC_LEVEL1_DCACHE_LINESIZE:
26                 f = fopen("/sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size", "r");
27                 if (!f)
28                         return 0;
29
30                 if (fscanf(f, "%d", &val) != 1)
31                         return 0;
32
33                 fclose(f);
34                 return val;
35         default:
36                 return sysconf(name);
37         }
38 }
39
40 #define sysconf(_n) sysconf_wrap(_n)
41
42 #endif
43 #endif