Changes to update Tomato RAF.
[tomato.git] / release / src / router / dnscrypt / src / libnacl / cpucycles / amd64cpuspeed.c
blob7e89511cb15f900c264cf16c78fcca0ce3cbf95b
1 #include <stdio.h>
2 #include <sys/types.h>
3 #include <sys/param.h>
4 #include <sys/sysctl.h>
6 long long cpucycles_amd64cpuspeed(void)
8 unsigned long long result;
9 asm volatile(".byte 15;.byte 49;shlq $32,%%rdx;orq %%rdx,%%rax"
10 : "=a" (result) :: "%rdx");
11 return result;
14 long long cpucycles_amd64cpuspeed_persecond(void)
16 int oid[2];
17 int val;
18 size_t size;
19 oid[0] = CTL_HW;
20 oid[1] = HW_CPUSPEED;
21 size = sizeof val;
22 if (sysctl(oid,2,&val,&size,0,0) == -1) return 0;
23 if (size != sizeof val) return 0;
24 return val * 1000000LL;