Exemplo n.º 1
0
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
}
Exemplo n.º 2
0
int
rte_eal_timer_init(void)
{
	set_tsc_freq();
	return 0;
}