int hptl_initclk (hptl_clock *clk, hptl_config *conf) { hptl_config config; int i, k = 1; #ifdef HPTL_DEBUG printf ("[HPTL] INFO: Starting HPTL %s\n", hptl_VERSION); #endif // load config if (conf == NULL) { config.precision = 7; config.clockspeed = 0; } else { config = *conf; } if (config.precision > 9) { #ifdef HPTL_DEBUG printf ("[HPTLib] Error: precision %u>9\n", config.precision); #endif return -1; } // config precision for (i = 0; i < config.precision; i++) { k *= 10; } PRECCISION = k; #ifdef HPTL_ONLYLINUXAPI // do nothing more specific #else // Specific and advanced options // load clockspeed if (config.clockspeed == 0) { set_tsc_freq (clk); } else { __hptl_hz = config.clockspeed; } hptl_syncclk (clk); if (config.clockspeed == 0) { hptl_calibrate (clk, 0); } #ifdef HPTL_DEBUG printf ( "[HPTLib] Started : Hz:%lu cicles:%lu tof:%lu\n", __hptl_hz, __hptl_cicles, __hptl_time); #endif #endif return 0; // always return 0 }
int rte_eal_timer_init(void) { set_tsc_freq(); return 0; }