|
@@ -93,90 +93,86 @@ SHOW_FIELD
|
|
{ V4L2_TC_USERBITS_USERDEFINED, "USERBITS_USERDEFINED" }, \
|
|
{ V4L2_TC_USERBITS_USERDEFINED, "USERBITS_USERDEFINED" }, \
|
|
{ V4L2_TC_USERBITS_8BITCHARS, "USERBITS_8BITCHARS" })
|
|
{ V4L2_TC_USERBITS_8BITCHARS, "USERBITS_8BITCHARS" })
|
|
|
|
|
|
-#define V4L2_TRACE_EVENT(event_name) \
|
|
|
|
- TRACE_EVENT(event_name, \
|
|
|
|
- TP_PROTO(int minor, struct v4l2_buffer *buf), \
|
|
|
|
- \
|
|
|
|
- TP_ARGS(minor, buf), \
|
|
|
|
- \
|
|
|
|
- TP_STRUCT__entry( \
|
|
|
|
- __field(int, minor) \
|
|
|
|
- __field(u32, index) \
|
|
|
|
- __field(u32, type) \
|
|
|
|
- __field(u32, bytesused) \
|
|
|
|
- __field(u32, flags) \
|
|
|
|
- __field(u32, field) \
|
|
|
|
- __field(s64, timestamp) \
|
|
|
|
- __field(u32, timecode_type) \
|
|
|
|
- __field(u32, timecode_flags) \
|
|
|
|
- __field(u8, timecode_frames) \
|
|
|
|
- __field(u8, timecode_seconds) \
|
|
|
|
- __field(u8, timecode_minutes) \
|
|
|
|
- __field(u8, timecode_hours) \
|
|
|
|
- __field(u8, timecode_userbits0) \
|
|
|
|
- __field(u8, timecode_userbits1) \
|
|
|
|
- __field(u8, timecode_userbits2) \
|
|
|
|
- __field(u8, timecode_userbits3) \
|
|
|
|
- __field(u32, sequence) \
|
|
|
|
- ), \
|
|
|
|
- \
|
|
|
|
- TP_fast_assign( \
|
|
|
|
- __entry->minor = minor; \
|
|
|
|
- __entry->index = buf->index; \
|
|
|
|
- __entry->type = buf->type; \
|
|
|
|
- __entry->bytesused = buf->bytesused; \
|
|
|
|
- __entry->flags = buf->flags; \
|
|
|
|
- __entry->field = buf->field; \
|
|
|
|
- __entry->timestamp = \
|
|
|
|
- timeval_to_ns(&buf->timestamp); \
|
|
|
|
- __entry->timecode_type = buf->timecode.type; \
|
|
|
|
- __entry->timecode_flags = buf->timecode.flags; \
|
|
|
|
- __entry->timecode_frames = \
|
|
|
|
- buf->timecode.frames; \
|
|
|
|
- __entry->timecode_seconds = \
|
|
|
|
- buf->timecode.seconds; \
|
|
|
|
- __entry->timecode_minutes = \
|
|
|
|
- buf->timecode.minutes; \
|
|
|
|
- __entry->timecode_hours = buf->timecode.hours; \
|
|
|
|
- __entry->timecode_userbits0 = \
|
|
|
|
- buf->timecode.userbits[0]; \
|
|
|
|
- __entry->timecode_userbits1 = \
|
|
|
|
- buf->timecode.userbits[1]; \
|
|
|
|
- __entry->timecode_userbits2 = \
|
|
|
|
- buf->timecode.userbits[2]; \
|
|
|
|
- __entry->timecode_userbits3 = \
|
|
|
|
- buf->timecode.userbits[3]; \
|
|
|
|
- __entry->sequence = buf->sequence; \
|
|
|
|
- ), \
|
|
|
|
- \
|
|
|
|
- TP_printk("minor = %d, index = %u, type = %s, " \
|
|
|
|
- "bytesused = %u, flags = %s, " \
|
|
|
|
- "field = %s, timestamp = %llu, timecode = { " \
|
|
|
|
- "type = %s, flags = %s, frames = %u, " \
|
|
|
|
- "seconds = %u, minutes = %u, hours = %u, " \
|
|
|
|
- "userbits = { %u %u %u %u } }, " \
|
|
|
|
- "sequence = %u", __entry->minor, \
|
|
|
|
- __entry->index, show_type(__entry->type), \
|
|
|
|
- __entry->bytesused, \
|
|
|
|
- show_flags(__entry->flags), \
|
|
|
|
- show_field(__entry->field), \
|
|
|
|
- __entry->timestamp, \
|
|
|
|
- show_timecode_type(__entry->timecode_type), \
|
|
|
|
- show_timecode_flags(__entry->timecode_flags), \
|
|
|
|
- __entry->timecode_frames, \
|
|
|
|
- __entry->timecode_seconds, \
|
|
|
|
- __entry->timecode_minutes, \
|
|
|
|
- __entry->timecode_hours, \
|
|
|
|
- __entry->timecode_userbits0, \
|
|
|
|
- __entry->timecode_userbits1, \
|
|
|
|
- __entry->timecode_userbits2, \
|
|
|
|
- __entry->timecode_userbits3, \
|
|
|
|
- __entry->sequence \
|
|
|
|
- ) \
|
|
|
|
|
|
+DECLARE_EVENT_CLASS(v4l2_event_class,
|
|
|
|
+ TP_PROTO(int minor, struct v4l2_buffer *buf),
|
|
|
|
+
|
|
|
|
+ TP_ARGS(minor, buf),
|
|
|
|
+
|
|
|
|
+ TP_STRUCT__entry(
|
|
|
|
+ __field(int, minor)
|
|
|
|
+ __field(u32, index)
|
|
|
|
+ __field(u32, type)
|
|
|
|
+ __field(u32, bytesused)
|
|
|
|
+ __field(u32, flags)
|
|
|
|
+ __field(u32, field)
|
|
|
|
+ __field(s64, timestamp)
|
|
|
|
+ __field(u32, timecode_type)
|
|
|
|
+ __field(u32, timecode_flags)
|
|
|
|
+ __field(u8, timecode_frames)
|
|
|
|
+ __field(u8, timecode_seconds)
|
|
|
|
+ __field(u8, timecode_minutes)
|
|
|
|
+ __field(u8, timecode_hours)
|
|
|
|
+ __field(u8, timecode_userbits0)
|
|
|
|
+ __field(u8, timecode_userbits1)
|
|
|
|
+ __field(u8, timecode_userbits2)
|
|
|
|
+ __field(u8, timecode_userbits3)
|
|
|
|
+ __field(u32, sequence)
|
|
|
|
+ ),
|
|
|
|
+
|
|
|
|
+ TP_fast_assign(
|
|
|
|
+ __entry->minor = minor;
|
|
|
|
+ __entry->index = buf->index;
|
|
|
|
+ __entry->type = buf->type;
|
|
|
|
+ __entry->bytesused = buf->bytesused;
|
|
|
|
+ __entry->flags = buf->flags;
|
|
|
|
+ __entry->field = buf->field;
|
|
|
|
+ __entry->timestamp = timeval_to_ns(&buf->timestamp);
|
|
|
|
+ __entry->timecode_type = buf->timecode.type;
|
|
|
|
+ __entry->timecode_flags = buf->timecode.flags;
|
|
|
|
+ __entry->timecode_frames = buf->timecode.frames;
|
|
|
|
+ __entry->timecode_seconds = buf->timecode.seconds;
|
|
|
|
+ __entry->timecode_minutes = buf->timecode.minutes;
|
|
|
|
+ __entry->timecode_hours = buf->timecode.hours;
|
|
|
|
+ __entry->timecode_userbits0 = buf->timecode.userbits[0];
|
|
|
|
+ __entry->timecode_userbits1 = buf->timecode.userbits[1];
|
|
|
|
+ __entry->timecode_userbits2 = buf->timecode.userbits[2];
|
|
|
|
+ __entry->timecode_userbits3 = buf->timecode.userbits[3];
|
|
|
|
+ __entry->sequence = buf->sequence;
|
|
|
|
+ ),
|
|
|
|
+
|
|
|
|
+ TP_printk("minor = %d, index = %u, type = %s, bytesused = %u, "
|
|
|
|
+ "flags = %s, field = %s, timestamp = %llu, "
|
|
|
|
+ "timecode = { type = %s, flags = %s, frames = %u, "
|
|
|
|
+ "seconds = %u, minutes = %u, hours = %u, "
|
|
|
|
+ "userbits = { %u %u %u %u } }, sequence = %u", __entry->minor,
|
|
|
|
+ __entry->index, show_type(__entry->type),
|
|
|
|
+ __entry->bytesused,
|
|
|
|
+ show_flags(__entry->flags),
|
|
|
|
+ show_field(__entry->field),
|
|
|
|
+ __entry->timestamp,
|
|
|
|
+ show_timecode_type(__entry->timecode_type),
|
|
|
|
+ show_timecode_flags(__entry->timecode_flags),
|
|
|
|
+ __entry->timecode_frames,
|
|
|
|
+ __entry->timecode_seconds,
|
|
|
|
+ __entry->timecode_minutes,
|
|
|
|
+ __entry->timecode_hours,
|
|
|
|
+ __entry->timecode_userbits0,
|
|
|
|
+ __entry->timecode_userbits1,
|
|
|
|
+ __entry->timecode_userbits2,
|
|
|
|
+ __entry->timecode_userbits3,
|
|
|
|
+ __entry->sequence
|
|
)
|
|
)
|
|
|
|
+)
|
|
|
|
|
|
-V4L2_TRACE_EVENT(v4l2_dqbuf);
|
|
|
|
-V4L2_TRACE_EVENT(v4l2_qbuf);
|
|
|
|
|
|
+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)
|
|
|
|
+);
|
|
|
|
|
|
#endif /* if !defined(_TRACE_V4L2_H) || defined(TRACE_HEADER_MULTI_READ) */
|
|
#endif /* if !defined(_TRACE_V4L2_H) || defined(TRACE_HEADER_MULTI_READ) */
|
|
|
|
|