Warning: This file is not a C or C++ file. It does not have highlighting.

1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
4 */
5#undef TRACE_SYSTEM
6#define TRACE_SYSTEM rwmmio
7
8#if !defined(_TRACE_RWMMIO_H) || defined(TRACE_HEADER_MULTI_READ)
9#define _TRACE_RWMMIO_H
10
11#include <linux/tracepoint.h>
12
13DECLARE_EVENT_CLASS(rwmmio_rw_template,
14
15 TP_PROTO(unsigned long caller, unsigned long caller0, u64 val, u8 width,
16 volatile void __iomem *addr),
17
18 TP_ARGS(caller, caller0, val, width, addr),
19
20 TP_STRUCT__entry(
21 __field(unsigned long, caller)
22 __field(unsigned long, caller0)
23 __field(unsigned long, addr)
24 __field(u64, val)
25 __field(u8, width)
26 ),
27
28 TP_fast_assign(
29 __entry->caller = caller;
30 __entry->caller0 = caller0;
31 __entry->val = val;
32 __entry->addr = (unsigned long)addr;
33 __entry->width = width;
34 ),
35
36 TP_printk("%pS -> %pS width=%d val=%#llx addr=%#lx",
37 (void *)__entry->caller0, (void *)__entry->caller, __entry->width,
38 __entry->val, __entry->addr)
39);
40
41DEFINE_EVENT(rwmmio_rw_template, rwmmio_write,
42 TP_PROTO(unsigned long caller, unsigned long caller0, u64 val, u8 width,
43 volatile void __iomem *addr),
44 TP_ARGS(caller, caller0, val, width, addr)
45);
46
47DEFINE_EVENT(rwmmio_rw_template, rwmmio_post_write,
48 TP_PROTO(unsigned long caller, unsigned long caller0, u64 val, u8 width,
49 volatile void __iomem *addr),
50 TP_ARGS(caller, caller0, val, width, addr)
51);
52
53TRACE_EVENT(rwmmio_read,
54
55 TP_PROTO(unsigned long caller, unsigned long caller0, u8 width,
56 const volatile void __iomem *addr),
57
58 TP_ARGS(caller, caller0, width, addr),
59
60 TP_STRUCT__entry(
61 __field(unsigned long, caller)
62 __field(unsigned long, caller0)
63 __field(unsigned long, addr)
64 __field(u8, width)
65 ),
66
67 TP_fast_assign(
68 __entry->caller = caller;
69 __entry->caller0 = caller0;
70 __entry->addr = (unsigned long)addr;
71 __entry->width = width;
72 ),
73
74 TP_printk("%pS -> %pS width=%d addr=%#lx",
75 (void *)__entry->caller0, (void *)__entry->caller, __entry->width, __entry->addr)
76);
77
78TRACE_EVENT(rwmmio_post_read,
79
80 TP_PROTO(unsigned long caller, unsigned long caller0, u64 val, u8 width,
81 const volatile void __iomem *addr),
82
83 TP_ARGS(caller, caller0, val, width, addr),
84
85 TP_STRUCT__entry(
86 __field(unsigned long, caller)
87 __field(unsigned long, caller0)
88 __field(unsigned long, addr)
89 __field(u64, val)
90 __field(u8, width)
91 ),
92
93 TP_fast_assign(
94 __entry->caller = caller;
95 __entry->caller0 = caller0;
96 __entry->val = val;
97 __entry->addr = (unsigned long)addr;
98 __entry->width = width;
99 ),
100
101 TP_printk("%pS -> %pS width=%d val=%#llx addr=%#lx",
102 (void *)__entry->caller0, (void *)__entry->caller, __entry->width,
103 __entry->val, __entry->addr)
104);
105
106#endif /* _TRACE_RWMMIO_H */
107
108#include <trace/define_trace.h>
109

Warning: This file is not a C or C++ file. It does not have highlighting.

source code of linux/include/trace/events/rwmmio.h