/* SPDX-License-Identifier: GPL-2.0 */
#undef TRACE_SYSTEM
#define TRACE_SYSTEM initcall

#if !defined(_TRACE_INITCALL_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_INITCALL_H

#include <linux/tracepoint.h>

TRACE_EVENT(initcall_level,

	TP_PROTO(const char *level),

	TP_ARGS(level),

	TP_STRUCT__entry(
		__string(level, level)
	),

	TP_fast_assign(
		__assign_str(level, level);
	),

	TP_printk("level=%s", __get_str(level))
);

TRACE_EVENT(initcall_start,

	TP_PROTO(initcall_t func),

	TP_ARGS(func),

	TP_STRUCT__entry(
		__field(initcall_t, func)
	),

	TP_fast_assign(
		__entry->func = func;
	),

	TP_printk("func=%pS", __entry->func)
);

TRACE_EVENT(initcall_finish,

	TP_PROTO(initcall_t func, int ret),

	TP_ARGS(func, ret),

	TP_STRUCT__entry(
		__field(initcall_t,	func)
		__field(int,		ret)
	),

	TP_fast_assign(
		__entry->func = func;
		__entry->ret = ret;
	),

	TP_printk("func=%pS ret=%d", __entry->func, __entry->ret)
);

#endif /* if !defined(_TRACE_GPIO_H) || defined(TRACE_HEADER_MULTI_READ) */

/* This part must be outside protection */
#include <trace/define_trace.h>
