1/* SPDX-License-Identifier: GPL-2.0 */
2#undef TRACE_SYSTEM
3#define TRACE_SYSTEM maple_tree
4
5#if !defined(_TRACE_MM_H) || defined(TRACE_HEADER_MULTI_READ)
6#define _TRACE_MM_H
7
8
9#include <linux/tracepoint.h>
10
11struct ma_state;
12
13TRACE_EVENT(ma_op,
14
15	TP_PROTO(const char *fn, struct ma_state *mas),
16
17	TP_ARGS(fn, mas),
18
19	TP_STRUCT__entry(
20			__field(const char *, fn)
21			__field(unsigned long, min)
22			__field(unsigned long, max)
23			__field(unsigned long, index)
24			__field(unsigned long, last)
25			__field(void *, node)
26	),
27
28	TP_fast_assign(
29			__entry->fn		= fn;
30			__entry->min		= mas->min;
31			__entry->max		= mas->max;
32			__entry->index		= mas->index;
33			__entry->last		= mas->last;
34			__entry->node		= mas->node;
35	),
36
37	TP_printk("%s\tNode: %p (%lu %lu) range: %lu-%lu",
38		  __entry->fn,
39		  (void *) __entry->node,
40		  (unsigned long) __entry->min,
41		  (unsigned long) __entry->max,
42		  (unsigned long) __entry->index,
43		  (unsigned long) __entry->last
44	)
45)
46TRACE_EVENT(ma_read,
47
48	TP_PROTO(const char *fn, struct ma_state *mas),
49
50	TP_ARGS(fn, mas),
51
52	TP_STRUCT__entry(
53			__field(const char *, fn)
54			__field(unsigned long, min)
55			__field(unsigned long, max)
56			__field(unsigned long, index)
57			__field(unsigned long, last)
58			__field(void *, node)
59	),
60
61	TP_fast_assign(
62			__entry->fn		= fn;
63			__entry->min		= mas->min;
64			__entry->max		= mas->max;
65			__entry->index		= mas->index;
66			__entry->last		= mas->last;
67			__entry->node		= mas->node;
68	),
69
70	TP_printk("%s\tNode: %p (%lu %lu) range: %lu-%lu",
71		  __entry->fn,
72		  (void *) __entry->node,
73		  (unsigned long) __entry->min,
74		  (unsigned long) __entry->max,
75		  (unsigned long) __entry->index,
76		  (unsigned long) __entry->last
77	)
78)
79
80TRACE_EVENT(ma_write,
81
82	TP_PROTO(const char *fn, struct ma_state *mas, unsigned long piv,
83		 void *val),
84
85	TP_ARGS(fn, mas, piv, val),
86
87	TP_STRUCT__entry(
88			__field(const char *, fn)
89			__field(unsigned long, min)
90			__field(unsigned long, max)
91			__field(unsigned long, index)
92			__field(unsigned long, last)
93			__field(unsigned long, piv)
94			__field(void *, val)
95			__field(void *, node)
96	),
97
98	TP_fast_assign(
99			__entry->fn		= fn;
100			__entry->min		= mas->min;
101			__entry->max		= mas->max;
102			__entry->index		= mas->index;
103			__entry->last		= mas->last;
104			__entry->piv		= piv;
105			__entry->val		= val;
106			__entry->node		= mas->node;
107	),
108
109	TP_printk("%s\tNode %p (%lu %lu) range:%lu-%lu piv (%lu) val %p",
110		  __entry->fn,
111		  (void *) __entry->node,
112		  (unsigned long) __entry->min,
113		  (unsigned long) __entry->max,
114		  (unsigned long) __entry->index,
115		  (unsigned long) __entry->last,
116		  (unsigned long) __entry->piv,
117		  (void *) __entry->val
118	)
119)
120#endif /* _TRACE_MM_H */
121
122/* This part must be outside protection */
123#include <trace/define_trace.h>
124