1 2 #define __app__(x, y) str__##x##y 3 #define __app(x, y) __app__(x, y) 4 5 #define TRACE_SYSTEM_STRING __app(TRACE_SYSTEM_VAR,__trace_system_name) 6 7 #define TRACE_MAKE_SYSTEM_STR() \ 8 static const char TRACE_SYSTEM_STRING[] = \ 9 __stringify(TRACE_SYSTEM) 10 11 TRACE_MAKE_SYSTEM_STR(); 12 13 #undef TRACE_DEFINE_ENUM 14 #define TRACE_DEFINE_ENUM(a) \ 15 static struct trace_eval_map __used __initdata \ 16 __##TRACE_SYSTEM##_##a = \ 17 { \ 18 .system = TRACE_SYSTEM_STRING, \ 19 .eval_string = #a, \ 20 .eval_value = a \ 21 }; \ 22 static struct trace_eval_map __used \ 23 __section("_ftrace_eval_map") \ 24 *TRACE_SYSTEM##_##a = &__##TRACE_SYSTEM##_##a 25 26 #undef TRACE_DEFINE_SIZEOF 27 #define TRACE_DEFINE_SIZEOF(a) \ 28 static struct trace_eval_map __used __initdata \ 29 __##TRACE_SYSTEM##_##a = \ 30 { \ 31 .system = TRACE_SYSTEM_STRING, \ 32 .eval_string = "sizeof(" #a ")", \ 33 .eval_value = sizeof(a) \ 34 }; \ 35 static struct trace_eval_map __used \ 36 __section("_ftrace_eval_map") \ 37 *TRACE_SYSTEM##_##a = &__##TRACE_SYSTEM##_##a 38