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
12struct objagg;
13struct objagg_obj;
14
15TRACE_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
31TRACE_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
47TRACE_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
66TRACE_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
85TRACE_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
108TRACE_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
131TRACE_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
158TRACE_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
185TRACE_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
205TRACE_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