7 #include <sys/sysctl.h>
9 static double cpufrequency
= 0;
11 static void init(void)
15 f
= popen("hinv -c processor | awk '{if ($3==\"MHZ\") print $2*1000000}'","r");
17 if (fscanf(f
,"%lf",&cpufrequency
) < 1) cpufrequency
= 0;
19 if (!cpufrequency
) return;
22 long long cpucycles_sgi(void)
26 if (!cpufrequency
) init();
27 clock_gettime(CLOCK_SGI_CYCLE
,&t
);
29 result
*= 0.000000001;
30 result
+= (double) t
.tv_sec
;
31 result
*= cpufrequency
;
35 long long cpucycles_sgi_persecond(void)
37 if (!cpufrequency
) init();