12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /* SPDX-License-Identifier: GPL-2.0 */
- #undef TRACE_SYSTEM
- #define TRACE_SYSTEM msr
- #undef TRACE_INCLUDE_FILE
- #define TRACE_INCLUDE_FILE msr-trace
- #undef TRACE_INCLUDE_PATH
- #define TRACE_INCLUDE_PATH asm/
- #if !defined(_TRACE_MSR_H) || defined(TRACE_HEADER_MULTI_READ)
- #define _TRACE_MSR_H
- #include <linux/tracepoint.h>
- /*
- * Tracing for x86 model specific registers. Directly maps to the
- * RDMSR/WRMSR instructions.
- */
- DECLARE_EVENT_CLASS(msr_trace_class,
- TP_PROTO(unsigned msr, u64 val, int failed),
- TP_ARGS(msr, val, failed),
- TP_STRUCT__entry(
- __field( unsigned, msr )
- __field( u64, val )
- __field( int, failed )
- ),
- TP_fast_assign(
- __entry->msr = msr;
- __entry->val = val;
- __entry->failed = failed;
- ),
- TP_printk("%x, value %llx%s",
- __entry->msr,
- __entry->val,
- __entry->failed ? " #GP" : "")
- );
- DEFINE_EVENT(msr_trace_class, read_msr,
- TP_PROTO(unsigned msr, u64 val, int failed),
- TP_ARGS(msr, val, failed)
- );
- DEFINE_EVENT(msr_trace_class, write_msr,
- TP_PROTO(unsigned msr, u64 val, int failed),
- TP_ARGS(msr, val, failed)
- );
- DEFINE_EVENT(msr_trace_class, rdpmc,
- TP_PROTO(unsigned msr, u64 val, int failed),
- TP_ARGS(msr, val, failed)
- );
- #endif /* _TRACE_MSR_H */
- /* This part must be outside protection */
- #include <trace/define_trace.h>
|