1 /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */
2 /* Copyright (c) 2018 Mellanox Technologies. All rights reserved */
3 
4 #undef TRACE_SYSTEM
5 #define TRACE_SYSTEM objagg
6 
7 #if !defined(__TRACE_OBJAGG_H) || defined(TRACE_HEADER_MULTI_READ)
8 #define __TRACE_OBJAGG_H
9 
10 #include <linux/tracepoint.h>
11 
12 struct objagg;
13 struct objagg_obj;
14 
15 TRACE_EVENT(objagg_create,
16 	TP_PROTO(const struct objagg *objagg),
17 
18 	TP_ARGS(objagg),
19 
20 	TP_STRUCT__entry(
21 		__field(const void *, objagg)
22 	),
23 
24 	TP_fast_assign(
25 		__entry->objagg = objagg;
26 	),
27 
28 	TP_printk("objagg %p", __entry->objagg)
29 );
30 
31 TRACE_EVENT(objagg_destroy,
32 	TP_PROTO(const struct objagg *objagg),
33 
34 	TP_ARGS(objagg),
35 
36 	TP_STRUCT__entry(
37 		__field(const void *, objagg)
38 	),
39 
40 	TP_fast_assign(
41 		__entry->objagg = objagg;
42 	),
43 
44 	TP_printk("objagg %p", __entry->objagg)
45 );
46 
47 TRACE_EVENT(objagg_obj_create,
48 	TP_PROTO(const struct objagg *objagg,
49 		 const struct objagg_obj *obj),
50 
51 	TP_ARGS(objagg, obj),
52 
53 	TP_STRUCT__entry(
54 		__field(const void *, objagg)
55 		__field(const void *, obj)
56 	),
57 
58 	TP_fast_assign(
59 		__entry->objagg = objagg;
60 		__entry->obj = obj;
61 	),
62 
63 	TP_printk("objagg %p, obj %p", __entry->objagg, __entry->obj)
64 );
65 
66 TRACE_EVENT(objagg_obj_destroy,
67 	TP_PROTO(const struct objagg *objagg,
68 		 const struct objagg_obj *obj),
69 
70 	TP_ARGS(objagg, obj),
71 
72 	TP_STRUCT__entry(
73 		__field(const void *, objagg)
74 		__field(const void *, obj)
75 	),
76 
77 	TP_fast_assign(
78 		__entry->objagg = objagg;
79 		__entry->obj = obj;
80 	),
81 
82 	TP_printk("objagg %p, obj %p", __entry->objagg, __entry->obj)
83 );
84 
85 TRACE_EVENT(objagg_obj_get,
86 	TP_PROTO(const struct objagg *objagg,
87 		 const struct objagg_obj *obj,
88 		 unsigned int refcount),
89 
90 	TP_ARGS(objagg, obj, refcount),
91 
92 	TP_STRUCT__entry(
93 		__field(const void *, objagg)
94 		__field(const void *, obj)
95 		__field(unsigned int, refcount)
96 	),
97 
98 	TP_fast_assign(
99 		__entry->objagg = objagg;
100 		__entry->obj = obj;
101 		__entry->refcount = refcount;
102 	),
103 
104 	TP_printk("objagg %p, obj %p, refcount %u",
105 		  __entry->objagg, __entry->obj, __entry->refcount)
106 );
107 
108 TRACE_EVENT(objagg_obj_put,
109 	TP_PROTO(const struct objagg *objagg,
110 		 const struct objagg_obj *obj,
111 		 unsigned int refcount),
112 
113 	TP_ARGS(objagg, obj, refcount),
114 
115 	TP_STRUCT__entry(
116 		__field(const void *, objagg)
117 		__field(const void *, obj)
118 		__field(unsigned int, refcount)
119 	),
120 
121 	TP_fast_assign(
122 		__entry->objagg = objagg;
123 		__entry->obj = obj;
124 		__entry->refcount = refcount;
125 	),
126 
127 	TP_printk("objagg %p, obj %p, refcount %u",
128 		  __entry->objagg, __entry->obj, __entry->refcount)
129 );
130 
131 TRACE_EVENT(objagg_obj_parent_assign,
132 	TP_PROTO(const struct objagg *objagg,
133 		 const struct objagg_obj *obj,
134 		 const struct objagg_obj *parent,
135 		 unsigned int parent_refcount),
136 
137 	TP_ARGS(objagg, obj, parent, parent_refcount),
138 
139 	TP_STRUCT__entry(
140 		__field(const void *, objagg)
141 		__field(const void *, obj)
142 		__field(const void *, parent)
143 		__field(unsigned int, parent_refcount)
144 	),
145 
146 	TP_fast_assign(
147 		__entry->objagg = objagg;
148 		__entry->obj = obj;
149 		__entry->parent = parent;
150 		__entry->parent_refcount = parent_refcount;
151 	),
152 
153 	TP_printk("objagg %p, obj %p, parent %p, parent_refcount %u",
154 		  __entry->objagg, __entry->obj,
155 		  __entry->parent, __entry->parent_refcount)
156 );
157 
158 TRACE_EVENT(objagg_obj_parent_unassign,
159 	TP_PROTO(const struct objagg *objagg,
160 		 const struct objagg_obj *obj,
161 		 const struct objagg_obj *parent,
162 		 unsigned int parent_refcount),
163 
164 	TP_ARGS(objagg, obj, parent, parent_refcount),
165 
166 	TP_STRUCT__entry(
167 		__field(const void *, objagg)
168 		__field(const void *, obj)
169 		__field(const void *, parent)
170 		__field(unsigned int, parent_refcount)
171 	),
172 
173 	TP_fast_assign(
174 		__entry->objagg = objagg;
175 		__entry->obj = obj;
176 		__entry->parent = parent;
177 		__entry->parent_refcount = parent_refcount;
178 	),
179 
180 	TP_printk("objagg %p, obj %p, parent %p, parent_refcount %u",
181 		  __entry->objagg, __entry->obj,
182 		  __entry->parent, __entry->parent_refcount)
183 );
184 
185 TRACE_EVENT(objagg_obj_root_create,
186 	TP_PROTO(const struct objagg *objagg,
187 		 const struct objagg_obj *obj),
188 
189 	TP_ARGS(objagg, obj),
190 
191 	TP_STRUCT__entry(
192 		__field(const void *, objagg)
193 		__field(const void *, obj)
194 	),
195 
196 	TP_fast_assign(
197 		__entry->objagg = objagg;
198 		__entry->obj = obj;
199 	),
200 
201 	TP_printk("objagg %p, obj %p",
202 		  __entry->objagg, __entry->obj)
203 );
204 
205 TRACE_EVENT(objagg_obj_root_destroy,
206 	TP_PROTO(const struct objagg *objagg,
207 		 const struct objagg_obj *obj),
208 
209 	TP_ARGS(objagg, obj),
210 
211 	TP_STRUCT__entry(
212 		__field(const void *, objagg)
213 		__field(const void *, obj)
214 	),
215 
216 	TP_fast_assign(
217 		__entry->objagg = objagg;
218 		__entry->obj = obj;
219 	),
220 
221 	TP_printk("objagg %p, obj %p",
222 		  __entry->objagg, __entry->obj)
223 );
224 
225 #endif /* __TRACE_OBJAGG_H */
226 
227 /* This part must be outside protection */
228 #include <trace/define_trace.h>
229