1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 20b437860SAdrian Hunter #ifndef __PERF_TSC_H 30b437860SAdrian Hunter #define __PERF_TSC_H 40b437860SAdrian Hunter 50b437860SAdrian Hunter #include <linux/types.h> 60b437860SAdrian Hunter 72a28e230SAdrian Hunter struct perf_tsc_conversion { 82a28e230SAdrian Hunter u16 time_shift; 92a28e230SAdrian Hunter u32 time_mult; 102a28e230SAdrian Hunter u64 time_zero; 112a28e230SAdrian Hunter }; 12ea49e01cSArnaldo Carvalho de Melo 132a28e230SAdrian Hunter struct perf_event_mmap_page; 142a28e230SAdrian Hunter 152a28e230SAdrian Hunter int perf_read_tsc_conversion(const struct perf_event_mmap_page *pc, 162a28e230SAdrian Hunter struct perf_tsc_conversion *tc); 170b437860SAdrian Hunter 180b437860SAdrian Hunter u64 perf_time_to_tsc(u64 ns, struct perf_tsc_conversion *tc); 190b437860SAdrian Hunter u64 tsc_to_perf_time(u64 cyc, struct perf_tsc_conversion *tc); 20a6a69db4SAdrian Hunter u64 rdtsc(void); 210b437860SAdrian Hunter 22ea49e01cSArnaldo Carvalho de Melo #endif // __PERF_TSC_H 23