xref: /linux/tools/perf/util/intel-pt.h (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
12025cf9eSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
290e457f7SAdrian Hunter /*
390e457f7SAdrian Hunter  * intel_pt.h: Intel Processor Trace support
490e457f7SAdrian Hunter  * Copyright (c) 2013-2015, Intel Corporation.
590e457f7SAdrian Hunter  */
690e457f7SAdrian Hunter 
790e457f7SAdrian Hunter #ifndef INCLUDE__PERF_INTEL_PT_H__
890e457f7SAdrian Hunter #define INCLUDE__PERF_INTEL_PT_H__
990e457f7SAdrian Hunter 
1090e457f7SAdrian Hunter #define INTEL_PT_PMU_NAME "intel_pt"
1190e457f7SAdrian Hunter 
1290e457f7SAdrian Hunter enum {
1390e457f7SAdrian Hunter 	INTEL_PT_PMU_TYPE,
1490e457f7SAdrian Hunter 	INTEL_PT_TIME_SHIFT,
1590e457f7SAdrian Hunter 	INTEL_PT_TIME_MULT,
1690e457f7SAdrian Hunter 	INTEL_PT_TIME_ZERO,
1790e457f7SAdrian Hunter 	INTEL_PT_CAP_USER_TIME_ZERO,
1890e457f7SAdrian Hunter 	INTEL_PT_TSC_BIT,
1990e457f7SAdrian Hunter 	INTEL_PT_NORETCOMP_BIT,
2090e457f7SAdrian Hunter 	INTEL_PT_HAVE_SCHED_SWITCH,
2190e457f7SAdrian Hunter 	INTEL_PT_SNAPSHOT_MODE,
2290e457f7SAdrian Hunter 	INTEL_PT_PER_CPU_MMAPS,
2311fa7cb8SAdrian Hunter 	INTEL_PT_MTC_BIT,
2411fa7cb8SAdrian Hunter 	INTEL_PT_MTC_FREQ_BITS,
2511fa7cb8SAdrian Hunter 	INTEL_PT_TSC_CTC_N,
2611fa7cb8SAdrian Hunter 	INTEL_PT_TSC_CTC_D,
2711fa7cb8SAdrian Hunter 	INTEL_PT_CYC_BIT,
28fa8025c3SAdrian Hunter 	INTEL_PT_MAX_NONTURBO_RATIO,
29c093f308SAdrian Hunter 	INTEL_PT_FILTER_STR_LEN,
3090e457f7SAdrian Hunter 	INTEL_PT_AUXTRACE_PRIV_MAX,
3190e457f7SAdrian Hunter };
3290e457f7SAdrian Hunter 
3390e457f7SAdrian Hunter struct auxtrace_record;
3490e457f7SAdrian Hunter struct perf_tool;
3590e457f7SAdrian Hunter union perf_event;
3690e457f7SAdrian Hunter struct perf_session;
3790e457f7SAdrian Hunter struct perf_event_attr;
3890e457f7SAdrian Hunter struct perf_pmu;
3990e457f7SAdrian Hunter 
4090e457f7SAdrian Hunter struct auxtrace_record *intel_pt_recording_init(int *err);
4190e457f7SAdrian Hunter 
4290e457f7SAdrian Hunter int intel_pt_process_auxtrace_info(union perf_event *event,
4390e457f7SAdrian Hunter 				   struct perf_session *session);
4490e457f7SAdrian Hunter 
45*0197da7aSIan Rogers void intel_pt_pmu_default_config(const struct perf_pmu *intel_pt_pmu,
46*0197da7aSIan Rogers 				 struct perf_event_attr *attr);
4790e457f7SAdrian Hunter 
4890e457f7SAdrian Hunter #endif
49