0001
0002 #define __app__(x, y) str__##x##y
0003 #define __app(x, y) __app__(x, y)
0004
0005 #define TRACE_SYSTEM_STRING __app(TRACE_SYSTEM_VAR,__trace_system_name)
0006
0007 #define TRACE_MAKE_SYSTEM_STR() \
0008 static const char TRACE_SYSTEM_STRING[] = \
0009 __stringify(TRACE_SYSTEM)
0010
0011 TRACE_MAKE_SYSTEM_STR();
0012
0013 #undef TRACE_DEFINE_ENUM
0014 #define TRACE_DEFINE_ENUM(a) \
0015 static struct trace_eval_map __used __initdata \
0016 __##TRACE_SYSTEM##_##a = \
0017 { \
0018 .system = TRACE_SYSTEM_STRING, \
0019 .eval_string = #a, \
0020 .eval_value = a \
0021 }; \
0022 static struct trace_eval_map __used \
0023 __section("_ftrace_eval_map") \
0024 *TRACE_SYSTEM##_##a = &__##TRACE_SYSTEM##_##a
0025
0026 #undef TRACE_DEFINE_SIZEOF
0027 #define TRACE_DEFINE_SIZEOF(a) \
0028 static struct trace_eval_map __used __initdata \
0029 __##TRACE_SYSTEM##_##a = \
0030 { \
0031 .system = TRACE_SYSTEM_STRING, \
0032 .eval_string = "sizeof(" #a ")", \
0033 .eval_value = sizeof(a) \
0034 }; \
0035 static struct trace_eval_map __used \
0036 __section("_ftrace_eval_map") \
0037 *TRACE_SYSTEM##_##a = &__##TRACE_SYSTEM##_##a