static void init(void) { unsigned int tbfrequency = 0; size_t tbfrequencylen = sizeof(unsigned int); cpufrequency = osfreq(); sysctl(tbmib,2,&tbfrequency,&tbfrequencylen,0,0); if (tbfrequency > 0) tbcycles = myround(64 * (double) (unsigned long long) cpufrequency / (double) (unsigned long long) tbfrequency); }
static void init(void) { int loop; double guess1; double guess2; cpufrequency = osfreq(); if (!cpufrequency) return; for (tbshift = 0;tbshift < 10;++tbshift) { for (loop = 0;loop < 100;++loop) { guess1 = guesstbcycles(); guess2 = guesstbcycles(); tbcycles = myround(guess1); if (guess1 - tbcycles > 0.1) continue; if (tbcycles - guess1 > 0.1) continue; if (guess2 - tbcycles > 0.1) continue; if (tbcycles - guess2 > 0.1) continue; return; } } tbcycles = 0; }
static void init(void) { cpufrequency = osfreq(); }