# Pastebin dbJUnWPU struct v4l2_event { __u32 type; char __pad[sizeof(time_t) - sizeof(long)]; union { struct v4l2_event_vsync vsync; struct v4l2_event_ctrl ctrl; struct v4l2_event_frame_sync frame_sync; struct v4l2_event_src_change src_change; struct v4l2_event_motion_det motion_det; __u8 data[64]; } u; __u32 pending; __u32 sequence; #ifdef __KERNEL__ struct { __s64 tv_sec; __s64 tv_usec; } timestamp; #else struct timespec timestamp; #endif __u32 id; __u32 reserved[8]; }; #ifdef __KERNEL__ /* * User space will see either 64-bit or 32-bit time_t, which changes * the v4l2_event layout. Both are y2038 safe because the timestamps * are in monotonic time, but the kernel has to handle both cases. */ struct v4l2_event32 { __u32 type; union { __u8 data[64]; } u; __u32 pending; __u32 sequence; struct { __s32 tv_sec; __s32 tv_nsec; } timestamp; __u32 id; __u32 reserved[8]; }; #endif