|
@@ -22,6 +22,47 @@
|
|
|
#undef __field_struct
|
|
|
#define __field_struct(type, item)
|
|
|
|
|
|
+#undef __field
|
|
|
+#define __field(type, item) type item;
|
|
|
+
|
|
|
+#undef __field_desc
|
|
|
+#define __field_desc(type, container, item) type item;
|
|
|
+
|
|
|
+#undef __array
|
|
|
+#define __array(type, item, size) type item[size];
|
|
|
+
|
|
|
+#undef __array_desc
|
|
|
+#define __array_desc(type, container, item, size) type item[size];
|
|
|
+
|
|
|
+#undef __dynamic_array
|
|
|
+#define __dynamic_array(type, item) type item[];
|
|
|
+
|
|
|
+#undef F_STRUCT
|
|
|
+#define F_STRUCT(args...) args
|
|
|
+
|
|
|
+#undef F_printk
|
|
|
+#define F_printk(fmt, args...) fmt, args
|
|
|
+
|
|
|
+#undef FTRACE_ENTRY
|
|
|
+#define FTRACE_ENTRY(name, struct_name, id, tstruct, print) \
|
|
|
+struct ____ftrace_##name { \
|
|
|
+ tstruct \
|
|
|
+}; \
|
|
|
+static void __used ____ftrace_check_##name(void) \
|
|
|
+{ \
|
|
|
+ struct ____ftrace_##name *__entry = NULL; \
|
|
|
+ \
|
|
|
+ /* force cmpile-time check on F_printk() */ \
|
|
|
+ printk(print); \
|
|
|
+}
|
|
|
+
|
|
|
+#undef FTRACE_ENTRY_DUP
|
|
|
+#define FTRACE_ENTRY_DUP(name, struct_name, id, tstruct, print) \
|
|
|
+ FTRACE_ENTRY(name, struct_name, id, PARAMS(tstruct), PARAMS(print))
|
|
|
+
|
|
|
+#include "trace_entries.h"
|
|
|
+
|
|
|
+
|
|
|
#undef __field
|
|
|
#define __field(type, item) \
|
|
|
ret = trace_seq_printf(s, "\tfield:" #type " " #item ";\t" \
|
|
@@ -88,10 +129,6 @@ ftrace_format_##name(struct ftrace_event_call *unused, \
|
|
|
return ret; \
|
|
|
}
|
|
|
|
|
|
-#undef FTRACE_ENTRY_DUP
|
|
|
-#define FTRACE_ENTRY_DUP(name, struct_name, id, tstruct, print) \
|
|
|
- FTRACE_ENTRY(name, struct_name, id, PARAMS(tstruct), PARAMS(print))
|
|
|
-
|
|
|
#include "trace_entries.h"
|
|
|
|
|
|
|