#define FTRACE_ENTRY_REG(call, struct_name, etype, tstruct, print, filter,\
#include <linux/stringify.h>
#include <linux/kallsyms.h>
#include <linux/seq_file.h>
#include <linux/uaccess.h>
#include <linux/ftrace.h>
#include <linux/module.h>
#include "trace_output.h"
static int ftrace_event_register(struct trace_event_call *call,
enum trace_reg type, void *data)
#define TRACE_SYSTEM ftrace
#define FTRACE_ENTRY_REG(name, struct_name, id, tstruct, print, \
FTRACE_ENTRY(name, struct_name, id, PARAMS(tstruct), PARAMS(print), \
#define __field_struct(type, item)
#define __field(type, item) type item;
#define __field_desc(type, container, item) type item;
#define __array(type, item, size) type item[size];
#define __array_desc(type, container, item, size) type item[size];
#define __dynamic_array(type, item) type item[];
#define F_STRUCT(args...) args
#define F_printk(fmt, args...) fmt, args
#define FTRACE_ENTRY(name, struct_name, id, tstruct, print, filter) \
struct ____ftrace_##name { \
static void __always_unused ____ftrace_check_##name(void) \
struct ____ftrace_##name *__entry = NULL; \
#define FTRACE_ENTRY_DUP(name, struct_name, id, tstruct, print, filter) \
FTRACE_ENTRY(name, struct_name, id, PARAMS(tstruct), PARAMS(print), \
#include "trace_entries.h"
#define __field(type, item) \
ret = trace_define_field(event_call, #type, #item, \
offsetof(typeof(field), item), \
is_signed_type(type), filter_type); \
#define __field_desc(type, container, item) \