# Pastebin z3ahDsWO struct v4l2_event { __u32 type; 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 __attribute__((aligned(sizeof(time_t)))); __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 { #ifndef __x86_64__ __u64 value64; #endif __u8 data[64]; } u; __u32 pending; __u32 sequence; struct { __s32 tv_sec; __s32 tv_nsec; } timestamp; __u32 id; __u32 reserved[8]; }; #endif