^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0-only */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * intel_pt.h: Intel Processor Trace support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) * Copyright (c) 2013-2015, Intel Corporation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #ifndef INCLUDE__PERF_INTEL_PT_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #define INCLUDE__PERF_INTEL_PT_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #define INTEL_PT_PMU_NAME "intel_pt"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) enum {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) INTEL_PT_PMU_TYPE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) INTEL_PT_TIME_SHIFT,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) INTEL_PT_TIME_MULT,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) INTEL_PT_TIME_ZERO,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) INTEL_PT_CAP_USER_TIME_ZERO,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) INTEL_PT_TSC_BIT,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) INTEL_PT_NORETCOMP_BIT,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) INTEL_PT_HAVE_SCHED_SWITCH,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) INTEL_PT_SNAPSHOT_MODE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) INTEL_PT_PER_CPU_MMAPS,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) INTEL_PT_MTC_BIT,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) INTEL_PT_MTC_FREQ_BITS,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) INTEL_PT_TSC_CTC_N,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) INTEL_PT_TSC_CTC_D,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) INTEL_PT_CYC_BIT,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) INTEL_PT_MAX_NONTURBO_RATIO,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) INTEL_PT_FILTER_STR_LEN,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) INTEL_PT_AUXTRACE_PRIV_MAX,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) struct auxtrace_record;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) struct perf_tool;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) union perf_event;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) struct perf_session;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) struct perf_event_attr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) struct perf_pmu;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) struct auxtrace_record *intel_pt_recording_init(int *err);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) int intel_pt_process_auxtrace_info(union perf_event *event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) struct perf_session *session);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) struct perf_event_attr *intel_pt_pmu_default_config(struct perf_pmu *pmu);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) #endif