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 
11 struct ma_state;
12 
13 TRACE_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 )
46 TRACE_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 
80 TRACE_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