38 lines · c
1 2#define __app__(x, y) str__##x##y3#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 11TRACE_MAKE_SYSTEM_STR();12 13#undef TRACE_DEFINE_ENUM14#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##_##a25 26#undef TRACE_DEFINE_SIZEOF27#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##_##a38