Cleanup: Move lttng-modules instrumentation headers
[lttng-modules.git] / include / instrumentation / events / v4l2.h
diff --git a/include/instrumentation/events/v4l2.h b/include/instrumentation/events/v4l2.h
new file mode 100644 (file)
index 0000000..dd7551e
--- /dev/null
@@ -0,0 +1,82 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM v4l2
+
+#if !defined(LTTNG_TRACE_V4L2_H) || defined(TRACE_HEADER_MULTI_READ)
+#define LTTNG_TRACE_V4L2_H
+
+#include <lttng/tracepoint-event.h>
+
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
+LTTNG_TRACEPOINT_EVENT_CLASS(v4l2_class,
+
+       TP_PROTO(int minor, struct v4l2_buffer *buf),
+
+       TP_ARGS(minor, buf),
+
+       TP_FIELDS(
+               ctf_integer(int, minor, minor)
+               ctf_integer(u32, index, buf->index)
+               ctf_integer(u32, type, buf->type)
+               ctf_integer(u32, bytesused, buf->bytesused)
+               ctf_integer(u32, flags, buf->flags)
+               ctf_integer(u32, field, buf->field)
+               ctf_integer(s64, timestamp, v4l2_buffer_get_timestamp(buf))
+               ctf_integer(u32, timecode_type, buf->timecode.type)
+               ctf_integer(u32, timecode_flags, buf->timecode.flags)
+               ctf_integer(u8, timecode_frames, buf->timecode.frames)
+               ctf_integer(u8, timecode_seconds, buf->timecode.seconds)
+               ctf_integer(u8, timecode_minutes, buf->timecode.minutes)
+               ctf_integer(u8, timecode_hours, buf->timecode.hours)
+               ctf_array(u8, timecode_userbits, buf->timecode.userbits, 4)
+               ctf_integer(u32, sequence, buf->sequence)
+       )
+)
+#else
+LTTNG_TRACEPOINT_EVENT_CLASS(v4l2_class,
+
+       TP_PROTO(int minor, struct v4l2_buffer *buf),
+
+       TP_ARGS(minor, buf),
+
+       TP_FIELDS(
+               ctf_integer(int, minor, minor)
+               ctf_integer(u32, index, buf->index)
+               ctf_integer(u32, type, buf->type)
+               ctf_integer(u32, bytesused, buf->bytesused)
+               ctf_integer(u32, flags, buf->flags)
+               ctf_integer(u32, field, buf->field)
+               ctf_integer(s64, timestamp, timeval_to_ns(&buf->timestamp))
+               ctf_integer(u32, timecode_type, buf->timecode.type)
+               ctf_integer(u32, timecode_flags, buf->timecode.flags)
+               ctf_integer(u8, timecode_frames, buf->timecode.frames)
+               ctf_integer(u8, timecode_seconds, buf->timecode.seconds)
+               ctf_integer(u8, timecode_minutes, buf->timecode.minutes)
+               ctf_integer(u8, timecode_hours, buf->timecode.hours)
+               ctf_array(u8, timecode_userbits, buf->timecode.userbits, 4)
+               ctf_integer(u32, sequence, buf->sequence)
+       )
+)
+#endif
+
+LTTNG_TRACEPOINT_EVENT_INSTANCE(v4l2_class,
+       v4l2_dqbuf,
+
+       TP_PROTO(int minor, struct v4l2_buffer *buf),
+
+       TP_ARGS(minor, buf)
+)
+
+LTTNG_TRACEPOINT_EVENT_INSTANCE(v4l2_class,
+
+       v4l2_qbuf,
+
+       TP_PROTO(int minor, struct v4l2_buffer *buf),
+
+       TP_ARGS(minor, buf)
+)
+
+#endif /* if !defined(LTTNG_TRACE_V4L2_H) || defined(TRACE_HEADER_MULTI_READ) */
+
+/* This part must be outside protection */
+#include <lttng/define_trace.h>
This page took 0.025169 seconds and 4 git commands to generate.