|
@@ -722,8 +722,20 @@ static struct trace_event ftrace_event_type_##call = { \
|
|
|
|
|
|
#include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
|
|
|
|
|
|
+#undef __entry
|
|
|
+#define __entry REC
|
|
|
+
|
|
|
+#undef __print_flags
|
|
|
+#undef __print_symbolic
|
|
|
+#undef __get_dynamic_array
|
|
|
+#undef __get_str
|
|
|
+
|
|
|
+#undef TP_printk
|
|
|
+#define TP_printk(fmt, args...) "\"" fmt "\", " __stringify(args)
|
|
|
+
|
|
|
#undef DECLARE_EVENT_CLASS
|
|
|
-#define DECLARE_EVENT_CLASS(call, proto, args, tstruct, assign, print)
|
|
|
+#define DECLARE_EVENT_CLASS(call, proto, args, tstruct, assign, print) \
|
|
|
+static const char print_fmt_##call[] = print;
|
|
|
|
|
|
#undef DEFINE_EVENT
|
|
|
#define DEFINE_EVENT(template, call, proto, args) \
|
|
@@ -737,6 +749,7 @@ __attribute__((section("_ftrace_events"))) event_##call = { \
|
|
|
.raw_init = trace_event_raw_init, \
|
|
|
.regfunc = ftrace_raw_reg_event_##call, \
|
|
|
.unregfunc = ftrace_raw_unreg_event_##call, \
|
|
|
+ .print_fmt = print_fmt_##template, \
|
|
|
.show_format = ftrace_format_##template, \
|
|
|
.define_fields = ftrace_define_fields_##template, \
|
|
|
_TRACE_PROFILE_INIT(call) \
|
|
@@ -745,6 +758,8 @@ __attribute__((section("_ftrace_events"))) event_##call = { \
|
|
|
#undef DEFINE_EVENT_PRINT
|
|
|
#define DEFINE_EVENT_PRINT(template, call, proto, args, print) \
|
|
|
\
|
|
|
+static const char print_fmt_##call[] = print; \
|
|
|
+ \
|
|
|
static struct ftrace_event_call __used \
|
|
|
__attribute__((__aligned__(4))) \
|
|
|
__attribute__((section("_ftrace_events"))) event_##call = { \
|
|
@@ -754,6 +769,7 @@ __attribute__((section("_ftrace_events"))) event_##call = { \
|
|
|
.raw_init = trace_event_raw_init, \
|
|
|
.regfunc = ftrace_raw_reg_event_##call, \
|
|
|
.unregfunc = ftrace_raw_unreg_event_##call, \
|
|
|
+ .print_fmt = print_fmt_##call, \
|
|
|
.show_format = ftrace_format_##call, \
|
|
|
.define_fields = ftrace_define_fields_##template, \
|
|
|
_TRACE_PROFILE_INIT(call) \
|
|
@@ -837,6 +853,16 @@ __attribute__((section("_ftrace_events"))) event_##call = { \
|
|
|
|
|
|
#ifdef CONFIG_EVENT_PROFILE
|
|
|
|
|
|
+#undef __entry
|
|
|
+#define __entry entry
|
|
|
+
|
|
|
+#undef __get_dynamic_array
|
|
|
+#define __get_dynamic_array(field) \
|
|
|
+ ((void *)__entry + (__entry->__data_loc_##field & 0xffff))
|
|
|
+
|
|
|
+#undef __get_str
|
|
|
+#define __get_str(field) (char *)__get_dynamic_array(field)
|
|
|
+
|
|
|
#undef __perf_addr
|
|
|
#define __perf_addr(a) __addr = (a)
|
|
|
|