linux/include/trace/events/v4l2.h

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

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

#include <linux/tracepoint.h>
#include <media/videobuf2-v4l2.h>

/* Enums require being exported to userspace, for user tool parsing */
#undef EM
#undef EMe
#define EM(a, b)
#define EMe(a, b)

#define show_type(type)

#define SHOW_TYPE

SHOW_TYPE

#define show_field(field)

#define SHOW_FIELD

SHOW_FIELD

/*
 * Now redefine the EM() and EMe() macros to map the enums to the strings
 * that will be printed in the output.
 */
#undef EM
#undef EMe
#define EM(a, b)
#define EMe(a, b)

/* V4L2_TC_TYPE_* are macros, not defines, they do not need processing */

#define show_timecode_type(type)

#define show_flags(flags)

#define show_timecode_flags(flags)

DECLARE_EVENT_CLASS()

DEFINE_EVENT(v4l2_event_class, v4l2_dqbuf,
	TP_PROTO(int minor, struct v4l2_buffer *buf),
	TP_ARGS(minor, buf)
);

DEFINE_EVENT(v4l2_event_class, v4l2_qbuf,
	TP_PROTO(int minor, struct v4l2_buffer *buf),
	TP_ARGS(minor, buf)
);

DECLARE_EVENT_CLASS()

DEFINE_EVENT(vb2_v4l2_event_class, vb2_v4l2_buf_done,
	TP_PROTO(struct vb2_queue *q, struct vb2_buffer *vb),
	TP_ARGS(q, vb)
);

DEFINE_EVENT(vb2_v4l2_event_class, vb2_v4l2_buf_queue,
	TP_PROTO(struct vb2_queue *q, struct vb2_buffer *vb),
	TP_ARGS(q, vb)
);

DEFINE_EVENT(vb2_v4l2_event_class, vb2_v4l2_dqbuf,
	TP_PROTO(struct vb2_queue *q, struct vb2_buffer *vb),
	TP_ARGS(q, vb)
);

DEFINE_EVENT(vb2_v4l2_event_class, vb2_v4l2_qbuf,
	TP_PROTO(struct vb2_queue *q, struct vb2_buffer *vb),
	TP_ARGS(q, vb)
);

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

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