[RFC patch 02/28] trace event sample remove semicolons, specify need for ifdef around declarations

From: Mathieu Desnoyers
Date: Sun Jan 09 2011 - 17:09:59 EST


Part of the gradual TRACE_EVENT() semicolon removal. Enables creation of array
of events, thus saving space for trace event probes.

Protecting declarations with ifndef _TRACE_SAMPLE_DEF_ is required if we want to
ensure that, e.g., structure forward declarations do not generate extra
semicolons. It's already needed for enumerations and static inline functions
declarations, but not documented, so document it here.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
CC: Steven Rostedt <rostedt@xxxxxxxxxxx>
CC: Frederic Weisbecker <fweisbec@xxxxxxxxx>
CC: Ingo Molnar <mingo@xxxxxxx>
CC: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
CC: Li Zefan <lizf@xxxxxxxxxxxxxx>
---
samples/trace_events/trace-events-sample.h | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)

Index: linux-2.6-lttng/samples/trace_events/trace-events-sample.h
===================================================================
--- linux-2.6-lttng.orig/samples/trace_events/trace-events-sample.h
+++ linux-2.6-lttng/samples/trace_events/trace-events-sample.h
@@ -41,6 +41,18 @@
*/
#include <linux/tracepoint.h>

+#ifndef _TRACE_SAMPLE_DEF_
+#define _TRACE_SAMPLE_DEF_
+
+/*
+ * All static inline functions, enumerations, types and structures declarations,
+ * as well as structure forward declarations, should be surrounded by
+ * _TRACE_SAMPLE_DEF_ preprocessor idefs (where SAMPLE is the name of the trace
+ * system).
+ */
+
+#endif /* _TRACE_SAMPLE_DEF_ */
+
/*
* The TRACE_EVENT macro is broken up into 5 parts.
*
@@ -91,7 +103,7 @@ TRACE_EVENT(foo_bar,
),

TP_printk("foo %s %d", __entry->foo, __entry->bar)
-);
+)
#endif

/***** NOTICE! The #if protection ends here. *****/

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/