1*74579d8dSLorenzo Stoakes /* SPDX-License-Identifier: GPL-2.0 */
2*74579d8dSLorenzo Stoakes #ifndef _TEST_RADIX_TREE_H
3*74579d8dSLorenzo Stoakes #define _TEST_RADIX_TREE_H
4*74579d8dSLorenzo Stoakes
5*74579d8dSLorenzo Stoakes #include "../../../../include/linux/radix-tree.h"
6*74579d8dSLorenzo Stoakes
7*74579d8dSLorenzo Stoakes extern int kmalloc_verbose;
8*74579d8dSLorenzo Stoakes extern int test_verbose;
9*74579d8dSLorenzo Stoakes
trace_call_rcu(struct rcu_head * head,void (* func)(struct rcu_head * head))10*74579d8dSLorenzo Stoakes static inline void trace_call_rcu(struct rcu_head *head,
11*74579d8dSLorenzo Stoakes void (*func)(struct rcu_head *head))
12*74579d8dSLorenzo Stoakes {
13*74579d8dSLorenzo Stoakes if (kmalloc_verbose)
14*74579d8dSLorenzo Stoakes printf("Delaying free of %p to slab\n", (char *)head -
15*74579d8dSLorenzo Stoakes offsetof(struct radix_tree_node, rcu_head));
16*74579d8dSLorenzo Stoakes call_rcu(head, func);
17*74579d8dSLorenzo Stoakes }
18*74579d8dSLorenzo Stoakes
19*74579d8dSLorenzo Stoakes #define printv(verbosity_level, fmt, ...) \
20*74579d8dSLorenzo Stoakes if(test_verbose >= verbosity_level) \
21*74579d8dSLorenzo Stoakes printf(fmt, ##__VA_ARGS__)
22*74579d8dSLorenzo Stoakes
23*74579d8dSLorenzo Stoakes #undef call_rcu
24*74579d8dSLorenzo Stoakes #define call_rcu(x, y) trace_call_rcu(x, y)
25*74579d8dSLorenzo Stoakes
26*74579d8dSLorenzo Stoakes #endif /* _TEST_RADIX_TREE_H */
27