Staging
v0.8.1
https://github.com/torvalds/linux
Raw File
Tip revision: 7d1311b93e58ed55f3a31cc8f94c4b8fe988a2b9 authored by Linus Torvalds on 16 August 2014, 16:40:26 UTC
Linux 3.17-rc1
Tip revision: 7d1311b
tsc.c
#include <linux/compiler.h>
#include <linux/types.h>

#include "tsc.h"

u64 perf_time_to_tsc(u64 ns, struct perf_tsc_conversion *tc)
{
	u64 t, quot, rem;

	t = ns - tc->time_zero;
	quot = t / tc->time_mult;
	rem  = t % tc->time_mult;
	return (quot << tc->time_shift) +
	       (rem << tc->time_shift) / tc->time_mult;
}

u64 tsc_to_perf_time(u64 cyc, struct perf_tsc_conversion *tc)
{
	u64 quot, rem;

	quot = cyc >> tc->time_shift;
	rem  = cyc & ((1 << tc->time_shift) - 1);
	return tc->time_zero + quot * tc->time_mult +
	       ((rem * tc->time_mult) >> tc->time_shift);
}

u64 __weak rdtsc(void)
{
	return 0;
}
back to top