• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/include/trace/events/
1#undef TRACE_SYSTEM
2#define TRACE_SYSTEM module
3
4#if !defined(_TRACE_MODULE_H) || defined(TRACE_HEADER_MULTI_READ)
5#define _TRACE_MODULE_H
6
7#include <linux/tracepoint.h>
8
9#ifdef CONFIG_MODULES
10
11struct module;
12
13#define show_module_flags(flags) __print_flags(flags, "",	\
14	{ (1UL << TAINT_PROPRIETARY_MODULE),	"P" },		\
15	{ (1UL << TAINT_FORCED_MODULE),		"F" },		\
16	{ (1UL << TAINT_CRAP),			"C" })
17
18TRACE_EVENT(module_load,
19
20	TP_PROTO(struct module *mod),
21
22	TP_ARGS(mod),
23
24	TP_STRUCT__entry(
25		__field(	unsigned int,	taints		)
26		__string(	name,		mod->name	)
27	),
28
29	TP_fast_assign(
30		__entry->taints = mod->taints;
31		__assign_str(name, mod->name);
32	),
33
34	TP_printk("%s %s", __get_str(name), show_module_flags(__entry->taints))
35);
36
37TRACE_EVENT(module_free,
38
39	TP_PROTO(struct module *mod),
40
41	TP_ARGS(mod),
42
43	TP_STRUCT__entry(
44		__string(	name,		mod->name	)
45	),
46
47	TP_fast_assign(
48		__assign_str(name, mod->name);
49	),
50
51	TP_printk("%s", __get_str(name))
52);
53
54#ifdef CONFIG_MODULE_UNLOAD
55/* trace_module_get/put are only used if CONFIG_MODULE_UNLOAD is defined */
56
57DECLARE_EVENT_CLASS(module_refcnt,
58
59	TP_PROTO(struct module *mod, unsigned long ip),
60
61	TP_ARGS(mod, ip),
62
63	TP_STRUCT__entry(
64		__field(	unsigned long,	ip		)
65		__field(	int,		refcnt		)
66		__string(	name,		mod->name	)
67	),
68
69	TP_fast_assign(
70		__entry->ip	= ip;
71		__entry->refcnt	= __this_cpu_read(mod->refptr->incs) + __this_cpu_read(mod->refptr->decs);
72		__assign_str(name, mod->name);
73	),
74
75	TP_printk("%s call_site=%pf refcnt=%d",
76		  __get_str(name), (void *)__entry->ip, __entry->refcnt)
77);
78
79DEFINE_EVENT(module_refcnt, module_get,
80
81	TP_PROTO(struct module *mod, unsigned long ip),
82
83	TP_ARGS(mod, ip)
84);
85
86DEFINE_EVENT(module_refcnt, module_put,
87
88	TP_PROTO(struct module *mod, unsigned long ip),
89
90	TP_ARGS(mod, ip)
91);
92#endif /* CONFIG_MODULE_UNLOAD */
93
94TRACE_EVENT(module_request,
95
96	TP_PROTO(char *name, bool wait, unsigned long ip),
97
98	TP_ARGS(name, wait, ip),
99
100	TP_STRUCT__entry(
101		__field(	bool,		wait		)
102		__field(	unsigned long,	ip		)
103		__string(	name,		name		)
104	),
105
106	TP_fast_assign(
107		__entry->wait	= wait;
108		__entry->ip	= ip;
109		__assign_str(name, name);
110	),
111
112	TP_printk("%s wait=%d call_site=%pf",
113		  __get_str(name), (int)__entry->wait, (void *)__entry->ip)
114);
115
116#endif /* CONFIG_MODULES */
117
118#endif /* _TRACE_MODULE_H */
119
120/* This part must be outside protection */
121#include <trace/define_trace.h>
122