0001
0002 #ifndef __PERF_TSC_H
0003 #define __PERF_TSC_H
0004
0005 #include <linux/types.h>
0006
0007 #include "event.h"
0008
0009 struct perf_tsc_conversion {
0010 u16 time_shift;
0011 u32 time_mult;
0012 u64 time_zero;
0013 u64 time_cycles;
0014 u64 time_mask;
0015
0016 bool cap_user_time_zero;
0017 bool cap_user_time_short;
0018 };
0019
0020 struct perf_event_mmap_page;
0021
0022 int perf_read_tsc_conversion(const struct perf_event_mmap_page *pc,
0023 struct perf_tsc_conversion *tc);
0024
0025 u64 perf_time_to_tsc(u64 ns, struct perf_tsc_conversion *tc);
0026 u64 tsc_to_perf_time(u64 cyc, struct perf_tsc_conversion *tc);
0027 u64 rdtsc(void);
0028 double arch_get_tsc_freq(void);
0029
0030 size_t perf_event__fprintf_time_conv(union perf_event *event, FILE *fp);
0031
0032 #endif