33b0c229e3
Impact: clean up Move the macro that creates the event format file to a separate header. This will allow the default ftrace events to use this same macro to create the formats to read those events. Signed-off-by: Steven Rostedt <srostedt@redhat.com>
55 lines
1.3 KiB
C
55 lines
1.3 KiB
C
/*
|
|
* Setup the showing format of trace point.
|
|
*
|
|
* int
|
|
* ftrace_format_##call(struct trace_seq *s)
|
|
* {
|
|
* struct ftrace_raw_##call field;
|
|
* int ret;
|
|
*
|
|
* ret = trace_seq_printf(s, #type " " #item ";"
|
|
* " size:%d; offset:%d;\n",
|
|
* sizeof(field.type),
|
|
* offsetof(struct ftrace_raw_##call,
|
|
* item));
|
|
*
|
|
* }
|
|
*/
|
|
|
|
#undef TRACE_STRUCT
|
|
#define TRACE_STRUCT(args...) args
|
|
|
|
#undef TRACE_FIELD
|
|
#define TRACE_FIELD(type, item, assign) \
|
|
ret = trace_seq_printf(s, "\tfield:" #type " " #item ";\t" \
|
|
"offset:%lu;\tsize:%lu;\n", \
|
|
offsetof(typeof(field), item), \
|
|
sizeof(field.item)); \
|
|
if (!ret) \
|
|
return 0;
|
|
|
|
|
|
#undef TRACE_FIELD_SPECIAL
|
|
#define TRACE_FIELD_SPECIAL(type_item, item, cmd) \
|
|
ret = trace_seq_printf(s, "\tfield special:" #type_item ";\t" \
|
|
"offset:%lu;\tsize:%lu;\n", \
|
|
offsetof(typeof(field), item), \
|
|
sizeof(field.item)); \
|
|
if (!ret) \
|
|
return 0;
|
|
|
|
#undef TRACE_EVENT_FORMAT
|
|
#define TRACE_EVENT_FORMAT(call, proto, args, fmt, tstruct, tpfmt) \
|
|
int \
|
|
ftrace_format_##call(struct trace_seq *s) \
|
|
{ \
|
|
struct ftrace_raw_##call field; \
|
|
int ret; \
|
|
\
|
|
tstruct; \
|
|
\
|
|
trace_seq_printf(s, "\nprint fmt: \"%s\"\n", tpfmt); \
|
|
\
|
|
return ret; \
|
|
}
|
|
|