0001
0002
0003
0004
0005 #undef TRACE_SYSTEM
0006 #define TRACE_SYSTEM rwmmio
0007
0008 #if !defined(_TRACE_RWMMIO_H) || defined(TRACE_HEADER_MULTI_READ)
0009 #define _TRACE_RWMMIO_H
0010
0011 #include <linux/tracepoint.h>
0012
0013 DECLARE_EVENT_CLASS(rwmmio_rw_template,
0014
0015 TP_PROTO(unsigned long caller, u64 val, u8 width, volatile void __iomem *addr),
0016
0017 TP_ARGS(caller, val, width, addr),
0018
0019 TP_STRUCT__entry(
0020 __field(unsigned long, caller)
0021 __field(unsigned long, addr)
0022 __field(u64, val)
0023 __field(u8, width)
0024 ),
0025
0026 TP_fast_assign(
0027 __entry->caller = caller;
0028 __entry->val = val;
0029 __entry->addr = (unsigned long)addr;
0030 __entry->width = width;
0031 ),
0032
0033 TP_printk("%pS width=%d val=%#llx addr=%#lx",
0034 (void *)__entry->caller, __entry->width,
0035 __entry->val, __entry->addr)
0036 );
0037
0038 DEFINE_EVENT(rwmmio_rw_template, rwmmio_write,
0039 TP_PROTO(unsigned long caller, u64 val, u8 width, volatile void __iomem *addr),
0040 TP_ARGS(caller, val, width, addr)
0041 );
0042
0043 DEFINE_EVENT(rwmmio_rw_template, rwmmio_post_write,
0044 TP_PROTO(unsigned long caller, u64 val, u8 width, volatile void __iomem *addr),
0045 TP_ARGS(caller, val, width, addr)
0046 );
0047
0048 TRACE_EVENT(rwmmio_read,
0049
0050 TP_PROTO(unsigned long caller, u8 width, const volatile void __iomem *addr),
0051
0052 TP_ARGS(caller, width, addr),
0053
0054 TP_STRUCT__entry(
0055 __field(unsigned long, caller)
0056 __field(unsigned long, addr)
0057 __field(u8, width)
0058 ),
0059
0060 TP_fast_assign(
0061 __entry->caller = caller;
0062 __entry->addr = (unsigned long)addr;
0063 __entry->width = width;
0064 ),
0065
0066 TP_printk("%pS width=%d addr=%#lx",
0067 (void *)__entry->caller, __entry->width, __entry->addr)
0068 );
0069
0070 TRACE_EVENT(rwmmio_post_read,
0071
0072 TP_PROTO(unsigned long caller, u64 val, u8 width, const volatile void __iomem *addr),
0073
0074 TP_ARGS(caller, val, width, addr),
0075
0076 TP_STRUCT__entry(
0077 __field(unsigned long, caller)
0078 __field(unsigned long, addr)
0079 __field(u64, val)
0080 __field(u8, width)
0081 ),
0082
0083 TP_fast_assign(
0084 __entry->caller = caller;
0085 __entry->val = val;
0086 __entry->addr = (unsigned long)addr;
0087 __entry->width = width;
0088 ),
0089
0090 TP_printk("%pS width=%d val=%#llx addr=%#lx",
0091 (void *)__entry->caller, __entry->width,
0092 __entry->val, __entry->addr)
0093 );
0094
0095 #endif
0096
0097 #include <trace/define_trace.h>