/* automatically generated by rust-bindgen 0.70.1 */

#[repr(C)]
#[derive(Default)]
pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
impl<T> __IncompleteArrayField<T> {
    #[inline]
    pub const fn new() -> Self {
        __IncompleteArrayField(::core::marker::PhantomData, [])
    }
    #[inline]
    pub fn as_ptr(&self) -> *const T {
        self as *const _ as *const T
    }
    #[inline]
    pub fn as_mut_ptr(&mut self) -> *mut T {
        self as *mut _ as *mut T
    }
    #[inline]
    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
        ::core::slice::from_raw_parts(self.as_ptr(), len)
    }
    #[inline]
    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
        ::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
    }
}
impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
    fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        fmt.write_str("__IncompleteArrayField")
    }
}
pub const __GNUC_VA_LIST: u32 = 1;
pub const _SYS_TYPES_H: u32 = 1;
pub const _FEATURES_H: u32 = 1;
pub const _DEFAULT_SOURCE: u32 = 1;
pub const __GLIBC_USE_ISOC2X: u32 = 0;
pub const __USE_ISOC11: u32 = 1;
pub const __USE_ISOC99: u32 = 1;
pub const __USE_ISOC95: u32 = 1;
pub const __USE_POSIX_IMPLICITLY: u32 = 1;
pub const _POSIX_SOURCE: u32 = 1;
pub const _POSIX_C_SOURCE: u32 = 200809;
pub const __USE_POSIX: u32 = 1;
pub const __USE_POSIX2: u32 = 1;
pub const __USE_POSIX199309: u32 = 1;
pub const __USE_POSIX199506: u32 = 1;
pub const __USE_XOPEN2K: u32 = 1;
pub const __USE_XOPEN2K8: u32 = 1;
pub const _ATFILE_SOURCE: u32 = 1;
pub const __WORDSIZE: u32 = 64;
pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
pub const __SYSCALL_WORDSIZE: u32 = 64;
pub const __TIMESIZE: u32 = 64;
pub const __USE_MISC: u32 = 1;
pub const __USE_ATFILE: u32 = 1;
pub const __USE_FORTIFY_LEVEL: u32 = 0;
pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
pub const _STDC_PREDEF_H: u32 = 1;
pub const __STDC_IEC_559__: u32 = 1;
pub const __STDC_IEC_60559_BFP__: u32 = 201404;
pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404;
pub const __STDC_ISO_10646__: u32 = 201706;
pub const __GNU_LIBRARY__: u32 = 6;
pub const __GLIBC__: u32 = 2;
pub const __GLIBC_MINOR__: u32 = 36;
pub const _SYS_CDEFS_H: u32 = 1;
pub const __glibc_c99_flexarr_available: u32 = 1;
pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0;
pub const __HAVE_GENERIC_SELECTION: u32 = 1;
pub const _BITS_TYPES_H: u32 = 1;
pub const _BITS_TYPESIZES_H: u32 = 1;
pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
pub const __INO_T_MATCHES_INO64_T: u32 = 1;
pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
pub const __STATFS_MATCHES_STATFS64: u32 = 1;
pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1;
pub const __FD_SETSIZE: u32 = 1024;
pub const _BITS_TIME64_H: u32 = 1;
pub const __clock_t_defined: u32 = 1;
pub const __clockid_t_defined: u32 = 1;
pub const __time_t_defined: u32 = 1;
pub const __timer_t_defined: u32 = 1;
pub const _BITS_STDINT_INTN_H: u32 = 1;
pub const __BIT_TYPES_DEFINED__: u32 = 1;
pub const _ENDIAN_H: u32 = 1;
pub const _BITS_ENDIAN_H: u32 = 1;
pub const __LITTLE_ENDIAN: u32 = 1234;
pub const __BIG_ENDIAN: u32 = 4321;
pub const __PDP_ENDIAN: u32 = 3412;
pub const _BITS_ENDIANNESS_H: u32 = 1;
pub const __BYTE_ORDER: u32 = 1234;
pub const __FLOAT_WORD_ORDER: u32 = 1234;
pub const LITTLE_ENDIAN: u32 = 1234;
pub const BIG_ENDIAN: u32 = 4321;
pub const PDP_ENDIAN: u32 = 3412;
pub const BYTE_ORDER: u32 = 1234;
pub const _BITS_BYTESWAP_H: u32 = 1;
pub const _BITS_UINTN_IDENTITY_H: u32 = 1;
pub const _SYS_SELECT_H: u32 = 1;
pub const __sigset_t_defined: u32 = 1;
pub const __timeval_defined: u32 = 1;
pub const _STRUCT_TIMESPEC: u32 = 1;
pub const FD_SETSIZE: u32 = 1024;
pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1;
pub const _THREAD_SHARED_TYPES_H: u32 = 1;
pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1;
pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40;
pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56;
pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56;
pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32;
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4;
pub const __SIZEOF_PTHREAD_COND_T: u32 = 48;
pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4;
pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8;
pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4;
pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1;
pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1;
pub const __have_pthread_attr_t: u32 = 1;
pub const _STDINT_H: u32 = 1;
pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0;
pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0;
pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
pub const _BITS_WCHAR_H: u32 = 1;
pub const _BITS_STDINT_UINTN_H: u32 = 1;
pub const INT8_MIN: i32 = -128;
pub const INT16_MIN: i32 = -32768;
pub const INT32_MIN: i32 = -2147483648;
pub const INT8_MAX: u32 = 127;
pub const INT16_MAX: u32 = 32767;
pub const INT32_MAX: u32 = 2147483647;
pub const UINT8_MAX: u32 = 255;
pub const UINT16_MAX: u32 = 65535;
pub const UINT32_MAX: u32 = 4294967295;
pub const INT_LEAST8_MIN: i32 = -128;
pub const INT_LEAST16_MIN: i32 = -32768;
pub const INT_LEAST32_MIN: i32 = -2147483648;
pub const INT_LEAST8_MAX: u32 = 127;
pub const INT_LEAST16_MAX: u32 = 32767;
pub const INT_LEAST32_MAX: u32 = 2147483647;
pub const UINT_LEAST8_MAX: u32 = 255;
pub const UINT_LEAST16_MAX: u32 = 65535;
pub const UINT_LEAST32_MAX: u32 = 4294967295;
pub const INT_FAST8_MIN: i32 = -128;
pub const INT_FAST16_MIN: i64 = -9223372036854775808;
pub const INT_FAST32_MIN: i64 = -9223372036854775808;
pub const INT_FAST8_MAX: u32 = 127;
pub const INT_FAST16_MAX: u64 = 9223372036854775807;
pub const INT_FAST32_MAX: u64 = 9223372036854775807;
pub const UINT_FAST8_MAX: u32 = 255;
pub const UINT_FAST16_MAX: i32 = -1;
pub const UINT_FAST32_MAX: i32 = -1;
pub const INTPTR_MIN: i64 = -9223372036854775808;
pub const INTPTR_MAX: u64 = 9223372036854775807;
pub const UINTPTR_MAX: i32 = -1;
pub const PTRDIFF_MIN: i64 = -9223372036854775808;
pub const PTRDIFF_MAX: u64 = 9223372036854775807;
pub const SIG_ATOMIC_MIN: i32 = -2147483648;
pub const SIG_ATOMIC_MAX: u32 = 2147483647;
pub const SIZE_MAX: i32 = -1;
pub const WINT_MIN: u32 = 0;
pub const WINT_MAX: u32 = 4294967295;
pub const __BITS_PER_LONG: u32 = 64;
pub const __BITS_PER_LONG_LONG: u32 = 64;
pub const _IOC_NRBITS: u32 = 8;
pub const _IOC_TYPEBITS: u32 = 8;
pub const _IOC_SIZEBITS: u32 = 14;
pub const _IOC_DIRBITS: u32 = 2;
pub const _IOC_NRMASK: u32 = 255;
pub const _IOC_TYPEMASK: u32 = 255;
pub const _IOC_SIZEMASK: u32 = 16383;
pub const _IOC_DIRMASK: u32 = 3;
pub const _IOC_NRSHIFT: u32 = 0;
pub const _IOC_TYPESHIFT: u32 = 8;
pub const _IOC_SIZESHIFT: u32 = 16;
pub const _IOC_DIRSHIFT: u32 = 30;
pub const _IOC_NONE: u32 = 0;
pub const _IOC_WRITE: u32 = 1;
pub const _IOC_READ: u32 = 2;
pub const IOC_IN: u32 = 1073741824;
pub const IOC_OUT: u32 = 2147483648;
pub const IOC_INOUT: u32 = 3221225472;
pub const IOCSIZE_MASK: u32 = 1073676288;
pub const IOCSIZE_SHIFT: u32 = 16;
pub const DRM_NAME: &[u8; 4] = b"drm\0";
pub const DRM_MIN_ORDER: u32 = 5;
pub const DRM_MAX_ORDER: u32 = 22;
pub const DRM_RAM_PERCENT: u32 = 10;
pub const _DRM_LOCK_HELD: u32 = 2147483648;
pub const _DRM_LOCK_CONT: u32 = 1073741824;
pub const _DRM_VBLANK_HIGH_CRTC_SHIFT: u32 = 1;
pub const _DRM_PRE_MODESET: u32 = 1;
pub const _DRM_POST_MODESET: u32 = 2;
pub const DRM_CAP_DUMB_BUFFER: u32 = 1;
pub const DRM_CAP_VBLANK_HIGH_CRTC: u32 = 2;
pub const DRM_CAP_DUMB_PREFERRED_DEPTH: u32 = 3;
pub const DRM_CAP_DUMB_PREFER_SHADOW: u32 = 4;
pub const DRM_CAP_PRIME: u32 = 5;
pub const DRM_PRIME_CAP_IMPORT: u32 = 1;
pub const DRM_PRIME_CAP_EXPORT: u32 = 2;
pub const DRM_CAP_TIMESTAMP_MONOTONIC: u32 = 6;
pub const DRM_CAP_ASYNC_PAGE_FLIP: u32 = 7;
pub const DRM_CAP_CURSOR_WIDTH: u32 = 8;
pub const DRM_CAP_CURSOR_HEIGHT: u32 = 9;
pub const DRM_CAP_ADDFB2_MODIFIERS: u32 = 16;
pub const DRM_CAP_PAGE_FLIP_TARGET: u32 = 17;
pub const DRM_CAP_CRTC_IN_VBLANK_EVENT: u32 = 18;
pub const DRM_CAP_SYNCOBJ: u32 = 19;
pub const DRM_CAP_SYNCOBJ_TIMELINE: u32 = 20;
pub const DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP: u32 = 21;
pub const DRM_CLIENT_CAP_STEREO_3D: u32 = 1;
pub const DRM_CLIENT_CAP_UNIVERSAL_PLANES: u32 = 2;
pub const DRM_CLIENT_CAP_ATOMIC: u32 = 3;
pub const DRM_CLIENT_CAP_ASPECT_RATIO: u32 = 4;
pub const DRM_CLIENT_CAP_WRITEBACK_CONNECTORS: u32 = 5;
pub const DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT: u32 = 6;
pub const DRM_SYNCOBJ_CREATE_SIGNALED: u32 = 1;
pub const DRM_SYNCOBJ_FD_TO_HANDLE_FLAGS_IMPORT_SYNC_FILE: u32 = 1;
pub const DRM_SYNCOBJ_HANDLE_TO_FD_FLAGS_EXPORT_SYNC_FILE: u32 = 1;
pub const DRM_SYNCOBJ_WAIT_FLAGS_WAIT_ALL: u32 = 1;
pub const DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT: u32 = 2;
pub const DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE: u32 = 4;
pub const DRM_SYNCOBJ_WAIT_FLAGS_WAIT_DEADLINE: u32 = 8;
pub const DRM_SYNCOBJ_QUERY_FLAGS_LAST_SUBMITTED: u32 = 1;
pub const DRM_CRTC_SEQUENCE_RELATIVE: u32 = 1;
pub const DRM_CRTC_SEQUENCE_NEXT_ON_MISS: u32 = 2;
pub const DRM_CONNECTOR_NAME_LEN: u32 = 32;
pub const DRM_DISPLAY_MODE_LEN: u32 = 32;
pub const DRM_PROP_NAME_LEN: u32 = 32;
pub const DRM_MODE_TYPE_BUILTIN: u32 = 1;
pub const DRM_MODE_TYPE_CLOCK_C: u32 = 3;
pub const DRM_MODE_TYPE_CRTC_C: u32 = 5;
pub const DRM_MODE_TYPE_PREFERRED: u32 = 8;
pub const DRM_MODE_TYPE_DEFAULT: u32 = 16;
pub const DRM_MODE_TYPE_USERDEF: u32 = 32;
pub const DRM_MODE_TYPE_DRIVER: u32 = 64;
pub const DRM_MODE_TYPE_ALL: u32 = 104;
pub const DRM_MODE_FLAG_PHSYNC: u32 = 1;
pub const DRM_MODE_FLAG_NHSYNC: u32 = 2;
pub const DRM_MODE_FLAG_PVSYNC: u32 = 4;
pub const DRM_MODE_FLAG_NVSYNC: u32 = 8;
pub const DRM_MODE_FLAG_INTERLACE: u32 = 16;
pub const DRM_MODE_FLAG_DBLSCAN: u32 = 32;
pub const DRM_MODE_FLAG_CSYNC: u32 = 64;
pub const DRM_MODE_FLAG_PCSYNC: u32 = 128;
pub const DRM_MODE_FLAG_NCSYNC: u32 = 256;
pub const DRM_MODE_FLAG_HSKEW: u32 = 512;
pub const DRM_MODE_FLAG_BCAST: u32 = 1024;
pub const DRM_MODE_FLAG_PIXMUX: u32 = 2048;
pub const DRM_MODE_FLAG_DBLCLK: u32 = 4096;
pub const DRM_MODE_FLAG_CLKDIV2: u32 = 8192;
pub const DRM_MODE_FLAG_3D_MASK: u32 = 507904;
pub const DRM_MODE_FLAG_3D_NONE: u32 = 0;
pub const DRM_MODE_FLAG_3D_FRAME_PACKING: u32 = 16384;
pub const DRM_MODE_FLAG_3D_FIELD_ALTERNATIVE: u32 = 32768;
pub const DRM_MODE_FLAG_3D_LINE_ALTERNATIVE: u32 = 49152;
pub const DRM_MODE_FLAG_3D_SIDE_BY_SIDE_FULL: u32 = 65536;
pub const DRM_MODE_FLAG_3D_L_DEPTH: u32 = 81920;
pub const DRM_MODE_FLAG_3D_L_DEPTH_GFX_GFX_DEPTH: u32 = 98304;
pub const DRM_MODE_FLAG_3D_TOP_AND_BOTTOM: u32 = 114688;
pub const DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF: u32 = 131072;
pub const DRM_MODE_PICTURE_ASPECT_NONE: u32 = 0;
pub const DRM_MODE_PICTURE_ASPECT_4_3: u32 = 1;
pub const DRM_MODE_PICTURE_ASPECT_16_9: u32 = 2;
pub const DRM_MODE_PICTURE_ASPECT_64_27: u32 = 3;
pub const DRM_MODE_PICTURE_ASPECT_256_135: u32 = 4;
pub const DRM_MODE_CONTENT_TYPE_NO_DATA: u32 = 0;
pub const DRM_MODE_CONTENT_TYPE_GRAPHICS: u32 = 1;
pub const DRM_MODE_CONTENT_TYPE_PHOTO: u32 = 2;
pub const DRM_MODE_CONTENT_TYPE_CINEMA: u32 = 3;
pub const DRM_MODE_CONTENT_TYPE_GAME: u32 = 4;
pub const DRM_MODE_FLAG_PIC_AR_MASK: u32 = 7864320;
pub const DRM_MODE_FLAG_PIC_AR_NONE: u32 = 0;
pub const DRM_MODE_FLAG_PIC_AR_4_3: u32 = 524288;
pub const DRM_MODE_FLAG_PIC_AR_16_9: u32 = 1048576;
pub const DRM_MODE_FLAG_PIC_AR_64_27: u32 = 1572864;
pub const DRM_MODE_FLAG_PIC_AR_256_135: u32 = 2097152;
pub const DRM_MODE_FLAG_ALL: u32 = 521215;
pub const DRM_MODE_DPMS_ON: u32 = 0;
pub const DRM_MODE_DPMS_STANDBY: u32 = 1;
pub const DRM_MODE_DPMS_SUSPEND: u32 = 2;
pub const DRM_MODE_DPMS_OFF: u32 = 3;
pub const DRM_MODE_SCALE_NONE: u32 = 0;
pub const DRM_MODE_SCALE_FULLSCREEN: u32 = 1;
pub const DRM_MODE_SCALE_CENTER: u32 = 2;
pub const DRM_MODE_SCALE_ASPECT: u32 = 3;
pub const DRM_MODE_DITHERING_OFF: u32 = 0;
pub const DRM_MODE_DITHERING_ON: u32 = 1;
pub const DRM_MODE_DITHERING_AUTO: u32 = 2;
pub const DRM_MODE_DIRTY_OFF: u32 = 0;
pub const DRM_MODE_DIRTY_ON: u32 = 1;
pub const DRM_MODE_DIRTY_ANNOTATE: u32 = 2;
pub const DRM_MODE_LINK_STATUS_GOOD: u32 = 0;
pub const DRM_MODE_LINK_STATUS_BAD: u32 = 1;
pub const DRM_MODE_ROTATE_0: u32 = 1;
pub const DRM_MODE_ROTATE_90: u32 = 2;
pub const DRM_MODE_ROTATE_180: u32 = 4;
pub const DRM_MODE_ROTATE_270: u32 = 8;
pub const DRM_MODE_ROTATE_MASK: u32 = 15;
pub const DRM_MODE_REFLECT_X: u32 = 16;
pub const DRM_MODE_REFLECT_Y: u32 = 32;
pub const DRM_MODE_REFLECT_MASK: u32 = 48;
pub const DRM_MODE_CONTENT_PROTECTION_UNDESIRED: u32 = 0;
pub const DRM_MODE_CONTENT_PROTECTION_DESIRED: u32 = 1;
pub const DRM_MODE_CONTENT_PROTECTION_ENABLED: u32 = 2;
pub const DRM_MODE_PRESENT_TOP_FIELD: u32 = 1;
pub const DRM_MODE_PRESENT_BOTTOM_FIELD: u32 = 2;
pub const DRM_MODE_ENCODER_NONE: u32 = 0;
pub const DRM_MODE_ENCODER_DAC: u32 = 1;
pub const DRM_MODE_ENCODER_TMDS: u32 = 2;
pub const DRM_MODE_ENCODER_LVDS: u32 = 3;
pub const DRM_MODE_ENCODER_TVDAC: u32 = 4;
pub const DRM_MODE_ENCODER_VIRTUAL: u32 = 5;
pub const DRM_MODE_ENCODER_DSI: u32 = 6;
pub const DRM_MODE_ENCODER_DPMST: u32 = 7;
pub const DRM_MODE_ENCODER_DPI: u32 = 8;
pub const DRM_MODE_CONNECTOR_Unknown: u32 = 0;
pub const DRM_MODE_CONNECTOR_VGA: u32 = 1;
pub const DRM_MODE_CONNECTOR_DVII: u32 = 2;
pub const DRM_MODE_CONNECTOR_DVID: u32 = 3;
pub const DRM_MODE_CONNECTOR_DVIA: u32 = 4;
pub const DRM_MODE_CONNECTOR_Composite: u32 = 5;
pub const DRM_MODE_CONNECTOR_SVIDEO: u32 = 6;
pub const DRM_MODE_CONNECTOR_LVDS: u32 = 7;
pub const DRM_MODE_CONNECTOR_Component: u32 = 8;
pub const DRM_MODE_CONNECTOR_9PinDIN: u32 = 9;
pub const DRM_MODE_CONNECTOR_DisplayPort: u32 = 10;
pub const DRM_MODE_CONNECTOR_HDMIA: u32 = 11;
pub const DRM_MODE_CONNECTOR_HDMIB: u32 = 12;
pub const DRM_MODE_CONNECTOR_TV: u32 = 13;
pub const DRM_MODE_CONNECTOR_eDP: u32 = 14;
pub const DRM_MODE_CONNECTOR_VIRTUAL: u32 = 15;
pub const DRM_MODE_CONNECTOR_DSI: u32 = 16;
pub const DRM_MODE_CONNECTOR_DPI: u32 = 17;
pub const DRM_MODE_CONNECTOR_WRITEBACK: u32 = 18;
pub const DRM_MODE_CONNECTOR_SPI: u32 = 19;
pub const DRM_MODE_CONNECTOR_USB: u32 = 20;
pub const DRM_MODE_PROP_PENDING: u32 = 1;
pub const DRM_MODE_PROP_RANGE: u32 = 2;
pub const DRM_MODE_PROP_IMMUTABLE: u32 = 4;
pub const DRM_MODE_PROP_ENUM: u32 = 8;
pub const DRM_MODE_PROP_BLOB: u32 = 16;
pub const DRM_MODE_PROP_BITMASK: u32 = 32;
pub const DRM_MODE_PROP_LEGACY_TYPE: u32 = 58;
pub const DRM_MODE_PROP_EXTENDED_TYPE: u32 = 65472;
pub const DRM_MODE_PROP_ATOMIC: u32 = 2147483648;
pub const DRM_MODE_OBJECT_CRTC: u32 = 3435973836;
pub const DRM_MODE_OBJECT_CONNECTOR: u32 = 3233857728;
pub const DRM_MODE_OBJECT_ENCODER: u32 = 3772834016;
pub const DRM_MODE_OBJECT_MODE: u32 = 3739147998;
pub const DRM_MODE_OBJECT_PROPERTY: u32 = 2964369584;
pub const DRM_MODE_OBJECT_FB: u32 = 4227595259;
pub const DRM_MODE_OBJECT_BLOB: u32 = 3149642683;
pub const DRM_MODE_OBJECT_PLANE: u32 = 4008636142;
pub const DRM_MODE_OBJECT_ANY: u32 = 0;
pub const DRM_MODE_FB_INTERLACED: u32 = 1;
pub const DRM_MODE_FB_MODIFIERS: u32 = 2;
pub const DRM_MODE_FB_DIRTY_ANNOTATE_COPY: u32 = 1;
pub const DRM_MODE_FB_DIRTY_ANNOTATE_FILL: u32 = 2;
pub const DRM_MODE_FB_DIRTY_FLAGS: u32 = 3;
pub const DRM_MODE_FB_DIRTY_MAX_CLIPS: u32 = 256;
pub const DRM_MODE_CURSOR_BO: u32 = 1;
pub const DRM_MODE_CURSOR_MOVE: u32 = 2;
pub const DRM_MODE_CURSOR_FLAGS: u32 = 3;
pub const DRM_MODE_PAGE_FLIP_EVENT: u32 = 1;
pub const DRM_MODE_PAGE_FLIP_ASYNC: u32 = 2;
pub const DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE: u32 = 4;
pub const DRM_MODE_PAGE_FLIP_TARGET_RELATIVE: u32 = 8;
pub const DRM_MODE_PAGE_FLIP_TARGET: u32 = 12;
pub const DRM_MODE_PAGE_FLIP_FLAGS: u32 = 15;
pub const DRM_MODE_ATOMIC_TEST_ONLY: u32 = 256;
pub const DRM_MODE_ATOMIC_NONBLOCK: u32 = 512;
pub const DRM_MODE_ATOMIC_ALLOW_MODESET: u32 = 1024;
pub const DRM_MODE_ATOMIC_FLAGS: u32 = 1795;
pub const FORMAT_BLOB_CURRENT: u32 = 1;
pub const DRM_IOCTL_BASE: u8 = 100u8;
pub const DRM_COMMAND_BASE: u32 = 64;
pub const DRM_COMMAND_END: u32 = 160;
pub const DRM_EVENT_VBLANK: u32 = 1;
pub const DRM_EVENT_FLIP_COMPLETE: u32 = 2;
pub const DRM_EVENT_CRTC_SEQUENCE: u32 = 3;
pub const DRM_MAX_MINOR: u32 = 64;
pub const DRM_IOC_VOID: u32 = 0;
pub const DRM_IOC_READ: u32 = 2;
pub const DRM_IOC_WRITE: u32 = 1;
pub const DRM_IOC_READWRITE: u32 = 3;
pub const DRM_DEV_UID: u32 = 0;
pub const DRM_DEV_GID: u32 = 0;
pub const DRM_DIR_NAME: &[u8; 9] = b"/dev/dri\0";
pub const DRM_PRIMARY_MINOR_NAME: &[u8; 5] = b"card\0";
pub const DRM_CONTROL_MINOR_NAME: &[u8; 9] = b"controlD\0";
pub const DRM_RENDER_MINOR_NAME: &[u8; 8] = b"renderD\0";
pub const DRM_PROC_NAME: &[u8; 11] = b"/proc/dri/\0";
pub const DRM_DEV_NAME: &[u8; 10] = b"%s/card%d\0";
pub const DRM_CONTROL_DEV_NAME: &[u8; 14] = b"%s/controlD%d\0";
pub const DRM_RENDER_DEV_NAME: &[u8; 13] = b"%s/renderD%d\0";
pub const DRM_ERR_NO_DEVICE: i32 = -1001;
pub const DRM_ERR_NO_ACCESS: i32 = -1002;
pub const DRM_ERR_NOT_ROOT: i32 = -1003;
pub const DRM_ERR_INVALID: i32 = -1004;
pub const DRM_ERR_NO_FD: i32 = -1005;
pub const DRM_AGP_NO_HANDLE: u32 = 0;
pub const DRM_VBLANK_HIGH_CRTC_SHIFT: u32 = 1;
pub const DRM_LOCK_HELD: u32 = 2147483648;
pub const DRM_LOCK_CONT: u32 = 1073741824;
pub const DRM_NODE_PRIMARY: u32 = 0;
pub const DRM_NODE_CONTROL: u32 = 1;
pub const DRM_NODE_RENDER: u32 = 2;
pub const DRM_NODE_MAX: u32 = 3;
pub const DRM_EVENT_CONTEXT_VERSION: u32 = 4;
pub const DRM_BUS_PCI: u32 = 0;
pub const DRM_BUS_USB: u32 = 1;
pub const DRM_BUS_PLATFORM: u32 = 2;
pub const DRM_BUS_HOST1X: u32 = 3;
pub const DRM_PLATFORM_DEVICE_NAME_LEN: u32 = 512;
pub const DRM_HOST1X_DEVICE_NAME_LEN: u32 = 512;
pub const DRM_DEVICE_GET_PCI_REVISION: u32 = 1;
pub const __bool_true_false_are_defined: u32 = 1;
pub const true_: u32 = 1;
pub const false_: u32 = 0;
pub const DRM_MODE_FEATURE_KMS: u32 = 1;
pub const DRM_MODE_FEATURE_DIRTYFB: u32 = 1;
pub const DRM_PLANE_TYPE_OVERLAY: u32 = 0;
pub const DRM_PLANE_TYPE_PRIMARY: u32 = 1;
pub const DRM_PLANE_TYPE_CURSOR: u32 = 2;
pub type va_list = __builtin_va_list;
pub type __gnuc_va_list = __builtin_va_list;
pub type __u_char = ::core::ffi::c_uchar;
pub type __u_short = ::core::ffi::c_ushort;
pub type __u_int = ::core::ffi::c_uint;
pub type __u_long = ::core::ffi::c_ulong;
pub type __int8_t = ::core::ffi::c_schar;
pub type __uint8_t = ::core::ffi::c_uchar;
pub type __int16_t = ::core::ffi::c_short;
pub type __uint16_t = ::core::ffi::c_ushort;
pub type __int32_t = ::core::ffi::c_int;
pub type __uint32_t = ::core::ffi::c_uint;
pub type __int64_t = ::core::ffi::c_long;
pub type __uint64_t = ::core::ffi::c_ulong;
pub type __int_least8_t = __int8_t;
pub type __uint_least8_t = __uint8_t;
pub type __int_least16_t = __int16_t;
pub type __uint_least16_t = __uint16_t;
pub type __int_least32_t = __int32_t;
pub type __uint_least32_t = __uint32_t;
pub type __int_least64_t = __int64_t;
pub type __uint_least64_t = __uint64_t;
pub type __quad_t = ::core::ffi::c_long;
pub type __u_quad_t = ::core::ffi::c_ulong;
pub type __intmax_t = ::core::ffi::c_long;
pub type __uintmax_t = ::core::ffi::c_ulong;
pub type __dev_t = ::core::ffi::c_ulong;
pub type __uid_t = ::core::ffi::c_uint;
pub type __gid_t = ::core::ffi::c_uint;
pub type __ino_t = ::core::ffi::c_ulong;
pub type __ino64_t = ::core::ffi::c_ulong;
pub type __mode_t = ::core::ffi::c_uint;
pub type __nlink_t = ::core::ffi::c_ulong;
pub type __off_t = ::core::ffi::c_long;
pub type __off64_t = ::core::ffi::c_long;
pub type __pid_t = ::core::ffi::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __fsid_t {
    pub __val: [::core::ffi::c_int; 2usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of __fsid_t"][::core::mem::size_of::<__fsid_t>() - 8usize];
    ["Alignment of __fsid_t"][::core::mem::align_of::<__fsid_t>() - 4usize];
    ["Offset of field: __fsid_t::__val"][::core::mem::offset_of!(__fsid_t, __val) - 0usize];
};
pub type __clock_t = ::core::ffi::c_long;
pub type __rlim_t = ::core::ffi::c_ulong;
pub type __rlim64_t = ::core::ffi::c_ulong;
pub type __id_t = ::core::ffi::c_uint;
pub type __time_t = ::core::ffi::c_long;
pub type __useconds_t = ::core::ffi::c_uint;
pub type __suseconds_t = ::core::ffi::c_long;
pub type __suseconds64_t = ::core::ffi::c_long;
pub type __daddr_t = ::core::ffi::c_int;
pub type __key_t = ::core::ffi::c_int;
pub type __clockid_t = ::core::ffi::c_int;
pub type __timer_t = *mut ::core::ffi::c_void;
pub type __blksize_t = ::core::ffi::c_long;
pub type __blkcnt_t = ::core::ffi::c_long;
pub type __blkcnt64_t = ::core::ffi::c_long;
pub type __fsblkcnt_t = ::core::ffi::c_ulong;
pub type __fsblkcnt64_t = ::core::ffi::c_ulong;
pub type __fsfilcnt_t = ::core::ffi::c_ulong;
pub type __fsfilcnt64_t = ::core::ffi::c_ulong;
pub type __fsword_t = ::core::ffi::c_long;
pub type __ssize_t = ::core::ffi::c_long;
pub type __syscall_slong_t = ::core::ffi::c_long;
pub type __syscall_ulong_t = ::core::ffi::c_ulong;
pub type __loff_t = __off64_t;
pub type __caddr_t = *mut ::core::ffi::c_char;
pub type __intptr_t = ::core::ffi::c_long;
pub type __socklen_t = ::core::ffi::c_uint;
pub type __sig_atomic_t = ::core::ffi::c_int;
pub type u_char = __u_char;
pub type u_short = __u_short;
pub type u_int = __u_int;
pub type u_long = __u_long;
pub type quad_t = __quad_t;
pub type u_quad_t = __u_quad_t;
pub type fsid_t = __fsid_t;
pub type loff_t = __loff_t;
pub type ino_t = __ino_t;
pub type dev_t = __dev_t;
pub type gid_t = __gid_t;
pub type mode_t = __mode_t;
pub type nlink_t = __nlink_t;
pub type uid_t = __uid_t;
pub type off_t = __off_t;
pub type pid_t = __pid_t;
pub type id_t = __id_t;
pub type daddr_t = __daddr_t;
pub type caddr_t = __caddr_t;
pub type key_t = __key_t;
pub type clock_t = __clock_t;
pub type clockid_t = __clockid_t;
pub type time_t = __time_t;
pub type timer_t = __timer_t;
pub type ulong = ::core::ffi::c_ulong;
pub type ushort = ::core::ffi::c_ushort;
pub type uint = ::core::ffi::c_uint;
pub type u_int8_t = __uint8_t;
pub type u_int16_t = __uint16_t;
pub type u_int32_t = __uint32_t;
pub type u_int64_t = __uint64_t;
pub type register_t = ::core::ffi::c_long;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __sigset_t {
    pub __val: [::core::ffi::c_ulong; 16usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of __sigset_t"][::core::mem::size_of::<__sigset_t>() - 128usize];
    ["Alignment of __sigset_t"][::core::mem::align_of::<__sigset_t>() - 8usize];
    ["Offset of field: __sigset_t::__val"][::core::mem::offset_of!(__sigset_t, __val) - 0usize];
};
pub type sigset_t = __sigset_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct timeval {
    pub tv_sec: __time_t,
    pub tv_usec: __suseconds_t,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of timeval"][::core::mem::size_of::<timeval>() - 16usize];
    ["Alignment of timeval"][::core::mem::align_of::<timeval>() - 8usize];
    ["Offset of field: timeval::tv_sec"][::core::mem::offset_of!(timeval, tv_sec) - 0usize];
    ["Offset of field: timeval::tv_usec"][::core::mem::offset_of!(timeval, tv_usec) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct timespec {
    pub tv_sec: __time_t,
    pub tv_nsec: __syscall_slong_t,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of timespec"][::core::mem::size_of::<timespec>() - 16usize];
    ["Alignment of timespec"][::core::mem::align_of::<timespec>() - 8usize];
    ["Offset of field: timespec::tv_sec"][::core::mem::offset_of!(timespec, tv_sec) - 0usize];
    ["Offset of field: timespec::tv_nsec"][::core::mem::offset_of!(timespec, tv_nsec) - 8usize];
};
pub type suseconds_t = __suseconds_t;
pub type __fd_mask = ::core::ffi::c_long;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct fd_set {
    pub __fds_bits: [__fd_mask; 16usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of fd_set"][::core::mem::size_of::<fd_set>() - 128usize];
    ["Alignment of fd_set"][::core::mem::align_of::<fd_set>() - 8usize];
    ["Offset of field: fd_set::__fds_bits"][::core::mem::offset_of!(fd_set, __fds_bits) - 0usize];
};
pub type fd_mask = __fd_mask;
pub type blksize_t = __blksize_t;
pub type blkcnt_t = __blkcnt_t;
pub type fsblkcnt_t = __fsblkcnt_t;
pub type fsfilcnt_t = __fsfilcnt_t;
#[repr(C)]
#[derive(Copy, Clone)]
pub union __atomic_wide_counter {
    pub __value64: ::core::ffi::c_ulonglong,
    pub __value32: __atomic_wide_counter__bindgen_ty_1,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __atomic_wide_counter__bindgen_ty_1 {
    pub __low: ::core::ffi::c_uint,
    pub __high: ::core::ffi::c_uint,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of __atomic_wide_counter__bindgen_ty_1"]
        [::core::mem::size_of::<__atomic_wide_counter__bindgen_ty_1>() - 8usize];
    ["Alignment of __atomic_wide_counter__bindgen_ty_1"]
        [::core::mem::align_of::<__atomic_wide_counter__bindgen_ty_1>() - 4usize];
    ["Offset of field: __atomic_wide_counter__bindgen_ty_1::__low"]
        [::core::mem::offset_of!(__atomic_wide_counter__bindgen_ty_1, __low) - 0usize];
    ["Offset of field: __atomic_wide_counter__bindgen_ty_1::__high"]
        [::core::mem::offset_of!(__atomic_wide_counter__bindgen_ty_1, __high) - 4usize];
};
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of __atomic_wide_counter"][::core::mem::size_of::<__atomic_wide_counter>() - 8usize];
    ["Alignment of __atomic_wide_counter"]
        [::core::mem::align_of::<__atomic_wide_counter>() - 8usize];
    ["Offset of field: __atomic_wide_counter::__value64"]
        [::core::mem::offset_of!(__atomic_wide_counter, __value64) - 0usize];
    ["Offset of field: __atomic_wide_counter::__value32"]
        [::core::mem::offset_of!(__atomic_wide_counter, __value32) - 0usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __pthread_internal_list {
    pub __prev: *mut __pthread_internal_list,
    pub __next: *mut __pthread_internal_list,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of __pthread_internal_list"]
        [::core::mem::size_of::<__pthread_internal_list>() - 16usize];
    ["Alignment of __pthread_internal_list"]
        [::core::mem::align_of::<__pthread_internal_list>() - 8usize];
    ["Offset of field: __pthread_internal_list::__prev"]
        [::core::mem::offset_of!(__pthread_internal_list, __prev) - 0usize];
    ["Offset of field: __pthread_internal_list::__next"]
        [::core::mem::offset_of!(__pthread_internal_list, __next) - 8usize];
};
pub type __pthread_list_t = __pthread_internal_list;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __pthread_internal_slist {
    pub __next: *mut __pthread_internal_slist,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of __pthread_internal_slist"]
        [::core::mem::size_of::<__pthread_internal_slist>() - 8usize];
    ["Alignment of __pthread_internal_slist"]
        [::core::mem::align_of::<__pthread_internal_slist>() - 8usize];
    ["Offset of field: __pthread_internal_slist::__next"]
        [::core::mem::offset_of!(__pthread_internal_slist, __next) - 0usize];
};
pub type __pthread_slist_t = __pthread_internal_slist;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __pthread_mutex_s {
    pub __lock: ::core::ffi::c_int,
    pub __count: ::core::ffi::c_uint,
    pub __owner: ::core::ffi::c_int,
    pub __nusers: ::core::ffi::c_uint,
    pub __kind: ::core::ffi::c_int,
    pub __spins: ::core::ffi::c_short,
    pub __elision: ::core::ffi::c_short,
    pub __list: __pthread_list_t,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of __pthread_mutex_s"][::core::mem::size_of::<__pthread_mutex_s>() - 40usize];
    ["Alignment of __pthread_mutex_s"][::core::mem::align_of::<__pthread_mutex_s>() - 8usize];
    ["Offset of field: __pthread_mutex_s::__lock"]
        [::core::mem::offset_of!(__pthread_mutex_s, __lock) - 0usize];
    ["Offset of field: __pthread_mutex_s::__count"]
        [::core::mem::offset_of!(__pthread_mutex_s, __count) - 4usize];
    ["Offset of field: __pthread_mutex_s::__owner"]
        [::core::mem::offset_of!(__pthread_mutex_s, __owner) - 8usize];
    ["Offset of field: __pthread_mutex_s::__nusers"]
        [::core::mem::offset_of!(__pthread_mutex_s, __nusers) - 12usize];
    ["Offset of field: __pthread_mutex_s::__kind"]
        [::core::mem::offset_of!(__pthread_mutex_s, __kind) - 16usize];
    ["Offset of field: __pthread_mutex_s::__spins"]
        [::core::mem::offset_of!(__pthread_mutex_s, __spins) - 20usize];
    ["Offset of field: __pthread_mutex_s::__elision"]
        [::core::mem::offset_of!(__pthread_mutex_s, __elision) - 22usize];
    ["Offset of field: __pthread_mutex_s::__list"]
        [::core::mem::offset_of!(__pthread_mutex_s, __list) - 24usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __pthread_rwlock_arch_t {
    pub __readers: ::core::ffi::c_uint,
    pub __writers: ::core::ffi::c_uint,
    pub __wrphase_futex: ::core::ffi::c_uint,
    pub __writers_futex: ::core::ffi::c_uint,
    pub __pad3: ::core::ffi::c_uint,
    pub __pad4: ::core::ffi::c_uint,
    pub __cur_writer: ::core::ffi::c_int,
    pub __shared: ::core::ffi::c_int,
    pub __rwelision: ::core::ffi::c_schar,
    pub __pad1: [::core::ffi::c_uchar; 7usize],
    pub __pad2: ::core::ffi::c_ulong,
    pub __flags: ::core::ffi::c_uint,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of __pthread_rwlock_arch_t"]
        [::core::mem::size_of::<__pthread_rwlock_arch_t>() - 56usize];
    ["Alignment of __pthread_rwlock_arch_t"]
        [::core::mem::align_of::<__pthread_rwlock_arch_t>() - 8usize];
    ["Offset of field: __pthread_rwlock_arch_t::__readers"]
        [::core::mem::offset_of!(__pthread_rwlock_arch_t, __readers) - 0usize];
    ["Offset of field: __pthread_rwlock_arch_t::__writers"]
        [::core::mem::offset_of!(__pthread_rwlock_arch_t, __writers) - 4usize];
    ["Offset of field: __pthread_rwlock_arch_t::__wrphase_futex"]
        [::core::mem::offset_of!(__pthread_rwlock_arch_t, __wrphase_futex) - 8usize];
    ["Offset of field: __pthread_rwlock_arch_t::__writers_futex"]
        [::core::mem::offset_of!(__pthread_rwlock_arch_t, __writers_futex) - 12usize];
    ["Offset of field: __pthread_rwlock_arch_t::__pad3"]
        [::core::mem::offset_of!(__pthread_rwlock_arch_t, __pad3) - 16usize];
    ["Offset of field: __pthread_rwlock_arch_t::__pad4"]
        [::core::mem::offset_of!(__pthread_rwlock_arch_t, __pad4) - 20usize];
    ["Offset of field: __pthread_rwlock_arch_t::__cur_writer"]
        [::core::mem::offset_of!(__pthread_rwlock_arch_t, __cur_writer) - 24usize];
    ["Offset of field: __pthread_rwlock_arch_t::__shared"]
        [::core::mem::offset_of!(__pthread_rwlock_arch_t, __shared) - 28usize];
    ["Offset of field: __pthread_rwlock_arch_t::__rwelision"]
        [::core::mem::offset_of!(__pthread_rwlock_arch_t, __rwelision) - 32usize];
    ["Offset of field: __pthread_rwlock_arch_t::__pad1"]
        [::core::mem::offset_of!(__pthread_rwlock_arch_t, __pad1) - 33usize];
    ["Offset of field: __pthread_rwlock_arch_t::__pad2"]
        [::core::mem::offset_of!(__pthread_rwlock_arch_t, __pad2) - 40usize];
    ["Offset of field: __pthread_rwlock_arch_t::__flags"]
        [::core::mem::offset_of!(__pthread_rwlock_arch_t, __flags) - 48usize];
};
#[repr(C)]
#[derive(Copy, Clone)]
pub struct __pthread_cond_s {
    pub __wseq: __atomic_wide_counter,
    pub __g1_start: __atomic_wide_counter,
    pub __g_refs: [::core::ffi::c_uint; 2usize],
    pub __g_size: [::core::ffi::c_uint; 2usize],
    pub __g1_orig_size: ::core::ffi::c_uint,
    pub __wrefs: ::core::ffi::c_uint,
    pub __g_signals: [::core::ffi::c_uint; 2usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of __pthread_cond_s"][::core::mem::size_of::<__pthread_cond_s>() - 48usize];
    ["Alignment of __pthread_cond_s"][::core::mem::align_of::<__pthread_cond_s>() - 8usize];
    ["Offset of field: __pthread_cond_s::__wseq"]
        [::core::mem::offset_of!(__pthread_cond_s, __wseq) - 0usize];
    ["Offset of field: __pthread_cond_s::__g1_start"]
        [::core::mem::offset_of!(__pthread_cond_s, __g1_start) - 8usize];
    ["Offset of field: __pthread_cond_s::__g_refs"]
        [::core::mem::offset_of!(__pthread_cond_s, __g_refs) - 16usize];
    ["Offset of field: __pthread_cond_s::__g_size"]
        [::core::mem::offset_of!(__pthread_cond_s, __g_size) - 24usize];
    ["Offset of field: __pthread_cond_s::__g1_orig_size"]
        [::core::mem::offset_of!(__pthread_cond_s, __g1_orig_size) - 32usize];
    ["Offset of field: __pthread_cond_s::__wrefs"]
        [::core::mem::offset_of!(__pthread_cond_s, __wrefs) - 36usize];
    ["Offset of field: __pthread_cond_s::__g_signals"]
        [::core::mem::offset_of!(__pthread_cond_s, __g_signals) - 40usize];
};
pub type __tss_t = ::core::ffi::c_uint;
pub type __thrd_t = ::core::ffi::c_ulong;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __once_flag {
    pub __data: ::core::ffi::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of __once_flag"][::core::mem::size_of::<__once_flag>() - 4usize];
    ["Alignment of __once_flag"][::core::mem::align_of::<__once_flag>() - 4usize];
    ["Offset of field: __once_flag::__data"][::core::mem::offset_of!(__once_flag, __data) - 0usize];
};
pub type pthread_t = ::core::ffi::c_ulong;
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_mutexattr_t {
    pub __size: [::core::ffi::c_char; 4usize],
    pub __align: ::core::ffi::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of pthread_mutexattr_t"][::core::mem::size_of::<pthread_mutexattr_t>() - 4usize];
    ["Alignment of pthread_mutexattr_t"][::core::mem::align_of::<pthread_mutexattr_t>() - 4usize];
    ["Offset of field: pthread_mutexattr_t::__size"]
        [::core::mem::offset_of!(pthread_mutexattr_t, __size) - 0usize];
    ["Offset of field: pthread_mutexattr_t::__align"]
        [::core::mem::offset_of!(pthread_mutexattr_t, __align) - 0usize];
};
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_condattr_t {
    pub __size: [::core::ffi::c_char; 4usize],
    pub __align: ::core::ffi::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of pthread_condattr_t"][::core::mem::size_of::<pthread_condattr_t>() - 4usize];
    ["Alignment of pthread_condattr_t"][::core::mem::align_of::<pthread_condattr_t>() - 4usize];
    ["Offset of field: pthread_condattr_t::__size"]
        [::core::mem::offset_of!(pthread_condattr_t, __size) - 0usize];
    ["Offset of field: pthread_condattr_t::__align"]
        [::core::mem::offset_of!(pthread_condattr_t, __align) - 0usize];
};
pub type pthread_key_t = ::core::ffi::c_uint;
pub type pthread_once_t = ::core::ffi::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_attr_t {
    pub __size: [::core::ffi::c_char; 56usize],
    pub __align: ::core::ffi::c_long,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of pthread_attr_t"][::core::mem::size_of::<pthread_attr_t>() - 56usize];
    ["Alignment of pthread_attr_t"][::core::mem::align_of::<pthread_attr_t>() - 8usize];
    ["Offset of field: pthread_attr_t::__size"]
        [::core::mem::offset_of!(pthread_attr_t, __size) - 0usize];
    ["Offset of field: pthread_attr_t::__align"]
        [::core::mem::offset_of!(pthread_attr_t, __align) - 0usize];
};
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_mutex_t {
    pub __data: __pthread_mutex_s,
    pub __size: [::core::ffi::c_char; 40usize],
    pub __align: ::core::ffi::c_long,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of pthread_mutex_t"][::core::mem::size_of::<pthread_mutex_t>() - 40usize];
    ["Alignment of pthread_mutex_t"][::core::mem::align_of::<pthread_mutex_t>() - 8usize];
    ["Offset of field: pthread_mutex_t::__data"]
        [::core::mem::offset_of!(pthread_mutex_t, __data) - 0usize];
    ["Offset of field: pthread_mutex_t::__size"]
        [::core::mem::offset_of!(pthread_mutex_t, __size) - 0usize];
    ["Offset of field: pthread_mutex_t::__align"]
        [::core::mem::offset_of!(pthread_mutex_t, __align) - 0usize];
};
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_cond_t {
    pub __data: __pthread_cond_s,
    pub __size: [::core::ffi::c_char; 48usize],
    pub __align: ::core::ffi::c_longlong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of pthread_cond_t"][::core::mem::size_of::<pthread_cond_t>() - 48usize];
    ["Alignment of pthread_cond_t"][::core::mem::align_of::<pthread_cond_t>() - 8usize];
    ["Offset of field: pthread_cond_t::__data"]
        [::core::mem::offset_of!(pthread_cond_t, __data) - 0usize];
    ["Offset of field: pthread_cond_t::__size"]
        [::core::mem::offset_of!(pthread_cond_t, __size) - 0usize];
    ["Offset of field: pthread_cond_t::__align"]
        [::core::mem::offset_of!(pthread_cond_t, __align) - 0usize];
};
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_rwlock_t {
    pub __data: __pthread_rwlock_arch_t,
    pub __size: [::core::ffi::c_char; 56usize],
    pub __align: ::core::ffi::c_long,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of pthread_rwlock_t"][::core::mem::size_of::<pthread_rwlock_t>() - 56usize];
    ["Alignment of pthread_rwlock_t"][::core::mem::align_of::<pthread_rwlock_t>() - 8usize];
    ["Offset of field: pthread_rwlock_t::__data"]
        [::core::mem::offset_of!(pthread_rwlock_t, __data) - 0usize];
    ["Offset of field: pthread_rwlock_t::__size"]
        [::core::mem::offset_of!(pthread_rwlock_t, __size) - 0usize];
    ["Offset of field: pthread_rwlock_t::__align"]
        [::core::mem::offset_of!(pthread_rwlock_t, __align) - 0usize];
};
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_rwlockattr_t {
    pub __size: [::core::ffi::c_char; 8usize],
    pub __align: ::core::ffi::c_long,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of pthread_rwlockattr_t"][::core::mem::size_of::<pthread_rwlockattr_t>() - 8usize];
    ["Alignment of pthread_rwlockattr_t"][::core::mem::align_of::<pthread_rwlockattr_t>() - 8usize];
    ["Offset of field: pthread_rwlockattr_t::__size"]
        [::core::mem::offset_of!(pthread_rwlockattr_t, __size) - 0usize];
    ["Offset of field: pthread_rwlockattr_t::__align"]
        [::core::mem::offset_of!(pthread_rwlockattr_t, __align) - 0usize];
};
pub type pthread_spinlock_t = ::core::ffi::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_barrier_t {
    pub __size: [::core::ffi::c_char; 32usize],
    pub __align: ::core::ffi::c_long,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of pthread_barrier_t"][::core::mem::size_of::<pthread_barrier_t>() - 32usize];
    ["Alignment of pthread_barrier_t"][::core::mem::align_of::<pthread_barrier_t>() - 8usize];
    ["Offset of field: pthread_barrier_t::__size"]
        [::core::mem::offset_of!(pthread_barrier_t, __size) - 0usize];
    ["Offset of field: pthread_barrier_t::__align"]
        [::core::mem::offset_of!(pthread_barrier_t, __align) - 0usize];
};
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_barrierattr_t {
    pub __size: [::core::ffi::c_char; 4usize],
    pub __align: ::core::ffi::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of pthread_barrierattr_t"][::core::mem::size_of::<pthread_barrierattr_t>() - 4usize];
    ["Alignment of pthread_barrierattr_t"]
        [::core::mem::align_of::<pthread_barrierattr_t>() - 4usize];
    ["Offset of field: pthread_barrierattr_t::__size"]
        [::core::mem::offset_of!(pthread_barrierattr_t, __size) - 0usize];
    ["Offset of field: pthread_barrierattr_t::__align"]
        [::core::mem::offset_of!(pthread_barrierattr_t, __align) - 0usize];
};
pub type int_least8_t = __int_least8_t;
pub type int_least16_t = __int_least16_t;
pub type int_least32_t = __int_least32_t;
pub type int_least64_t = __int_least64_t;
pub type uint_least8_t = __uint_least8_t;
pub type uint_least16_t = __uint_least16_t;
pub type uint_least32_t = __uint_least32_t;
pub type uint_least64_t = __uint_least64_t;
pub type int_fast8_t = ::core::ffi::c_schar;
pub type int_fast16_t = ::core::ffi::c_long;
pub type int_fast32_t = ::core::ffi::c_long;
pub type int_fast64_t = ::core::ffi::c_long;
pub type uint_fast8_t = ::core::ffi::c_uchar;
pub type uint_fast16_t = ::core::ffi::c_ulong;
pub type uint_fast32_t = ::core::ffi::c_ulong;
pub type uint_fast64_t = ::core::ffi::c_ulong;
pub type intmax_t = __intmax_t;
pub type uintmax_t = __uintmax_t;
pub type __s8 = ::core::ffi::c_schar;
pub type __u8 = ::core::ffi::c_uchar;
pub type __s16 = ::core::ffi::c_short;
pub type __u16 = ::core::ffi::c_ushort;
pub type __s32 = ::core::ffi::c_int;
pub type __u32 = ::core::ffi::c_uint;
pub type __s64 = ::core::ffi::c_longlong;
pub type __u64 = ::core::ffi::c_ulonglong;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __kernel_fd_set {
    pub fds_bits: [::core::ffi::c_ulong; 16usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of __kernel_fd_set"][::core::mem::size_of::<__kernel_fd_set>() - 128usize];
    ["Alignment of __kernel_fd_set"][::core::mem::align_of::<__kernel_fd_set>() - 8usize];
    ["Offset of field: __kernel_fd_set::fds_bits"]
        [::core::mem::offset_of!(__kernel_fd_set, fds_bits) - 0usize];
};
pub type __kernel_sighandler_t =
    ::core::option::Option<unsafe extern "C" fn(arg1: ::core::ffi::c_int)>;
pub type __kernel_key_t = ::core::ffi::c_int;
pub type __kernel_mqd_t = ::core::ffi::c_int;
pub type __kernel_old_uid_t = ::core::ffi::c_ushort;
pub type __kernel_old_gid_t = ::core::ffi::c_ushort;
pub type __kernel_old_dev_t = ::core::ffi::c_ulong;
pub type __kernel_long_t = ::core::ffi::c_long;
pub type __kernel_ulong_t = ::core::ffi::c_ulong;
pub type __kernel_ino_t = __kernel_ulong_t;
pub type __kernel_mode_t = ::core::ffi::c_uint;
pub type __kernel_pid_t = ::core::ffi::c_int;
pub type __kernel_ipc_pid_t = ::core::ffi::c_int;
pub type __kernel_uid_t = ::core::ffi::c_uint;
pub type __kernel_gid_t = ::core::ffi::c_uint;
pub type __kernel_suseconds_t = __kernel_long_t;
pub type __kernel_daddr_t = ::core::ffi::c_int;
pub type __kernel_uid32_t = ::core::ffi::c_uint;
pub type __kernel_gid32_t = ::core::ffi::c_uint;
pub type __kernel_size_t = __kernel_ulong_t;
pub type __kernel_ssize_t = __kernel_long_t;
pub type __kernel_ptrdiff_t = __kernel_long_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __kernel_fsid_t {
    pub val: [::core::ffi::c_int; 2usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of __kernel_fsid_t"][::core::mem::size_of::<__kernel_fsid_t>() - 8usize];
    ["Alignment of __kernel_fsid_t"][::core::mem::align_of::<__kernel_fsid_t>() - 4usize];
    ["Offset of field: __kernel_fsid_t::val"]
        [::core::mem::offset_of!(__kernel_fsid_t, val) - 0usize];
};
pub type __kernel_off_t = __kernel_long_t;
pub type __kernel_loff_t = ::core::ffi::c_longlong;
pub type __kernel_old_time_t = __kernel_long_t;
pub type __kernel_time_t = __kernel_long_t;
pub type __kernel_time64_t = ::core::ffi::c_longlong;
pub type __kernel_clock_t = __kernel_long_t;
pub type __kernel_timer_t = ::core::ffi::c_int;
pub type __kernel_clockid_t = ::core::ffi::c_int;
pub type __kernel_caddr_t = *mut ::core::ffi::c_char;
pub type __kernel_uid16_t = ::core::ffi::c_ushort;
pub type __kernel_gid16_t = ::core::ffi::c_ushort;
pub type __s128 = i128;
pub type __u128 = u128;
pub type __le16 = __u16;
pub type __be16 = __u16;
pub type __le32 = __u32;
pub type __be32 = __u32;
pub type __le64 = __u64;
pub type __be64 = __u64;
pub type __sum16 = __u16;
pub type __wsum = __u32;
pub type __poll_t = ::core::ffi::c_uint;
pub type drm_handle_t = ::core::ffi::c_uint;
pub type drm_context_t = ::core::ffi::c_uint;
pub type drm_drawable_t = ::core::ffi::c_uint;
pub type drm_magic_t = ::core::ffi::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_clip_rect {
    pub x1: ::core::ffi::c_ushort,
    pub y1: ::core::ffi::c_ushort,
    pub x2: ::core::ffi::c_ushort,
    pub y2: ::core::ffi::c_ushort,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_clip_rect"][::core::mem::size_of::<drm_clip_rect>() - 8usize];
    ["Alignment of drm_clip_rect"][::core::mem::align_of::<drm_clip_rect>() - 2usize];
    ["Offset of field: drm_clip_rect::x1"][::core::mem::offset_of!(drm_clip_rect, x1) - 0usize];
    ["Offset of field: drm_clip_rect::y1"][::core::mem::offset_of!(drm_clip_rect, y1) - 2usize];
    ["Offset of field: drm_clip_rect::x2"][::core::mem::offset_of!(drm_clip_rect, x2) - 4usize];
    ["Offset of field: drm_clip_rect::y2"][::core::mem::offset_of!(drm_clip_rect, y2) - 6usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_drawable_info {
    pub num_rects: ::core::ffi::c_uint,
    pub rects: *mut drm_clip_rect,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_drawable_info"][::core::mem::size_of::<drm_drawable_info>() - 16usize];
    ["Alignment of drm_drawable_info"][::core::mem::align_of::<drm_drawable_info>() - 8usize];
    ["Offset of field: drm_drawable_info::num_rects"]
        [::core::mem::offset_of!(drm_drawable_info, num_rects) - 0usize];
    ["Offset of field: drm_drawable_info::rects"]
        [::core::mem::offset_of!(drm_drawable_info, rects) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_tex_region {
    pub next: ::core::ffi::c_uchar,
    pub prev: ::core::ffi::c_uchar,
    pub in_use: ::core::ffi::c_uchar,
    pub padding: ::core::ffi::c_uchar,
    pub age: ::core::ffi::c_uint,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_tex_region"][::core::mem::size_of::<drm_tex_region>() - 8usize];
    ["Alignment of drm_tex_region"][::core::mem::align_of::<drm_tex_region>() - 4usize];
    ["Offset of field: drm_tex_region::next"]
        [::core::mem::offset_of!(drm_tex_region, next) - 0usize];
    ["Offset of field: drm_tex_region::prev"]
        [::core::mem::offset_of!(drm_tex_region, prev) - 1usize];
    ["Offset of field: drm_tex_region::in_use"]
        [::core::mem::offset_of!(drm_tex_region, in_use) - 2usize];
    ["Offset of field: drm_tex_region::padding"]
        [::core::mem::offset_of!(drm_tex_region, padding) - 3usize];
    ["Offset of field: drm_tex_region::age"][::core::mem::offset_of!(drm_tex_region, age) - 4usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_hw_lock {
    pub lock: ::core::ffi::c_uint,
    pub padding: [::core::ffi::c_char; 60usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_hw_lock"][::core::mem::size_of::<drm_hw_lock>() - 64usize];
    ["Alignment of drm_hw_lock"][::core::mem::align_of::<drm_hw_lock>() - 4usize];
    ["Offset of field: drm_hw_lock::lock"][::core::mem::offset_of!(drm_hw_lock, lock) - 0usize];
    ["Offset of field: drm_hw_lock::padding"]
        [::core::mem::offset_of!(drm_hw_lock, padding) - 4usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_version {
    pub version_major: ::core::ffi::c_int,
    pub version_minor: ::core::ffi::c_int,
    pub version_patchlevel: ::core::ffi::c_int,
    pub name_len: __kernel_size_t,
    pub name: *mut ::core::ffi::c_char,
    pub date_len: __kernel_size_t,
    pub date: *mut ::core::ffi::c_char,
    pub desc_len: __kernel_size_t,
    pub desc: *mut ::core::ffi::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_version"][::core::mem::size_of::<drm_version>() - 64usize];
    ["Alignment of drm_version"][::core::mem::align_of::<drm_version>() - 8usize];
    ["Offset of field: drm_version::version_major"]
        [::core::mem::offset_of!(drm_version, version_major) - 0usize];
    ["Offset of field: drm_version::version_minor"]
        [::core::mem::offset_of!(drm_version, version_minor) - 4usize];
    ["Offset of field: drm_version::version_patchlevel"]
        [::core::mem::offset_of!(drm_version, version_patchlevel) - 8usize];
    ["Offset of field: drm_version::name_len"]
        [::core::mem::offset_of!(drm_version, name_len) - 16usize];
    ["Offset of field: drm_version::name"][::core::mem::offset_of!(drm_version, name) - 24usize];
    ["Offset of field: drm_version::date_len"]
        [::core::mem::offset_of!(drm_version, date_len) - 32usize];
    ["Offset of field: drm_version::date"][::core::mem::offset_of!(drm_version, date) - 40usize];
    ["Offset of field: drm_version::desc_len"]
        [::core::mem::offset_of!(drm_version, desc_len) - 48usize];
    ["Offset of field: drm_version::desc"][::core::mem::offset_of!(drm_version, desc) - 56usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_unique {
    pub unique_len: __kernel_size_t,
    pub unique: *mut ::core::ffi::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_unique"][::core::mem::size_of::<drm_unique>() - 16usize];
    ["Alignment of drm_unique"][::core::mem::align_of::<drm_unique>() - 8usize];
    ["Offset of field: drm_unique::unique_len"]
        [::core::mem::offset_of!(drm_unique, unique_len) - 0usize];
    ["Offset of field: drm_unique::unique"][::core::mem::offset_of!(drm_unique, unique) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_list {
    pub count: ::core::ffi::c_int,
    pub version: *mut drm_version,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_list"][::core::mem::size_of::<drm_list>() - 16usize];
    ["Alignment of drm_list"][::core::mem::align_of::<drm_list>() - 8usize];
    ["Offset of field: drm_list::count"][::core::mem::offset_of!(drm_list, count) - 0usize];
    ["Offset of field: drm_list::version"][::core::mem::offset_of!(drm_list, version) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_block {
    pub unused: ::core::ffi::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_block"][::core::mem::size_of::<drm_block>() - 4usize];
    ["Alignment of drm_block"][::core::mem::align_of::<drm_block>() - 4usize];
    ["Offset of field: drm_block::unused"][::core::mem::offset_of!(drm_block, unused) - 0usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_control {
    pub func: drm_control__bindgen_ty_1,
    pub irq: ::core::ffi::c_int,
}
pub const drm_control_DRM_ADD_COMMAND: drm_control__bindgen_ty_1 = 0;
pub const drm_control_DRM_RM_COMMAND: drm_control__bindgen_ty_1 = 1;
pub const drm_control_DRM_INST_HANDLER: drm_control__bindgen_ty_1 = 2;
pub const drm_control_DRM_UNINST_HANDLER: drm_control__bindgen_ty_1 = 3;
pub type drm_control__bindgen_ty_1 = ::core::ffi::c_uint;
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_control"][::core::mem::size_of::<drm_control>() - 8usize];
    ["Alignment of drm_control"][::core::mem::align_of::<drm_control>() - 4usize];
    ["Offset of field: drm_control::func"][::core::mem::offset_of!(drm_control, func) - 0usize];
    ["Offset of field: drm_control::irq"][::core::mem::offset_of!(drm_control, irq) - 4usize];
};
pub const drm_map_type__DRM_FRAME_BUFFER: drm_map_type = 0;
pub const drm_map_type__DRM_REGISTERS: drm_map_type = 1;
pub const drm_map_type__DRM_SHM: drm_map_type = 2;
pub const drm_map_type__DRM_AGP: drm_map_type = 3;
pub const drm_map_type__DRM_SCATTER_GATHER: drm_map_type = 4;
pub const drm_map_type__DRM_CONSISTENT: drm_map_type = 5;
pub type drm_map_type = ::core::ffi::c_uint;
pub const drm_map_flags__DRM_RESTRICTED: drm_map_flags = 1;
pub const drm_map_flags__DRM_READ_ONLY: drm_map_flags = 2;
pub const drm_map_flags__DRM_LOCKED: drm_map_flags = 4;
pub const drm_map_flags__DRM_KERNEL: drm_map_flags = 8;
pub const drm_map_flags__DRM_WRITE_COMBINING: drm_map_flags = 16;
pub const drm_map_flags__DRM_CONTAINS_LOCK: drm_map_flags = 32;
pub const drm_map_flags__DRM_REMOVABLE: drm_map_flags = 64;
pub const drm_map_flags__DRM_DRIVER: drm_map_flags = 128;
pub type drm_map_flags = ::core::ffi::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_ctx_priv_map {
    pub ctx_id: ::core::ffi::c_uint,
    pub handle: *mut ::core::ffi::c_void,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_ctx_priv_map"][::core::mem::size_of::<drm_ctx_priv_map>() - 16usize];
    ["Alignment of drm_ctx_priv_map"][::core::mem::align_of::<drm_ctx_priv_map>() - 8usize];
    ["Offset of field: drm_ctx_priv_map::ctx_id"]
        [::core::mem::offset_of!(drm_ctx_priv_map, ctx_id) - 0usize];
    ["Offset of field: drm_ctx_priv_map::handle"]
        [::core::mem::offset_of!(drm_ctx_priv_map, handle) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_map {
    pub offset: ::core::ffi::c_ulong,
    pub size: ::core::ffi::c_ulong,
    pub type_: drm_map_type,
    pub flags: drm_map_flags,
    pub handle: *mut ::core::ffi::c_void,
    pub mtrr: ::core::ffi::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_map"][::core::mem::size_of::<drm_map>() - 40usize];
    ["Alignment of drm_map"][::core::mem::align_of::<drm_map>() - 8usize];
    ["Offset of field: drm_map::offset"][::core::mem::offset_of!(drm_map, offset) - 0usize];
    ["Offset of field: drm_map::size"][::core::mem::offset_of!(drm_map, size) - 8usize];
    ["Offset of field: drm_map::type_"][::core::mem::offset_of!(drm_map, type_) - 16usize];
    ["Offset of field: drm_map::flags"][::core::mem::offset_of!(drm_map, flags) - 20usize];
    ["Offset of field: drm_map::handle"][::core::mem::offset_of!(drm_map, handle) - 24usize];
    ["Offset of field: drm_map::mtrr"][::core::mem::offset_of!(drm_map, mtrr) - 32usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_client {
    pub idx: ::core::ffi::c_int,
    pub auth: ::core::ffi::c_int,
    pub pid: ::core::ffi::c_ulong,
    pub uid: ::core::ffi::c_ulong,
    pub magic: ::core::ffi::c_ulong,
    pub iocs: ::core::ffi::c_ulong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_client"][::core::mem::size_of::<drm_client>() - 40usize];
    ["Alignment of drm_client"][::core::mem::align_of::<drm_client>() - 8usize];
    ["Offset of field: drm_client::idx"][::core::mem::offset_of!(drm_client, idx) - 0usize];
    ["Offset of field: drm_client::auth"][::core::mem::offset_of!(drm_client, auth) - 4usize];
    ["Offset of field: drm_client::pid"][::core::mem::offset_of!(drm_client, pid) - 8usize];
    ["Offset of field: drm_client::uid"][::core::mem::offset_of!(drm_client, uid) - 16usize];
    ["Offset of field: drm_client::magic"][::core::mem::offset_of!(drm_client, magic) - 24usize];
    ["Offset of field: drm_client::iocs"][::core::mem::offset_of!(drm_client, iocs) - 32usize];
};
pub const drm_stat_type__DRM_STAT_LOCK: drm_stat_type = 0;
pub const drm_stat_type__DRM_STAT_OPENS: drm_stat_type = 1;
pub const drm_stat_type__DRM_STAT_CLOSES: drm_stat_type = 2;
pub const drm_stat_type__DRM_STAT_IOCTLS: drm_stat_type = 3;
pub const drm_stat_type__DRM_STAT_LOCKS: drm_stat_type = 4;
pub const drm_stat_type__DRM_STAT_UNLOCKS: drm_stat_type = 5;
pub const drm_stat_type__DRM_STAT_VALUE: drm_stat_type = 6;
pub const drm_stat_type__DRM_STAT_BYTE: drm_stat_type = 7;
pub const drm_stat_type__DRM_STAT_COUNT: drm_stat_type = 8;
pub const drm_stat_type__DRM_STAT_IRQ: drm_stat_type = 9;
pub const drm_stat_type__DRM_STAT_PRIMARY: drm_stat_type = 10;
pub const drm_stat_type__DRM_STAT_SECONDARY: drm_stat_type = 11;
pub const drm_stat_type__DRM_STAT_DMA: drm_stat_type = 12;
pub const drm_stat_type__DRM_STAT_SPECIAL: drm_stat_type = 13;
pub const drm_stat_type__DRM_STAT_MISSED: drm_stat_type = 14;
pub type drm_stat_type = ::core::ffi::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_stats {
    pub count: ::core::ffi::c_ulong,
    pub data: [drm_stats__bindgen_ty_1; 15usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_stats__bindgen_ty_1 {
    pub value: ::core::ffi::c_ulong,
    pub type_: drm_stat_type,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_stats__bindgen_ty_1"]
        [::core::mem::size_of::<drm_stats__bindgen_ty_1>() - 16usize];
    ["Alignment of drm_stats__bindgen_ty_1"]
        [::core::mem::align_of::<drm_stats__bindgen_ty_1>() - 8usize];
    ["Offset of field: drm_stats__bindgen_ty_1::value"]
        [::core::mem::offset_of!(drm_stats__bindgen_ty_1, value) - 0usize];
    ["Offset of field: drm_stats__bindgen_ty_1::type_"]
        [::core::mem::offset_of!(drm_stats__bindgen_ty_1, type_) - 8usize];
};
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_stats"][::core::mem::size_of::<drm_stats>() - 248usize];
    ["Alignment of drm_stats"][::core::mem::align_of::<drm_stats>() - 8usize];
    ["Offset of field: drm_stats::count"][::core::mem::offset_of!(drm_stats, count) - 0usize];
    ["Offset of field: drm_stats::data"][::core::mem::offset_of!(drm_stats, data) - 8usize];
};
pub const drm_lock_flags__DRM_LOCK_READY: drm_lock_flags = 1;
pub const drm_lock_flags__DRM_LOCK_QUIESCENT: drm_lock_flags = 2;
pub const drm_lock_flags__DRM_LOCK_FLUSH: drm_lock_flags = 4;
pub const drm_lock_flags__DRM_LOCK_FLUSH_ALL: drm_lock_flags = 8;
pub const drm_lock_flags__DRM_HALT_ALL_QUEUES: drm_lock_flags = 16;
pub const drm_lock_flags__DRM_HALT_CUR_QUEUES: drm_lock_flags = 32;
pub type drm_lock_flags = ::core::ffi::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_lock {
    pub context: ::core::ffi::c_int,
    pub flags: drm_lock_flags,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_lock"][::core::mem::size_of::<drm_lock>() - 8usize];
    ["Alignment of drm_lock"][::core::mem::align_of::<drm_lock>() - 4usize];
    ["Offset of field: drm_lock::context"][::core::mem::offset_of!(drm_lock, context) - 0usize];
    ["Offset of field: drm_lock::flags"][::core::mem::offset_of!(drm_lock, flags) - 4usize];
};
pub const drm_dma_flags__DRM_DMA_BLOCK: drm_dma_flags = 1;
pub const drm_dma_flags__DRM_DMA_WHILE_LOCKED: drm_dma_flags = 2;
pub const drm_dma_flags__DRM_DMA_PRIORITY: drm_dma_flags = 4;
pub const drm_dma_flags__DRM_DMA_WAIT: drm_dma_flags = 16;
pub const drm_dma_flags__DRM_DMA_SMALLER_OK: drm_dma_flags = 32;
pub const drm_dma_flags__DRM_DMA_LARGER_OK: drm_dma_flags = 64;
pub type drm_dma_flags = ::core::ffi::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_buf_desc {
    pub count: ::core::ffi::c_int,
    pub size: ::core::ffi::c_int,
    pub low_mark: ::core::ffi::c_int,
    pub high_mark: ::core::ffi::c_int,
    pub flags: drm_buf_desc__bindgen_ty_1,
    pub agp_start: ::core::ffi::c_ulong,
}
pub const drm_buf_desc__DRM_PAGE_ALIGN: drm_buf_desc__bindgen_ty_1 = 1;
pub const drm_buf_desc__DRM_AGP_BUFFER: drm_buf_desc__bindgen_ty_1 = 2;
pub const drm_buf_desc__DRM_SG_BUFFER: drm_buf_desc__bindgen_ty_1 = 4;
pub const drm_buf_desc__DRM_FB_BUFFER: drm_buf_desc__bindgen_ty_1 = 8;
pub const drm_buf_desc__DRM_PCI_BUFFER_RO: drm_buf_desc__bindgen_ty_1 = 16;
pub type drm_buf_desc__bindgen_ty_1 = ::core::ffi::c_uint;
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_buf_desc"][::core::mem::size_of::<drm_buf_desc>() - 32usize];
    ["Alignment of drm_buf_desc"][::core::mem::align_of::<drm_buf_desc>() - 8usize];
    ["Offset of field: drm_buf_desc::count"][::core::mem::offset_of!(drm_buf_desc, count) - 0usize];
    ["Offset of field: drm_buf_desc::size"][::core::mem::offset_of!(drm_buf_desc, size) - 4usize];
    ["Offset of field: drm_buf_desc::low_mark"]
        [::core::mem::offset_of!(drm_buf_desc, low_mark) - 8usize];
    ["Offset of field: drm_buf_desc::high_mark"]
        [::core::mem::offset_of!(drm_buf_desc, high_mark) - 12usize];
    ["Offset of field: drm_buf_desc::flags"]
        [::core::mem::offset_of!(drm_buf_desc, flags) - 16usize];
    ["Offset of field: drm_buf_desc::agp_start"]
        [::core::mem::offset_of!(drm_buf_desc, agp_start) - 24usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_buf_info {
    pub count: ::core::ffi::c_int,
    pub list: *mut drm_buf_desc,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_buf_info"][::core::mem::size_of::<drm_buf_info>() - 16usize];
    ["Alignment of drm_buf_info"][::core::mem::align_of::<drm_buf_info>() - 8usize];
    ["Offset of field: drm_buf_info::count"][::core::mem::offset_of!(drm_buf_info, count) - 0usize];
    ["Offset of field: drm_buf_info::list"][::core::mem::offset_of!(drm_buf_info, list) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_buf_free {
    pub count: ::core::ffi::c_int,
    pub list: *mut ::core::ffi::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_buf_free"][::core::mem::size_of::<drm_buf_free>() - 16usize];
    ["Alignment of drm_buf_free"][::core::mem::align_of::<drm_buf_free>() - 8usize];
    ["Offset of field: drm_buf_free::count"][::core::mem::offset_of!(drm_buf_free, count) - 0usize];
    ["Offset of field: drm_buf_free::list"][::core::mem::offset_of!(drm_buf_free, list) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_buf_pub {
    pub idx: ::core::ffi::c_int,
    pub total: ::core::ffi::c_int,
    pub used: ::core::ffi::c_int,
    pub address: *mut ::core::ffi::c_void,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_buf_pub"][::core::mem::size_of::<drm_buf_pub>() - 24usize];
    ["Alignment of drm_buf_pub"][::core::mem::align_of::<drm_buf_pub>() - 8usize];
    ["Offset of field: drm_buf_pub::idx"][::core::mem::offset_of!(drm_buf_pub, idx) - 0usize];
    ["Offset of field: drm_buf_pub::total"][::core::mem::offset_of!(drm_buf_pub, total) - 4usize];
    ["Offset of field: drm_buf_pub::used"][::core::mem::offset_of!(drm_buf_pub, used) - 8usize];
    ["Offset of field: drm_buf_pub::address"]
        [::core::mem::offset_of!(drm_buf_pub, address) - 16usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_buf_map {
    pub count: ::core::ffi::c_int,
    pub virtual_: *mut ::core::ffi::c_void,
    pub list: *mut drm_buf_pub,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_buf_map"][::core::mem::size_of::<drm_buf_map>() - 24usize];
    ["Alignment of drm_buf_map"][::core::mem::align_of::<drm_buf_map>() - 8usize];
    ["Offset of field: drm_buf_map::count"][::core::mem::offset_of!(drm_buf_map, count) - 0usize];
    ["Offset of field: drm_buf_map::virtual_"]
        [::core::mem::offset_of!(drm_buf_map, virtual_) - 8usize];
    ["Offset of field: drm_buf_map::list"][::core::mem::offset_of!(drm_buf_map, list) - 16usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_dma {
    pub context: ::core::ffi::c_int,
    pub send_count: ::core::ffi::c_int,
    pub send_indices: *mut ::core::ffi::c_int,
    pub send_sizes: *mut ::core::ffi::c_int,
    pub flags: drm_dma_flags,
    pub request_count: ::core::ffi::c_int,
    pub request_size: ::core::ffi::c_int,
    pub request_indices: *mut ::core::ffi::c_int,
    pub request_sizes: *mut ::core::ffi::c_int,
    pub granted_count: ::core::ffi::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_dma"][::core::mem::size_of::<drm_dma>() - 64usize];
    ["Alignment of drm_dma"][::core::mem::align_of::<drm_dma>() - 8usize];
    ["Offset of field: drm_dma::context"][::core::mem::offset_of!(drm_dma, context) - 0usize];
    ["Offset of field: drm_dma::send_count"][::core::mem::offset_of!(drm_dma, send_count) - 4usize];
    ["Offset of field: drm_dma::send_indices"]
        [::core::mem::offset_of!(drm_dma, send_indices) - 8usize];
    ["Offset of field: drm_dma::send_sizes"]
        [::core::mem::offset_of!(drm_dma, send_sizes) - 16usize];
    ["Offset of field: drm_dma::flags"][::core::mem::offset_of!(drm_dma, flags) - 24usize];
    ["Offset of field: drm_dma::request_count"]
        [::core::mem::offset_of!(drm_dma, request_count) - 28usize];
    ["Offset of field: drm_dma::request_size"]
        [::core::mem::offset_of!(drm_dma, request_size) - 32usize];
    ["Offset of field: drm_dma::request_indices"]
        [::core::mem::offset_of!(drm_dma, request_indices) - 40usize];
    ["Offset of field: drm_dma::request_sizes"]
        [::core::mem::offset_of!(drm_dma, request_sizes) - 48usize];
    ["Offset of field: drm_dma::granted_count"]
        [::core::mem::offset_of!(drm_dma, granted_count) - 56usize];
};
pub const drm_ctx_flags__DRM_CONTEXT_PRESERVED: drm_ctx_flags = 1;
pub const drm_ctx_flags__DRM_CONTEXT_2DONLY: drm_ctx_flags = 2;
pub type drm_ctx_flags = ::core::ffi::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_ctx {
    pub handle: drm_context_t,
    pub flags: drm_ctx_flags,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_ctx"][::core::mem::size_of::<drm_ctx>() - 8usize];
    ["Alignment of drm_ctx"][::core::mem::align_of::<drm_ctx>() - 4usize];
    ["Offset of field: drm_ctx::handle"][::core::mem::offset_of!(drm_ctx, handle) - 0usize];
    ["Offset of field: drm_ctx::flags"][::core::mem::offset_of!(drm_ctx, flags) - 4usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_ctx_res {
    pub count: ::core::ffi::c_int,
    pub contexts: *mut drm_ctx,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_ctx_res"][::core::mem::size_of::<drm_ctx_res>() - 16usize];
    ["Alignment of drm_ctx_res"][::core::mem::align_of::<drm_ctx_res>() - 8usize];
    ["Offset of field: drm_ctx_res::count"][::core::mem::offset_of!(drm_ctx_res, count) - 0usize];
    ["Offset of field: drm_ctx_res::contexts"]
        [::core::mem::offset_of!(drm_ctx_res, contexts) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_draw {
    pub handle: drm_drawable_t,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_draw"][::core::mem::size_of::<drm_draw>() - 4usize];
    ["Alignment of drm_draw"][::core::mem::align_of::<drm_draw>() - 4usize];
    ["Offset of field: drm_draw::handle"][::core::mem::offset_of!(drm_draw, handle) - 0usize];
};
pub const drm_drawable_info_type_t_DRM_DRAWABLE_CLIPRECTS: drm_drawable_info_type_t = 0;
pub type drm_drawable_info_type_t = ::core::ffi::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_update_draw {
    pub handle: drm_drawable_t,
    pub type_: ::core::ffi::c_uint,
    pub num: ::core::ffi::c_uint,
    pub data: ::core::ffi::c_ulonglong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_update_draw"][::core::mem::size_of::<drm_update_draw>() - 24usize];
    ["Alignment of drm_update_draw"][::core::mem::align_of::<drm_update_draw>() - 8usize];
    ["Offset of field: drm_update_draw::handle"]
        [::core::mem::offset_of!(drm_update_draw, handle) - 0usize];
    ["Offset of field: drm_update_draw::type_"]
        [::core::mem::offset_of!(drm_update_draw, type_) - 4usize];
    ["Offset of field: drm_update_draw::num"]
        [::core::mem::offset_of!(drm_update_draw, num) - 8usize];
    ["Offset of field: drm_update_draw::data"]
        [::core::mem::offset_of!(drm_update_draw, data) - 16usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_auth {
    pub magic: drm_magic_t,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_auth"][::core::mem::size_of::<drm_auth>() - 4usize];
    ["Alignment of drm_auth"][::core::mem::align_of::<drm_auth>() - 4usize];
    ["Offset of field: drm_auth::magic"][::core::mem::offset_of!(drm_auth, magic) - 0usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_irq_busid {
    pub irq: ::core::ffi::c_int,
    pub busnum: ::core::ffi::c_int,
    pub devnum: ::core::ffi::c_int,
    pub funcnum: ::core::ffi::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_irq_busid"][::core::mem::size_of::<drm_irq_busid>() - 16usize];
    ["Alignment of drm_irq_busid"][::core::mem::align_of::<drm_irq_busid>() - 4usize];
    ["Offset of field: drm_irq_busid::irq"][::core::mem::offset_of!(drm_irq_busid, irq) - 0usize];
    ["Offset of field: drm_irq_busid::busnum"]
        [::core::mem::offset_of!(drm_irq_busid, busnum) - 4usize];
    ["Offset of field: drm_irq_busid::devnum"]
        [::core::mem::offset_of!(drm_irq_busid, devnum) - 8usize];
    ["Offset of field: drm_irq_busid::funcnum"]
        [::core::mem::offset_of!(drm_irq_busid, funcnum) - 12usize];
};
pub const drm_vblank_seq_type__DRM_VBLANK_ABSOLUTE: drm_vblank_seq_type = 0;
pub const drm_vblank_seq_type__DRM_VBLANK_RELATIVE: drm_vblank_seq_type = 1;
pub const drm_vblank_seq_type__DRM_VBLANK_HIGH_CRTC_MASK: drm_vblank_seq_type = 62;
pub const drm_vblank_seq_type__DRM_VBLANK_EVENT: drm_vblank_seq_type = 67108864;
pub const drm_vblank_seq_type__DRM_VBLANK_FLIP: drm_vblank_seq_type = 134217728;
pub const drm_vblank_seq_type__DRM_VBLANK_NEXTONMISS: drm_vblank_seq_type = 268435456;
pub const drm_vblank_seq_type__DRM_VBLANK_SECONDARY: drm_vblank_seq_type = 536870912;
pub const drm_vblank_seq_type__DRM_VBLANK_SIGNAL: drm_vblank_seq_type = 1073741824;
pub type drm_vblank_seq_type = ::core::ffi::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_wait_vblank_request {
    pub type_: drm_vblank_seq_type,
    pub sequence: ::core::ffi::c_uint,
    pub signal: ::core::ffi::c_ulong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_wait_vblank_request"]
        [::core::mem::size_of::<drm_wait_vblank_request>() - 16usize];
    ["Alignment of drm_wait_vblank_request"]
        [::core::mem::align_of::<drm_wait_vblank_request>() - 8usize];
    ["Offset of field: drm_wait_vblank_request::type_"]
        [::core::mem::offset_of!(drm_wait_vblank_request, type_) - 0usize];
    ["Offset of field: drm_wait_vblank_request::sequence"]
        [::core::mem::offset_of!(drm_wait_vblank_request, sequence) - 4usize];
    ["Offset of field: drm_wait_vblank_request::signal"]
        [::core::mem::offset_of!(drm_wait_vblank_request, signal) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_wait_vblank_reply {
    pub type_: drm_vblank_seq_type,
    pub sequence: ::core::ffi::c_uint,
    pub tval_sec: ::core::ffi::c_long,
    pub tval_usec: ::core::ffi::c_long,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_wait_vblank_reply"][::core::mem::size_of::<drm_wait_vblank_reply>() - 24usize];
    ["Alignment of drm_wait_vblank_reply"]
        [::core::mem::align_of::<drm_wait_vblank_reply>() - 8usize];
    ["Offset of field: drm_wait_vblank_reply::type_"]
        [::core::mem::offset_of!(drm_wait_vblank_reply, type_) - 0usize];
    ["Offset of field: drm_wait_vblank_reply::sequence"]
        [::core::mem::offset_of!(drm_wait_vblank_reply, sequence) - 4usize];
    ["Offset of field: drm_wait_vblank_reply::tval_sec"]
        [::core::mem::offset_of!(drm_wait_vblank_reply, tval_sec) - 8usize];
    ["Offset of field: drm_wait_vblank_reply::tval_usec"]
        [::core::mem::offset_of!(drm_wait_vblank_reply, tval_usec) - 16usize];
};
#[repr(C)]
#[derive(Copy, Clone)]
pub union drm_wait_vblank {
    pub request: drm_wait_vblank_request,
    pub reply: drm_wait_vblank_reply,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_wait_vblank"][::core::mem::size_of::<drm_wait_vblank>() - 24usize];
    ["Alignment of drm_wait_vblank"][::core::mem::align_of::<drm_wait_vblank>() - 8usize];
    ["Offset of field: drm_wait_vblank::request"]
        [::core::mem::offset_of!(drm_wait_vblank, request) - 0usize];
    ["Offset of field: drm_wait_vblank::reply"]
        [::core::mem::offset_of!(drm_wait_vblank, reply) - 0usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_modeset_ctl {
    pub crtc: __u32,
    pub cmd: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_modeset_ctl"][::core::mem::size_of::<drm_modeset_ctl>() - 8usize];
    ["Alignment of drm_modeset_ctl"][::core::mem::align_of::<drm_modeset_ctl>() - 4usize];
    ["Offset of field: drm_modeset_ctl::crtc"]
        [::core::mem::offset_of!(drm_modeset_ctl, crtc) - 0usize];
    ["Offset of field: drm_modeset_ctl::cmd"]
        [::core::mem::offset_of!(drm_modeset_ctl, cmd) - 4usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_agp_mode {
    pub mode: ::core::ffi::c_ulong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_agp_mode"][::core::mem::size_of::<drm_agp_mode>() - 8usize];
    ["Alignment of drm_agp_mode"][::core::mem::align_of::<drm_agp_mode>() - 8usize];
    ["Offset of field: drm_agp_mode::mode"][::core::mem::offset_of!(drm_agp_mode, mode) - 0usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_agp_buffer {
    pub size: ::core::ffi::c_ulong,
    pub handle: ::core::ffi::c_ulong,
    pub type_: ::core::ffi::c_ulong,
    pub physical: ::core::ffi::c_ulong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_agp_buffer"][::core::mem::size_of::<drm_agp_buffer>() - 32usize];
    ["Alignment of drm_agp_buffer"][::core::mem::align_of::<drm_agp_buffer>() - 8usize];
    ["Offset of field: drm_agp_buffer::size"]
        [::core::mem::offset_of!(drm_agp_buffer, size) - 0usize];
    ["Offset of field: drm_agp_buffer::handle"]
        [::core::mem::offset_of!(drm_agp_buffer, handle) - 8usize];
    ["Offset of field: drm_agp_buffer::type_"]
        [::core::mem::offset_of!(drm_agp_buffer, type_) - 16usize];
    ["Offset of field: drm_agp_buffer::physical"]
        [::core::mem::offset_of!(drm_agp_buffer, physical) - 24usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_agp_binding {
    pub handle: ::core::ffi::c_ulong,
    pub offset: ::core::ffi::c_ulong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_agp_binding"][::core::mem::size_of::<drm_agp_binding>() - 16usize];
    ["Alignment of drm_agp_binding"][::core::mem::align_of::<drm_agp_binding>() - 8usize];
    ["Offset of field: drm_agp_binding::handle"]
        [::core::mem::offset_of!(drm_agp_binding, handle) - 0usize];
    ["Offset of field: drm_agp_binding::offset"]
        [::core::mem::offset_of!(drm_agp_binding, offset) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_agp_info {
    pub agp_version_major: ::core::ffi::c_int,
    pub agp_version_minor: ::core::ffi::c_int,
    pub mode: ::core::ffi::c_ulong,
    pub aperture_base: ::core::ffi::c_ulong,
    pub aperture_size: ::core::ffi::c_ulong,
    pub memory_allowed: ::core::ffi::c_ulong,
    pub memory_used: ::core::ffi::c_ulong,
    pub id_vendor: ::core::ffi::c_ushort,
    pub id_device: ::core::ffi::c_ushort,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_agp_info"][::core::mem::size_of::<drm_agp_info>() - 56usize];
    ["Alignment of drm_agp_info"][::core::mem::align_of::<drm_agp_info>() - 8usize];
    ["Offset of field: drm_agp_info::agp_version_major"]
        [::core::mem::offset_of!(drm_agp_info, agp_version_major) - 0usize];
    ["Offset of field: drm_agp_info::agp_version_minor"]
        [::core::mem::offset_of!(drm_agp_info, agp_version_minor) - 4usize];
    ["Offset of field: drm_agp_info::mode"][::core::mem::offset_of!(drm_agp_info, mode) - 8usize];
    ["Offset of field: drm_agp_info::aperture_base"]
        [::core::mem::offset_of!(drm_agp_info, aperture_base) - 16usize];
    ["Offset of field: drm_agp_info::aperture_size"]
        [::core::mem::offset_of!(drm_agp_info, aperture_size) - 24usize];
    ["Offset of field: drm_agp_info::memory_allowed"]
        [::core::mem::offset_of!(drm_agp_info, memory_allowed) - 32usize];
    ["Offset of field: drm_agp_info::memory_used"]
        [::core::mem::offset_of!(drm_agp_info, memory_used) - 40usize];
    ["Offset of field: drm_agp_info::id_vendor"]
        [::core::mem::offset_of!(drm_agp_info, id_vendor) - 48usize];
    ["Offset of field: drm_agp_info::id_device"]
        [::core::mem::offset_of!(drm_agp_info, id_device) - 50usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_scatter_gather {
    pub size: ::core::ffi::c_ulong,
    pub handle: ::core::ffi::c_ulong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_scatter_gather"][::core::mem::size_of::<drm_scatter_gather>() - 16usize];
    ["Alignment of drm_scatter_gather"][::core::mem::align_of::<drm_scatter_gather>() - 8usize];
    ["Offset of field: drm_scatter_gather::size"]
        [::core::mem::offset_of!(drm_scatter_gather, size) - 0usize];
    ["Offset of field: drm_scatter_gather::handle"]
        [::core::mem::offset_of!(drm_scatter_gather, handle) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_set_version {
    pub drm_di_major: ::core::ffi::c_int,
    pub drm_di_minor: ::core::ffi::c_int,
    pub drm_dd_major: ::core::ffi::c_int,
    pub drm_dd_minor: ::core::ffi::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_set_version"][::core::mem::size_of::<drm_set_version>() - 16usize];
    ["Alignment of drm_set_version"][::core::mem::align_of::<drm_set_version>() - 4usize];
    ["Offset of field: drm_set_version::drm_di_major"]
        [::core::mem::offset_of!(drm_set_version, drm_di_major) - 0usize];
    ["Offset of field: drm_set_version::drm_di_minor"]
        [::core::mem::offset_of!(drm_set_version, drm_di_minor) - 4usize];
    ["Offset of field: drm_set_version::drm_dd_major"]
        [::core::mem::offset_of!(drm_set_version, drm_dd_major) - 8usize];
    ["Offset of field: drm_set_version::drm_dd_minor"]
        [::core::mem::offset_of!(drm_set_version, drm_dd_minor) - 12usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_gem_close {
    pub handle: __u32,
    pub pad: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_gem_close"][::core::mem::size_of::<drm_gem_close>() - 8usize];
    ["Alignment of drm_gem_close"][::core::mem::align_of::<drm_gem_close>() - 4usize];
    ["Offset of field: drm_gem_close::handle"]
        [::core::mem::offset_of!(drm_gem_close, handle) - 0usize];
    ["Offset of field: drm_gem_close::pad"][::core::mem::offset_of!(drm_gem_close, pad) - 4usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_gem_flink {
    pub handle: __u32,
    pub name: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_gem_flink"][::core::mem::size_of::<drm_gem_flink>() - 8usize];
    ["Alignment of drm_gem_flink"][::core::mem::align_of::<drm_gem_flink>() - 4usize];
    ["Offset of field: drm_gem_flink::handle"]
        [::core::mem::offset_of!(drm_gem_flink, handle) - 0usize];
    ["Offset of field: drm_gem_flink::name"][::core::mem::offset_of!(drm_gem_flink, name) - 4usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_gem_open {
    pub name: __u32,
    pub handle: __u32,
    pub size: __u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_gem_open"][::core::mem::size_of::<drm_gem_open>() - 16usize];
    ["Alignment of drm_gem_open"][::core::mem::align_of::<drm_gem_open>() - 8usize];
    ["Offset of field: drm_gem_open::name"][::core::mem::offset_of!(drm_gem_open, name) - 0usize];
    ["Offset of field: drm_gem_open::handle"]
        [::core::mem::offset_of!(drm_gem_open, handle) - 4usize];
    ["Offset of field: drm_gem_open::size"][::core::mem::offset_of!(drm_gem_open, size) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_get_cap {
    pub capability: __u64,
    pub value: __u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_get_cap"][::core::mem::size_of::<drm_get_cap>() - 16usize];
    ["Alignment of drm_get_cap"][::core::mem::align_of::<drm_get_cap>() - 8usize];
    ["Offset of field: drm_get_cap::capability"]
        [::core::mem::offset_of!(drm_get_cap, capability) - 0usize];
    ["Offset of field: drm_get_cap::value"][::core::mem::offset_of!(drm_get_cap, value) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_set_client_cap {
    pub capability: __u64,
    pub value: __u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_set_client_cap"][::core::mem::size_of::<drm_set_client_cap>() - 16usize];
    ["Alignment of drm_set_client_cap"][::core::mem::align_of::<drm_set_client_cap>() - 8usize];
    ["Offset of field: drm_set_client_cap::capability"]
        [::core::mem::offset_of!(drm_set_client_cap, capability) - 0usize];
    ["Offset of field: drm_set_client_cap::value"]
        [::core::mem::offset_of!(drm_set_client_cap, value) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_prime_handle {
    pub handle: __u32,
    pub flags: __u32,
    pub fd: __s32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_prime_handle"][::core::mem::size_of::<drm_prime_handle>() - 12usize];
    ["Alignment of drm_prime_handle"][::core::mem::align_of::<drm_prime_handle>() - 4usize];
    ["Offset of field: drm_prime_handle::handle"]
        [::core::mem::offset_of!(drm_prime_handle, handle) - 0usize];
    ["Offset of field: drm_prime_handle::flags"]
        [::core::mem::offset_of!(drm_prime_handle, flags) - 4usize];
    ["Offset of field: drm_prime_handle::fd"]
        [::core::mem::offset_of!(drm_prime_handle, fd) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_syncobj_create {
    pub handle: __u32,
    pub flags: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_syncobj_create"][::core::mem::size_of::<drm_syncobj_create>() - 8usize];
    ["Alignment of drm_syncobj_create"][::core::mem::align_of::<drm_syncobj_create>() - 4usize];
    ["Offset of field: drm_syncobj_create::handle"]
        [::core::mem::offset_of!(drm_syncobj_create, handle) - 0usize];
    ["Offset of field: drm_syncobj_create::flags"]
        [::core::mem::offset_of!(drm_syncobj_create, flags) - 4usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_syncobj_destroy {
    pub handle: __u32,
    pub pad: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_syncobj_destroy"][::core::mem::size_of::<drm_syncobj_destroy>() - 8usize];
    ["Alignment of drm_syncobj_destroy"][::core::mem::align_of::<drm_syncobj_destroy>() - 4usize];
    ["Offset of field: drm_syncobj_destroy::handle"]
        [::core::mem::offset_of!(drm_syncobj_destroy, handle) - 0usize];
    ["Offset of field: drm_syncobj_destroy::pad"]
        [::core::mem::offset_of!(drm_syncobj_destroy, pad) - 4usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_syncobj_handle {
    pub handle: __u32,
    pub flags: __u32,
    pub fd: __s32,
    pub pad: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_syncobj_handle"][::core::mem::size_of::<drm_syncobj_handle>() - 16usize];
    ["Alignment of drm_syncobj_handle"][::core::mem::align_of::<drm_syncobj_handle>() - 4usize];
    ["Offset of field: drm_syncobj_handle::handle"]
        [::core::mem::offset_of!(drm_syncobj_handle, handle) - 0usize];
    ["Offset of field: drm_syncobj_handle::flags"]
        [::core::mem::offset_of!(drm_syncobj_handle, flags) - 4usize];
    ["Offset of field: drm_syncobj_handle::fd"]
        [::core::mem::offset_of!(drm_syncobj_handle, fd) - 8usize];
    ["Offset of field: drm_syncobj_handle::pad"]
        [::core::mem::offset_of!(drm_syncobj_handle, pad) - 12usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_syncobj_transfer {
    pub src_handle: __u32,
    pub dst_handle: __u32,
    pub src_point: __u64,
    pub dst_point: __u64,
    pub flags: __u32,
    pub pad: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_syncobj_transfer"][::core::mem::size_of::<drm_syncobj_transfer>() - 32usize];
    ["Alignment of drm_syncobj_transfer"][::core::mem::align_of::<drm_syncobj_transfer>() - 8usize];
    ["Offset of field: drm_syncobj_transfer::src_handle"]
        [::core::mem::offset_of!(drm_syncobj_transfer, src_handle) - 0usize];
    ["Offset of field: drm_syncobj_transfer::dst_handle"]
        [::core::mem::offset_of!(drm_syncobj_transfer, dst_handle) - 4usize];
    ["Offset of field: drm_syncobj_transfer::src_point"]
        [::core::mem::offset_of!(drm_syncobj_transfer, src_point) - 8usize];
    ["Offset of field: drm_syncobj_transfer::dst_point"]
        [::core::mem::offset_of!(drm_syncobj_transfer, dst_point) - 16usize];
    ["Offset of field: drm_syncobj_transfer::flags"]
        [::core::mem::offset_of!(drm_syncobj_transfer, flags) - 24usize];
    ["Offset of field: drm_syncobj_transfer::pad"]
        [::core::mem::offset_of!(drm_syncobj_transfer, pad) - 28usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_syncobj_wait {
    pub handles: __u64,
    pub timeout_nsec: __s64,
    pub count_handles: __u32,
    pub flags: __u32,
    pub first_signaled: __u32,
    pub pad: __u32,
    pub deadline_nsec: __u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_syncobj_wait"][::core::mem::size_of::<drm_syncobj_wait>() - 40usize];
    ["Alignment of drm_syncobj_wait"][::core::mem::align_of::<drm_syncobj_wait>() - 8usize];
    ["Offset of field: drm_syncobj_wait::handles"]
        [::core::mem::offset_of!(drm_syncobj_wait, handles) - 0usize];
    ["Offset of field: drm_syncobj_wait::timeout_nsec"]
        [::core::mem::offset_of!(drm_syncobj_wait, timeout_nsec) - 8usize];
    ["Offset of field: drm_syncobj_wait::count_handles"]
        [::core::mem::offset_of!(drm_syncobj_wait, count_handles) - 16usize];
    ["Offset of field: drm_syncobj_wait::flags"]
        [::core::mem::offset_of!(drm_syncobj_wait, flags) - 20usize];
    ["Offset of field: drm_syncobj_wait::first_signaled"]
        [::core::mem::offset_of!(drm_syncobj_wait, first_signaled) - 24usize];
    ["Offset of field: drm_syncobj_wait::pad"]
        [::core::mem::offset_of!(drm_syncobj_wait, pad) - 28usize];
    ["Offset of field: drm_syncobj_wait::deadline_nsec"]
        [::core::mem::offset_of!(drm_syncobj_wait, deadline_nsec) - 32usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_syncobj_timeline_wait {
    pub handles: __u64,
    pub points: __u64,
    pub timeout_nsec: __s64,
    pub count_handles: __u32,
    pub flags: __u32,
    pub first_signaled: __u32,
    pub pad: __u32,
    pub deadline_nsec: __u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_syncobj_timeline_wait"]
        [::core::mem::size_of::<drm_syncobj_timeline_wait>() - 48usize];
    ["Alignment of drm_syncobj_timeline_wait"]
        [::core::mem::align_of::<drm_syncobj_timeline_wait>() - 8usize];
    ["Offset of field: drm_syncobj_timeline_wait::handles"]
        [::core::mem::offset_of!(drm_syncobj_timeline_wait, handles) - 0usize];
    ["Offset of field: drm_syncobj_timeline_wait::points"]
        [::core::mem::offset_of!(drm_syncobj_timeline_wait, points) - 8usize];
    ["Offset of field: drm_syncobj_timeline_wait::timeout_nsec"]
        [::core::mem::offset_of!(drm_syncobj_timeline_wait, timeout_nsec) - 16usize];
    ["Offset of field: drm_syncobj_timeline_wait::count_handles"]
        [::core::mem::offset_of!(drm_syncobj_timeline_wait, count_handles) - 24usize];
    ["Offset of field: drm_syncobj_timeline_wait::flags"]
        [::core::mem::offset_of!(drm_syncobj_timeline_wait, flags) - 28usize];
    ["Offset of field: drm_syncobj_timeline_wait::first_signaled"]
        [::core::mem::offset_of!(drm_syncobj_timeline_wait, first_signaled) - 32usize];
    ["Offset of field: drm_syncobj_timeline_wait::pad"]
        [::core::mem::offset_of!(drm_syncobj_timeline_wait, pad) - 36usize];
    ["Offset of field: drm_syncobj_timeline_wait::deadline_nsec"]
        [::core::mem::offset_of!(drm_syncobj_timeline_wait, deadline_nsec) - 40usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_syncobj_eventfd {
    pub handle: __u32,
    pub flags: __u32,
    pub point: __u64,
    pub fd: __s32,
    pub pad: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_syncobj_eventfd"][::core::mem::size_of::<drm_syncobj_eventfd>() - 24usize];
    ["Alignment of drm_syncobj_eventfd"][::core::mem::align_of::<drm_syncobj_eventfd>() - 8usize];
    ["Offset of field: drm_syncobj_eventfd::handle"]
        [::core::mem::offset_of!(drm_syncobj_eventfd, handle) - 0usize];
    ["Offset of field: drm_syncobj_eventfd::flags"]
        [::core::mem::offset_of!(drm_syncobj_eventfd, flags) - 4usize];
    ["Offset of field: drm_syncobj_eventfd::point"]
        [::core::mem::offset_of!(drm_syncobj_eventfd, point) - 8usize];
    ["Offset of field: drm_syncobj_eventfd::fd"]
        [::core::mem::offset_of!(drm_syncobj_eventfd, fd) - 16usize];
    ["Offset of field: drm_syncobj_eventfd::pad"]
        [::core::mem::offset_of!(drm_syncobj_eventfd, pad) - 20usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_syncobj_array {
    pub handles: __u64,
    pub count_handles: __u32,
    pub pad: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_syncobj_array"][::core::mem::size_of::<drm_syncobj_array>() - 16usize];
    ["Alignment of drm_syncobj_array"][::core::mem::align_of::<drm_syncobj_array>() - 8usize];
    ["Offset of field: drm_syncobj_array::handles"]
        [::core::mem::offset_of!(drm_syncobj_array, handles) - 0usize];
    ["Offset of field: drm_syncobj_array::count_handles"]
        [::core::mem::offset_of!(drm_syncobj_array, count_handles) - 8usize];
    ["Offset of field: drm_syncobj_array::pad"]
        [::core::mem::offset_of!(drm_syncobj_array, pad) - 12usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_syncobj_timeline_array {
    pub handles: __u64,
    pub points: __u64,
    pub count_handles: __u32,
    pub flags: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_syncobj_timeline_array"]
        [::core::mem::size_of::<drm_syncobj_timeline_array>() - 24usize];
    ["Alignment of drm_syncobj_timeline_array"]
        [::core::mem::align_of::<drm_syncobj_timeline_array>() - 8usize];
    ["Offset of field: drm_syncobj_timeline_array::handles"]
        [::core::mem::offset_of!(drm_syncobj_timeline_array, handles) - 0usize];
    ["Offset of field: drm_syncobj_timeline_array::points"]
        [::core::mem::offset_of!(drm_syncobj_timeline_array, points) - 8usize];
    ["Offset of field: drm_syncobj_timeline_array::count_handles"]
        [::core::mem::offset_of!(drm_syncobj_timeline_array, count_handles) - 16usize];
    ["Offset of field: drm_syncobj_timeline_array::flags"]
        [::core::mem::offset_of!(drm_syncobj_timeline_array, flags) - 20usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_crtc_get_sequence {
    pub crtc_id: __u32,
    pub active: __u32,
    pub sequence: __u64,
    pub sequence_ns: __s64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_crtc_get_sequence"][::core::mem::size_of::<drm_crtc_get_sequence>() - 24usize];
    ["Alignment of drm_crtc_get_sequence"]
        [::core::mem::align_of::<drm_crtc_get_sequence>() - 8usize];
    ["Offset of field: drm_crtc_get_sequence::crtc_id"]
        [::core::mem::offset_of!(drm_crtc_get_sequence, crtc_id) - 0usize];
    ["Offset of field: drm_crtc_get_sequence::active"]
        [::core::mem::offset_of!(drm_crtc_get_sequence, active) - 4usize];
    ["Offset of field: drm_crtc_get_sequence::sequence"]
        [::core::mem::offset_of!(drm_crtc_get_sequence, sequence) - 8usize];
    ["Offset of field: drm_crtc_get_sequence::sequence_ns"]
        [::core::mem::offset_of!(drm_crtc_get_sequence, sequence_ns) - 16usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_crtc_queue_sequence {
    pub crtc_id: __u32,
    pub flags: __u32,
    pub sequence: __u64,
    pub user_data: __u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_crtc_queue_sequence"]
        [::core::mem::size_of::<drm_crtc_queue_sequence>() - 24usize];
    ["Alignment of drm_crtc_queue_sequence"]
        [::core::mem::align_of::<drm_crtc_queue_sequence>() - 8usize];
    ["Offset of field: drm_crtc_queue_sequence::crtc_id"]
        [::core::mem::offset_of!(drm_crtc_queue_sequence, crtc_id) - 0usize];
    ["Offset of field: drm_crtc_queue_sequence::flags"]
        [::core::mem::offset_of!(drm_crtc_queue_sequence, flags) - 4usize];
    ["Offset of field: drm_crtc_queue_sequence::sequence"]
        [::core::mem::offset_of!(drm_crtc_queue_sequence, sequence) - 8usize];
    ["Offset of field: drm_crtc_queue_sequence::user_data"]
        [::core::mem::offset_of!(drm_crtc_queue_sequence, user_data) - 16usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_modeinfo {
    pub clock: __u32,
    pub hdisplay: __u16,
    pub hsync_start: __u16,
    pub hsync_end: __u16,
    pub htotal: __u16,
    pub hskew: __u16,
    pub vdisplay: __u16,
    pub vsync_start: __u16,
    pub vsync_end: __u16,
    pub vtotal: __u16,
    pub vscan: __u16,
    pub vrefresh: __u32,
    pub flags: __u32,
    pub type_: __u32,
    pub name: [::core::ffi::c_char; 32usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_modeinfo"][::core::mem::size_of::<drm_mode_modeinfo>() - 68usize];
    ["Alignment of drm_mode_modeinfo"][::core::mem::align_of::<drm_mode_modeinfo>() - 4usize];
    ["Offset of field: drm_mode_modeinfo::clock"]
        [::core::mem::offset_of!(drm_mode_modeinfo, clock) - 0usize];
    ["Offset of field: drm_mode_modeinfo::hdisplay"]
        [::core::mem::offset_of!(drm_mode_modeinfo, hdisplay) - 4usize];
    ["Offset of field: drm_mode_modeinfo::hsync_start"]
        [::core::mem::offset_of!(drm_mode_modeinfo, hsync_start) - 6usize];
    ["Offset of field: drm_mode_modeinfo::hsync_end"]
        [::core::mem::offset_of!(drm_mode_modeinfo, hsync_end) - 8usize];
    ["Offset of field: drm_mode_modeinfo::htotal"]
        [::core::mem::offset_of!(drm_mode_modeinfo, htotal) - 10usize];
    ["Offset of field: drm_mode_modeinfo::hskew"]
        [::core::mem::offset_of!(drm_mode_modeinfo, hskew) - 12usize];
    ["Offset of field: drm_mode_modeinfo::vdisplay"]
        [::core::mem::offset_of!(drm_mode_modeinfo, vdisplay) - 14usize];
    ["Offset of field: drm_mode_modeinfo::vsync_start"]
        [::core::mem::offset_of!(drm_mode_modeinfo, vsync_start) - 16usize];
    ["Offset of field: drm_mode_modeinfo::vsync_end"]
        [::core::mem::offset_of!(drm_mode_modeinfo, vsync_end) - 18usize];
    ["Offset of field: drm_mode_modeinfo::vtotal"]
        [::core::mem::offset_of!(drm_mode_modeinfo, vtotal) - 20usize];
    ["Offset of field: drm_mode_modeinfo::vscan"]
        [::core::mem::offset_of!(drm_mode_modeinfo, vscan) - 22usize];
    ["Offset of field: drm_mode_modeinfo::vrefresh"]
        [::core::mem::offset_of!(drm_mode_modeinfo, vrefresh) - 24usize];
    ["Offset of field: drm_mode_modeinfo::flags"]
        [::core::mem::offset_of!(drm_mode_modeinfo, flags) - 28usize];
    ["Offset of field: drm_mode_modeinfo::type_"]
        [::core::mem::offset_of!(drm_mode_modeinfo, type_) - 32usize];
    ["Offset of field: drm_mode_modeinfo::name"]
        [::core::mem::offset_of!(drm_mode_modeinfo, name) - 36usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_card_res {
    pub fb_id_ptr: __u64,
    pub crtc_id_ptr: __u64,
    pub connector_id_ptr: __u64,
    pub encoder_id_ptr: __u64,
    pub count_fbs: __u32,
    pub count_crtcs: __u32,
    pub count_connectors: __u32,
    pub count_encoders: __u32,
    pub min_width: __u32,
    pub max_width: __u32,
    pub min_height: __u32,
    pub max_height: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_card_res"][::core::mem::size_of::<drm_mode_card_res>() - 64usize];
    ["Alignment of drm_mode_card_res"][::core::mem::align_of::<drm_mode_card_res>() - 8usize];
    ["Offset of field: drm_mode_card_res::fb_id_ptr"]
        [::core::mem::offset_of!(drm_mode_card_res, fb_id_ptr) - 0usize];
    ["Offset of field: drm_mode_card_res::crtc_id_ptr"]
        [::core::mem::offset_of!(drm_mode_card_res, crtc_id_ptr) - 8usize];
    ["Offset of field: drm_mode_card_res::connector_id_ptr"]
        [::core::mem::offset_of!(drm_mode_card_res, connector_id_ptr) - 16usize];
    ["Offset of field: drm_mode_card_res::encoder_id_ptr"]
        [::core::mem::offset_of!(drm_mode_card_res, encoder_id_ptr) - 24usize];
    ["Offset of field: drm_mode_card_res::count_fbs"]
        [::core::mem::offset_of!(drm_mode_card_res, count_fbs) - 32usize];
    ["Offset of field: drm_mode_card_res::count_crtcs"]
        [::core::mem::offset_of!(drm_mode_card_res, count_crtcs) - 36usize];
    ["Offset of field: drm_mode_card_res::count_connectors"]
        [::core::mem::offset_of!(drm_mode_card_res, count_connectors) - 40usize];
    ["Offset of field: drm_mode_card_res::count_encoders"]
        [::core::mem::offset_of!(drm_mode_card_res, count_encoders) - 44usize];
    ["Offset of field: drm_mode_card_res::min_width"]
        [::core::mem::offset_of!(drm_mode_card_res, min_width) - 48usize];
    ["Offset of field: drm_mode_card_res::max_width"]
        [::core::mem::offset_of!(drm_mode_card_res, max_width) - 52usize];
    ["Offset of field: drm_mode_card_res::min_height"]
        [::core::mem::offset_of!(drm_mode_card_res, min_height) - 56usize];
    ["Offset of field: drm_mode_card_res::max_height"]
        [::core::mem::offset_of!(drm_mode_card_res, max_height) - 60usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_crtc {
    pub set_connectors_ptr: __u64,
    pub count_connectors: __u32,
    pub crtc_id: __u32,
    pub fb_id: __u32,
    pub x: __u32,
    pub y: __u32,
    pub gamma_size: __u32,
    pub mode_valid: __u32,
    pub mode: drm_mode_modeinfo,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_crtc"][::core::mem::size_of::<drm_mode_crtc>() - 104usize];
    ["Alignment of drm_mode_crtc"][::core::mem::align_of::<drm_mode_crtc>() - 8usize];
    ["Offset of field: drm_mode_crtc::set_connectors_ptr"]
        [::core::mem::offset_of!(drm_mode_crtc, set_connectors_ptr) - 0usize];
    ["Offset of field: drm_mode_crtc::count_connectors"]
        [::core::mem::offset_of!(drm_mode_crtc, count_connectors) - 8usize];
    ["Offset of field: drm_mode_crtc::crtc_id"]
        [::core::mem::offset_of!(drm_mode_crtc, crtc_id) - 12usize];
    ["Offset of field: drm_mode_crtc::fb_id"]
        [::core::mem::offset_of!(drm_mode_crtc, fb_id) - 16usize];
    ["Offset of field: drm_mode_crtc::x"][::core::mem::offset_of!(drm_mode_crtc, x) - 20usize];
    ["Offset of field: drm_mode_crtc::y"][::core::mem::offset_of!(drm_mode_crtc, y) - 24usize];
    ["Offset of field: drm_mode_crtc::gamma_size"]
        [::core::mem::offset_of!(drm_mode_crtc, gamma_size) - 28usize];
    ["Offset of field: drm_mode_crtc::mode_valid"]
        [::core::mem::offset_of!(drm_mode_crtc, mode_valid) - 32usize];
    ["Offset of field: drm_mode_crtc::mode"]
        [::core::mem::offset_of!(drm_mode_crtc, mode) - 36usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_set_plane {
    pub plane_id: __u32,
    pub crtc_id: __u32,
    pub fb_id: __u32,
    pub flags: __u32,
    pub crtc_x: __s32,
    pub crtc_y: __s32,
    pub crtc_w: __u32,
    pub crtc_h: __u32,
    pub src_x: __u32,
    pub src_y: __u32,
    pub src_h: __u32,
    pub src_w: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_set_plane"][::core::mem::size_of::<drm_mode_set_plane>() - 48usize];
    ["Alignment of drm_mode_set_plane"][::core::mem::align_of::<drm_mode_set_plane>() - 4usize];
    ["Offset of field: drm_mode_set_plane::plane_id"]
        [::core::mem::offset_of!(drm_mode_set_plane, plane_id) - 0usize];
    ["Offset of field: drm_mode_set_plane::crtc_id"]
        [::core::mem::offset_of!(drm_mode_set_plane, crtc_id) - 4usize];
    ["Offset of field: drm_mode_set_plane::fb_id"]
        [::core::mem::offset_of!(drm_mode_set_plane, fb_id) - 8usize];
    ["Offset of field: drm_mode_set_plane::flags"]
        [::core::mem::offset_of!(drm_mode_set_plane, flags) - 12usize];
    ["Offset of field: drm_mode_set_plane::crtc_x"]
        [::core::mem::offset_of!(drm_mode_set_plane, crtc_x) - 16usize];
    ["Offset of field: drm_mode_set_plane::crtc_y"]
        [::core::mem::offset_of!(drm_mode_set_plane, crtc_y) - 20usize];
    ["Offset of field: drm_mode_set_plane::crtc_w"]
        [::core::mem::offset_of!(drm_mode_set_plane, crtc_w) - 24usize];
    ["Offset of field: drm_mode_set_plane::crtc_h"]
        [::core::mem::offset_of!(drm_mode_set_plane, crtc_h) - 28usize];
    ["Offset of field: drm_mode_set_plane::src_x"]
        [::core::mem::offset_of!(drm_mode_set_plane, src_x) - 32usize];
    ["Offset of field: drm_mode_set_plane::src_y"]
        [::core::mem::offset_of!(drm_mode_set_plane, src_y) - 36usize];
    ["Offset of field: drm_mode_set_plane::src_h"]
        [::core::mem::offset_of!(drm_mode_set_plane, src_h) - 40usize];
    ["Offset of field: drm_mode_set_plane::src_w"]
        [::core::mem::offset_of!(drm_mode_set_plane, src_w) - 44usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_get_plane {
    pub plane_id: __u32,
    pub crtc_id: __u32,
    pub fb_id: __u32,
    pub possible_crtcs: __u32,
    pub gamma_size: __u32,
    pub count_format_types: __u32,
    pub format_type_ptr: __u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_get_plane"][::core::mem::size_of::<drm_mode_get_plane>() - 32usize];
    ["Alignment of drm_mode_get_plane"][::core::mem::align_of::<drm_mode_get_plane>() - 8usize];
    ["Offset of field: drm_mode_get_plane::plane_id"]
        [::core::mem::offset_of!(drm_mode_get_plane, plane_id) - 0usize];
    ["Offset of field: drm_mode_get_plane::crtc_id"]
        [::core::mem::offset_of!(drm_mode_get_plane, crtc_id) - 4usize];
    ["Offset of field: drm_mode_get_plane::fb_id"]
        [::core::mem::offset_of!(drm_mode_get_plane, fb_id) - 8usize];
    ["Offset of field: drm_mode_get_plane::possible_crtcs"]
        [::core::mem::offset_of!(drm_mode_get_plane, possible_crtcs) - 12usize];
    ["Offset of field: drm_mode_get_plane::gamma_size"]
        [::core::mem::offset_of!(drm_mode_get_plane, gamma_size) - 16usize];
    ["Offset of field: drm_mode_get_plane::count_format_types"]
        [::core::mem::offset_of!(drm_mode_get_plane, count_format_types) - 20usize];
    ["Offset of field: drm_mode_get_plane::format_type_ptr"]
        [::core::mem::offset_of!(drm_mode_get_plane, format_type_ptr) - 24usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_get_plane_res {
    pub plane_id_ptr: __u64,
    pub count_planes: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_get_plane_res"][::core::mem::size_of::<drm_mode_get_plane_res>() - 16usize];
    ["Alignment of drm_mode_get_plane_res"]
        [::core::mem::align_of::<drm_mode_get_plane_res>() - 8usize];
    ["Offset of field: drm_mode_get_plane_res::plane_id_ptr"]
        [::core::mem::offset_of!(drm_mode_get_plane_res, plane_id_ptr) - 0usize];
    ["Offset of field: drm_mode_get_plane_res::count_planes"]
        [::core::mem::offset_of!(drm_mode_get_plane_res, count_planes) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_get_encoder {
    pub encoder_id: __u32,
    pub encoder_type: __u32,
    pub crtc_id: __u32,
    pub possible_crtcs: __u32,
    pub possible_clones: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_get_encoder"][::core::mem::size_of::<drm_mode_get_encoder>() - 20usize];
    ["Alignment of drm_mode_get_encoder"][::core::mem::align_of::<drm_mode_get_encoder>() - 4usize];
    ["Offset of field: drm_mode_get_encoder::encoder_id"]
        [::core::mem::offset_of!(drm_mode_get_encoder, encoder_id) - 0usize];
    ["Offset of field: drm_mode_get_encoder::encoder_type"]
        [::core::mem::offset_of!(drm_mode_get_encoder, encoder_type) - 4usize];
    ["Offset of field: drm_mode_get_encoder::crtc_id"]
        [::core::mem::offset_of!(drm_mode_get_encoder, crtc_id) - 8usize];
    ["Offset of field: drm_mode_get_encoder::possible_crtcs"]
        [::core::mem::offset_of!(drm_mode_get_encoder, possible_crtcs) - 12usize];
    ["Offset of field: drm_mode_get_encoder::possible_clones"]
        [::core::mem::offset_of!(drm_mode_get_encoder, possible_clones) - 16usize];
};
pub const drm_mode_subconnector_DRM_MODE_SUBCONNECTOR_Automatic: drm_mode_subconnector = 0;
pub const drm_mode_subconnector_DRM_MODE_SUBCONNECTOR_Unknown: drm_mode_subconnector = 0;
pub const drm_mode_subconnector_DRM_MODE_SUBCONNECTOR_VGA: drm_mode_subconnector = 1;
pub const drm_mode_subconnector_DRM_MODE_SUBCONNECTOR_DVID: drm_mode_subconnector = 3;
pub const drm_mode_subconnector_DRM_MODE_SUBCONNECTOR_DVIA: drm_mode_subconnector = 4;
pub const drm_mode_subconnector_DRM_MODE_SUBCONNECTOR_Composite: drm_mode_subconnector = 5;
pub const drm_mode_subconnector_DRM_MODE_SUBCONNECTOR_SVIDEO: drm_mode_subconnector = 6;
pub const drm_mode_subconnector_DRM_MODE_SUBCONNECTOR_Component: drm_mode_subconnector = 8;
pub const drm_mode_subconnector_DRM_MODE_SUBCONNECTOR_SCART: drm_mode_subconnector = 9;
pub const drm_mode_subconnector_DRM_MODE_SUBCONNECTOR_DisplayPort: drm_mode_subconnector = 10;
pub const drm_mode_subconnector_DRM_MODE_SUBCONNECTOR_HDMIA: drm_mode_subconnector = 11;
pub const drm_mode_subconnector_DRM_MODE_SUBCONNECTOR_Native: drm_mode_subconnector = 15;
pub const drm_mode_subconnector_DRM_MODE_SUBCONNECTOR_Wireless: drm_mode_subconnector = 18;
pub type drm_mode_subconnector = ::core::ffi::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_get_connector {
    pub encoders_ptr: __u64,
    pub modes_ptr: __u64,
    pub props_ptr: __u64,
    pub prop_values_ptr: __u64,
    pub count_modes: __u32,
    pub count_props: __u32,
    pub count_encoders: __u32,
    pub encoder_id: __u32,
    pub connector_id: __u32,
    pub connector_type: __u32,
    pub connector_type_id: __u32,
    pub connection: __u32,
    pub mm_width: __u32,
    pub mm_height: __u32,
    pub subpixel: __u32,
    pub pad: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_get_connector"][::core::mem::size_of::<drm_mode_get_connector>() - 80usize];
    ["Alignment of drm_mode_get_connector"]
        [::core::mem::align_of::<drm_mode_get_connector>() - 8usize];
    ["Offset of field: drm_mode_get_connector::encoders_ptr"]
        [::core::mem::offset_of!(drm_mode_get_connector, encoders_ptr) - 0usize];
    ["Offset of field: drm_mode_get_connector::modes_ptr"]
        [::core::mem::offset_of!(drm_mode_get_connector, modes_ptr) - 8usize];
    ["Offset of field: drm_mode_get_connector::props_ptr"]
        [::core::mem::offset_of!(drm_mode_get_connector, props_ptr) - 16usize];
    ["Offset of field: drm_mode_get_connector::prop_values_ptr"]
        [::core::mem::offset_of!(drm_mode_get_connector, prop_values_ptr) - 24usize];
    ["Offset of field: drm_mode_get_connector::count_modes"]
        [::core::mem::offset_of!(drm_mode_get_connector, count_modes) - 32usize];
    ["Offset of field: drm_mode_get_connector::count_props"]
        [::core::mem::offset_of!(drm_mode_get_connector, count_props) - 36usize];
    ["Offset of field: drm_mode_get_connector::count_encoders"]
        [::core::mem::offset_of!(drm_mode_get_connector, count_encoders) - 40usize];
    ["Offset of field: drm_mode_get_connector::encoder_id"]
        [::core::mem::offset_of!(drm_mode_get_connector, encoder_id) - 44usize];
    ["Offset of field: drm_mode_get_connector::connector_id"]
        [::core::mem::offset_of!(drm_mode_get_connector, connector_id) - 48usize];
    ["Offset of field: drm_mode_get_connector::connector_type"]
        [::core::mem::offset_of!(drm_mode_get_connector, connector_type) - 52usize];
    ["Offset of field: drm_mode_get_connector::connector_type_id"]
        [::core::mem::offset_of!(drm_mode_get_connector, connector_type_id) - 56usize];
    ["Offset of field: drm_mode_get_connector::connection"]
        [::core::mem::offset_of!(drm_mode_get_connector, connection) - 60usize];
    ["Offset of field: drm_mode_get_connector::mm_width"]
        [::core::mem::offset_of!(drm_mode_get_connector, mm_width) - 64usize];
    ["Offset of field: drm_mode_get_connector::mm_height"]
        [::core::mem::offset_of!(drm_mode_get_connector, mm_height) - 68usize];
    ["Offset of field: drm_mode_get_connector::subpixel"]
        [::core::mem::offset_of!(drm_mode_get_connector, subpixel) - 72usize];
    ["Offset of field: drm_mode_get_connector::pad"]
        [::core::mem::offset_of!(drm_mode_get_connector, pad) - 76usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_property_enum {
    pub value: __u64,
    pub name: [::core::ffi::c_char; 32usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_property_enum"][::core::mem::size_of::<drm_mode_property_enum>() - 40usize];
    ["Alignment of drm_mode_property_enum"]
        [::core::mem::align_of::<drm_mode_property_enum>() - 8usize];
    ["Offset of field: drm_mode_property_enum::value"]
        [::core::mem::offset_of!(drm_mode_property_enum, value) - 0usize];
    ["Offset of field: drm_mode_property_enum::name"]
        [::core::mem::offset_of!(drm_mode_property_enum, name) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_get_property {
    pub values_ptr: __u64,
    pub enum_blob_ptr: __u64,
    pub prop_id: __u32,
    pub flags: __u32,
    pub name: [::core::ffi::c_char; 32usize],
    pub count_values: __u32,
    pub count_enum_blobs: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_get_property"][::core::mem::size_of::<drm_mode_get_property>() - 64usize];
    ["Alignment of drm_mode_get_property"]
        [::core::mem::align_of::<drm_mode_get_property>() - 8usize];
    ["Offset of field: drm_mode_get_property::values_ptr"]
        [::core::mem::offset_of!(drm_mode_get_property, values_ptr) - 0usize];
    ["Offset of field: drm_mode_get_property::enum_blob_ptr"]
        [::core::mem::offset_of!(drm_mode_get_property, enum_blob_ptr) - 8usize];
    ["Offset of field: drm_mode_get_property::prop_id"]
        [::core::mem::offset_of!(drm_mode_get_property, prop_id) - 16usize];
    ["Offset of field: drm_mode_get_property::flags"]
        [::core::mem::offset_of!(drm_mode_get_property, flags) - 20usize];
    ["Offset of field: drm_mode_get_property::name"]
        [::core::mem::offset_of!(drm_mode_get_property, name) - 24usize];
    ["Offset of field: drm_mode_get_property::count_values"]
        [::core::mem::offset_of!(drm_mode_get_property, count_values) - 56usize];
    ["Offset of field: drm_mode_get_property::count_enum_blobs"]
        [::core::mem::offset_of!(drm_mode_get_property, count_enum_blobs) - 60usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_connector_set_property {
    pub value: __u64,
    pub prop_id: __u32,
    pub connector_id: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_connector_set_property"]
        [::core::mem::size_of::<drm_mode_connector_set_property>() - 16usize];
    ["Alignment of drm_mode_connector_set_property"]
        [::core::mem::align_of::<drm_mode_connector_set_property>() - 8usize];
    ["Offset of field: drm_mode_connector_set_property::value"]
        [::core::mem::offset_of!(drm_mode_connector_set_property, value) - 0usize];
    ["Offset of field: drm_mode_connector_set_property::prop_id"]
        [::core::mem::offset_of!(drm_mode_connector_set_property, prop_id) - 8usize];
    ["Offset of field: drm_mode_connector_set_property::connector_id"]
        [::core::mem::offset_of!(drm_mode_connector_set_property, connector_id) - 12usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_obj_get_properties {
    pub props_ptr: __u64,
    pub prop_values_ptr: __u64,
    pub count_props: __u32,
    pub obj_id: __u32,
    pub obj_type: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_obj_get_properties"]
        [::core::mem::size_of::<drm_mode_obj_get_properties>() - 32usize];
    ["Alignment of drm_mode_obj_get_properties"]
        [::core::mem::align_of::<drm_mode_obj_get_properties>() - 8usize];
    ["Offset of field: drm_mode_obj_get_properties::props_ptr"]
        [::core::mem::offset_of!(drm_mode_obj_get_properties, props_ptr) - 0usize];
    ["Offset of field: drm_mode_obj_get_properties::prop_values_ptr"]
        [::core::mem::offset_of!(drm_mode_obj_get_properties, prop_values_ptr) - 8usize];
    ["Offset of field: drm_mode_obj_get_properties::count_props"]
        [::core::mem::offset_of!(drm_mode_obj_get_properties, count_props) - 16usize];
    ["Offset of field: drm_mode_obj_get_properties::obj_id"]
        [::core::mem::offset_of!(drm_mode_obj_get_properties, obj_id) - 20usize];
    ["Offset of field: drm_mode_obj_get_properties::obj_type"]
        [::core::mem::offset_of!(drm_mode_obj_get_properties, obj_type) - 24usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_obj_set_property {
    pub value: __u64,
    pub prop_id: __u32,
    pub obj_id: __u32,
    pub obj_type: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_obj_set_property"]
        [::core::mem::size_of::<drm_mode_obj_set_property>() - 24usize];
    ["Alignment of drm_mode_obj_set_property"]
        [::core::mem::align_of::<drm_mode_obj_set_property>() - 8usize];
    ["Offset of field: drm_mode_obj_set_property::value"]
        [::core::mem::offset_of!(drm_mode_obj_set_property, value) - 0usize];
    ["Offset of field: drm_mode_obj_set_property::prop_id"]
        [::core::mem::offset_of!(drm_mode_obj_set_property, prop_id) - 8usize];
    ["Offset of field: drm_mode_obj_set_property::obj_id"]
        [::core::mem::offset_of!(drm_mode_obj_set_property, obj_id) - 12usize];
    ["Offset of field: drm_mode_obj_set_property::obj_type"]
        [::core::mem::offset_of!(drm_mode_obj_set_property, obj_type) - 16usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_get_blob {
    pub blob_id: __u32,
    pub length: __u32,
    pub data: __u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_get_blob"][::core::mem::size_of::<drm_mode_get_blob>() - 16usize];
    ["Alignment of drm_mode_get_blob"][::core::mem::align_of::<drm_mode_get_blob>() - 8usize];
    ["Offset of field: drm_mode_get_blob::blob_id"]
        [::core::mem::offset_of!(drm_mode_get_blob, blob_id) - 0usize];
    ["Offset of field: drm_mode_get_blob::length"]
        [::core::mem::offset_of!(drm_mode_get_blob, length) - 4usize];
    ["Offset of field: drm_mode_get_blob::data"]
        [::core::mem::offset_of!(drm_mode_get_blob, data) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_fb_cmd {
    pub fb_id: __u32,
    pub width: __u32,
    pub height: __u32,
    pub pitch: __u32,
    pub bpp: __u32,
    pub depth: __u32,
    pub handle: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_fb_cmd"][::core::mem::size_of::<drm_mode_fb_cmd>() - 28usize];
    ["Alignment of drm_mode_fb_cmd"][::core::mem::align_of::<drm_mode_fb_cmd>() - 4usize];
    ["Offset of field: drm_mode_fb_cmd::fb_id"]
        [::core::mem::offset_of!(drm_mode_fb_cmd, fb_id) - 0usize];
    ["Offset of field: drm_mode_fb_cmd::width"]
        [::core::mem::offset_of!(drm_mode_fb_cmd, width) - 4usize];
    ["Offset of field: drm_mode_fb_cmd::height"]
        [::core::mem::offset_of!(drm_mode_fb_cmd, height) - 8usize];
    ["Offset of field: drm_mode_fb_cmd::pitch"]
        [::core::mem::offset_of!(drm_mode_fb_cmd, pitch) - 12usize];
    ["Offset of field: drm_mode_fb_cmd::bpp"]
        [::core::mem::offset_of!(drm_mode_fb_cmd, bpp) - 16usize];
    ["Offset of field: drm_mode_fb_cmd::depth"]
        [::core::mem::offset_of!(drm_mode_fb_cmd, depth) - 20usize];
    ["Offset of field: drm_mode_fb_cmd::handle"]
        [::core::mem::offset_of!(drm_mode_fb_cmd, handle) - 24usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_fb_cmd2 {
    pub fb_id: __u32,
    pub width: __u32,
    pub height: __u32,
    pub pixel_format: __u32,
    pub flags: __u32,
    pub handles: [__u32; 4usize],
    pub pitches: [__u32; 4usize],
    pub offsets: [__u32; 4usize],
    pub modifier: [__u64; 4usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_fb_cmd2"][::core::mem::size_of::<drm_mode_fb_cmd2>() - 104usize];
    ["Alignment of drm_mode_fb_cmd2"][::core::mem::align_of::<drm_mode_fb_cmd2>() - 8usize];
    ["Offset of field: drm_mode_fb_cmd2::fb_id"]
        [::core::mem::offset_of!(drm_mode_fb_cmd2, fb_id) - 0usize];
    ["Offset of field: drm_mode_fb_cmd2::width"]
        [::core::mem::offset_of!(drm_mode_fb_cmd2, width) - 4usize];
    ["Offset of field: drm_mode_fb_cmd2::height"]
        [::core::mem::offset_of!(drm_mode_fb_cmd2, height) - 8usize];
    ["Offset of field: drm_mode_fb_cmd2::pixel_format"]
        [::core::mem::offset_of!(drm_mode_fb_cmd2, pixel_format) - 12usize];
    ["Offset of field: drm_mode_fb_cmd2::flags"]
        [::core::mem::offset_of!(drm_mode_fb_cmd2, flags) - 16usize];
    ["Offset of field: drm_mode_fb_cmd2::handles"]
        [::core::mem::offset_of!(drm_mode_fb_cmd2, handles) - 20usize];
    ["Offset of field: drm_mode_fb_cmd2::pitches"]
        [::core::mem::offset_of!(drm_mode_fb_cmd2, pitches) - 36usize];
    ["Offset of field: drm_mode_fb_cmd2::offsets"]
        [::core::mem::offset_of!(drm_mode_fb_cmd2, offsets) - 52usize];
    ["Offset of field: drm_mode_fb_cmd2::modifier"]
        [::core::mem::offset_of!(drm_mode_fb_cmd2, modifier) - 72usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_fb_dirty_cmd {
    pub fb_id: __u32,
    pub flags: __u32,
    pub color: __u32,
    pub num_clips: __u32,
    pub clips_ptr: __u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_fb_dirty_cmd"][::core::mem::size_of::<drm_mode_fb_dirty_cmd>() - 24usize];
    ["Alignment of drm_mode_fb_dirty_cmd"]
        [::core::mem::align_of::<drm_mode_fb_dirty_cmd>() - 8usize];
    ["Offset of field: drm_mode_fb_dirty_cmd::fb_id"]
        [::core::mem::offset_of!(drm_mode_fb_dirty_cmd, fb_id) - 0usize];
    ["Offset of field: drm_mode_fb_dirty_cmd::flags"]
        [::core::mem::offset_of!(drm_mode_fb_dirty_cmd, flags) - 4usize];
    ["Offset of field: drm_mode_fb_dirty_cmd::color"]
        [::core::mem::offset_of!(drm_mode_fb_dirty_cmd, color) - 8usize];
    ["Offset of field: drm_mode_fb_dirty_cmd::num_clips"]
        [::core::mem::offset_of!(drm_mode_fb_dirty_cmd, num_clips) - 12usize];
    ["Offset of field: drm_mode_fb_dirty_cmd::clips_ptr"]
        [::core::mem::offset_of!(drm_mode_fb_dirty_cmd, clips_ptr) - 16usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_mode_cmd {
    pub connector_id: __u32,
    pub mode: drm_mode_modeinfo,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_mode_cmd"][::core::mem::size_of::<drm_mode_mode_cmd>() - 72usize];
    ["Alignment of drm_mode_mode_cmd"][::core::mem::align_of::<drm_mode_mode_cmd>() - 4usize];
    ["Offset of field: drm_mode_mode_cmd::connector_id"]
        [::core::mem::offset_of!(drm_mode_mode_cmd, connector_id) - 0usize];
    ["Offset of field: drm_mode_mode_cmd::mode"]
        [::core::mem::offset_of!(drm_mode_mode_cmd, mode) - 4usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_cursor {
    pub flags: __u32,
    pub crtc_id: __u32,
    pub x: __s32,
    pub y: __s32,
    pub width: __u32,
    pub height: __u32,
    pub handle: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_cursor"][::core::mem::size_of::<drm_mode_cursor>() - 28usize];
    ["Alignment of drm_mode_cursor"][::core::mem::align_of::<drm_mode_cursor>() - 4usize];
    ["Offset of field: drm_mode_cursor::flags"]
        [::core::mem::offset_of!(drm_mode_cursor, flags) - 0usize];
    ["Offset of field: drm_mode_cursor::crtc_id"]
        [::core::mem::offset_of!(drm_mode_cursor, crtc_id) - 4usize];
    ["Offset of field: drm_mode_cursor::x"][::core::mem::offset_of!(drm_mode_cursor, x) - 8usize];
    ["Offset of field: drm_mode_cursor::y"][::core::mem::offset_of!(drm_mode_cursor, y) - 12usize];
    ["Offset of field: drm_mode_cursor::width"]
        [::core::mem::offset_of!(drm_mode_cursor, width) - 16usize];
    ["Offset of field: drm_mode_cursor::height"]
        [::core::mem::offset_of!(drm_mode_cursor, height) - 20usize];
    ["Offset of field: drm_mode_cursor::handle"]
        [::core::mem::offset_of!(drm_mode_cursor, handle) - 24usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_cursor2 {
    pub flags: __u32,
    pub crtc_id: __u32,
    pub x: __s32,
    pub y: __s32,
    pub width: __u32,
    pub height: __u32,
    pub handle: __u32,
    pub hot_x: __s32,
    pub hot_y: __s32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_cursor2"][::core::mem::size_of::<drm_mode_cursor2>() - 36usize];
    ["Alignment of drm_mode_cursor2"][::core::mem::align_of::<drm_mode_cursor2>() - 4usize];
    ["Offset of field: drm_mode_cursor2::flags"]
        [::core::mem::offset_of!(drm_mode_cursor2, flags) - 0usize];
    ["Offset of field: drm_mode_cursor2::crtc_id"]
        [::core::mem::offset_of!(drm_mode_cursor2, crtc_id) - 4usize];
    ["Offset of field: drm_mode_cursor2::x"][::core::mem::offset_of!(drm_mode_cursor2, x) - 8usize];
    ["Offset of field: drm_mode_cursor2::y"]
        [::core::mem::offset_of!(drm_mode_cursor2, y) - 12usize];
    ["Offset of field: drm_mode_cursor2::width"]
        [::core::mem::offset_of!(drm_mode_cursor2, width) - 16usize];
    ["Offset of field: drm_mode_cursor2::height"]
        [::core::mem::offset_of!(drm_mode_cursor2, height) - 20usize];
    ["Offset of field: drm_mode_cursor2::handle"]
        [::core::mem::offset_of!(drm_mode_cursor2, handle) - 24usize];
    ["Offset of field: drm_mode_cursor2::hot_x"]
        [::core::mem::offset_of!(drm_mode_cursor2, hot_x) - 28usize];
    ["Offset of field: drm_mode_cursor2::hot_y"]
        [::core::mem::offset_of!(drm_mode_cursor2, hot_y) - 32usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_crtc_lut {
    pub crtc_id: __u32,
    pub gamma_size: __u32,
    pub red: __u64,
    pub green: __u64,
    pub blue: __u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_crtc_lut"][::core::mem::size_of::<drm_mode_crtc_lut>() - 32usize];
    ["Alignment of drm_mode_crtc_lut"][::core::mem::align_of::<drm_mode_crtc_lut>() - 8usize];
    ["Offset of field: drm_mode_crtc_lut::crtc_id"]
        [::core::mem::offset_of!(drm_mode_crtc_lut, crtc_id) - 0usize];
    ["Offset of field: drm_mode_crtc_lut::gamma_size"]
        [::core::mem::offset_of!(drm_mode_crtc_lut, gamma_size) - 4usize];
    ["Offset of field: drm_mode_crtc_lut::red"]
        [::core::mem::offset_of!(drm_mode_crtc_lut, red) - 8usize];
    ["Offset of field: drm_mode_crtc_lut::green"]
        [::core::mem::offset_of!(drm_mode_crtc_lut, green) - 16usize];
    ["Offset of field: drm_mode_crtc_lut::blue"]
        [::core::mem::offset_of!(drm_mode_crtc_lut, blue) - 24usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_color_ctm {
    pub matrix: [__u64; 9usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_color_ctm"][::core::mem::size_of::<drm_color_ctm>() - 72usize];
    ["Alignment of drm_color_ctm"][::core::mem::align_of::<drm_color_ctm>() - 8usize];
    ["Offset of field: drm_color_ctm::matrix"]
        [::core::mem::offset_of!(drm_color_ctm, matrix) - 0usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_color_lut {
    pub red: __u16,
    pub green: __u16,
    pub blue: __u16,
    pub reserved: __u16,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_color_lut"][::core::mem::size_of::<drm_color_lut>() - 8usize];
    ["Alignment of drm_color_lut"][::core::mem::align_of::<drm_color_lut>() - 2usize];
    ["Offset of field: drm_color_lut::red"][::core::mem::offset_of!(drm_color_lut, red) - 0usize];
    ["Offset of field: drm_color_lut::green"]
        [::core::mem::offset_of!(drm_color_lut, green) - 2usize];
    ["Offset of field: drm_color_lut::blue"][::core::mem::offset_of!(drm_color_lut, blue) - 4usize];
    ["Offset of field: drm_color_lut::reserved"]
        [::core::mem::offset_of!(drm_color_lut, reserved) - 6usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct hdr_metadata_infoframe {
    pub eotf: __u8,
    pub metadata_type: __u8,
    pub display_primaries: [hdr_metadata_infoframe__bindgen_ty_1; 3usize],
    pub white_point: hdr_metadata_infoframe__bindgen_ty_2,
    pub max_display_mastering_luminance: __u16,
    pub min_display_mastering_luminance: __u16,
    pub max_cll: __u16,
    pub max_fall: __u16,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct hdr_metadata_infoframe__bindgen_ty_1 {
    pub x: __u16,
    pub y: __u16,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of hdr_metadata_infoframe__bindgen_ty_1"]
        [::core::mem::size_of::<hdr_metadata_infoframe__bindgen_ty_1>() - 4usize];
    ["Alignment of hdr_metadata_infoframe__bindgen_ty_1"]
        [::core::mem::align_of::<hdr_metadata_infoframe__bindgen_ty_1>() - 2usize];
    ["Offset of field: hdr_metadata_infoframe__bindgen_ty_1::x"]
        [::core::mem::offset_of!(hdr_metadata_infoframe__bindgen_ty_1, x) - 0usize];
    ["Offset of field: hdr_metadata_infoframe__bindgen_ty_1::y"]
        [::core::mem::offset_of!(hdr_metadata_infoframe__bindgen_ty_1, y) - 2usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct hdr_metadata_infoframe__bindgen_ty_2 {
    pub x: __u16,
    pub y: __u16,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of hdr_metadata_infoframe__bindgen_ty_2"]
        [::core::mem::size_of::<hdr_metadata_infoframe__bindgen_ty_2>() - 4usize];
    ["Alignment of hdr_metadata_infoframe__bindgen_ty_2"]
        [::core::mem::align_of::<hdr_metadata_infoframe__bindgen_ty_2>() - 2usize];
    ["Offset of field: hdr_metadata_infoframe__bindgen_ty_2::x"]
        [::core::mem::offset_of!(hdr_metadata_infoframe__bindgen_ty_2, x) - 0usize];
    ["Offset of field: hdr_metadata_infoframe__bindgen_ty_2::y"]
        [::core::mem::offset_of!(hdr_metadata_infoframe__bindgen_ty_2, y) - 2usize];
};
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of hdr_metadata_infoframe"][::core::mem::size_of::<hdr_metadata_infoframe>() - 26usize];
    ["Alignment of hdr_metadata_infoframe"]
        [::core::mem::align_of::<hdr_metadata_infoframe>() - 2usize];
    ["Offset of field: hdr_metadata_infoframe::eotf"]
        [::core::mem::offset_of!(hdr_metadata_infoframe, eotf) - 0usize];
    ["Offset of field: hdr_metadata_infoframe::metadata_type"]
        [::core::mem::offset_of!(hdr_metadata_infoframe, metadata_type) - 1usize];
    ["Offset of field: hdr_metadata_infoframe::display_primaries"]
        [::core::mem::offset_of!(hdr_metadata_infoframe, display_primaries) - 2usize];
    ["Offset of field: hdr_metadata_infoframe::white_point"]
        [::core::mem::offset_of!(hdr_metadata_infoframe, white_point) - 14usize];
    ["Offset of field: hdr_metadata_infoframe::max_display_mastering_luminance"][::core::mem::offset_of!(
        hdr_metadata_infoframe,
        max_display_mastering_luminance
    ) - 18usize];
    ["Offset of field: hdr_metadata_infoframe::min_display_mastering_luminance"][::core::mem::offset_of!(
        hdr_metadata_infoframe,
        min_display_mastering_luminance
    ) - 20usize];
    ["Offset of field: hdr_metadata_infoframe::max_cll"]
        [::core::mem::offset_of!(hdr_metadata_infoframe, max_cll) - 22usize];
    ["Offset of field: hdr_metadata_infoframe::max_fall"]
        [::core::mem::offset_of!(hdr_metadata_infoframe, max_fall) - 24usize];
};
#[repr(C)]
#[derive(Copy, Clone)]
pub struct hdr_output_metadata {
    pub metadata_type: __u32,
    pub __bindgen_anon_1: hdr_output_metadata__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union hdr_output_metadata__bindgen_ty_1 {
    pub hdmi_metadata_type1: hdr_metadata_infoframe,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of hdr_output_metadata__bindgen_ty_1"]
        [::core::mem::size_of::<hdr_output_metadata__bindgen_ty_1>() - 26usize];
    ["Alignment of hdr_output_metadata__bindgen_ty_1"]
        [::core::mem::align_of::<hdr_output_metadata__bindgen_ty_1>() - 2usize];
    ["Offset of field: hdr_output_metadata__bindgen_ty_1::hdmi_metadata_type1"]
        [::core::mem::offset_of!(hdr_output_metadata__bindgen_ty_1, hdmi_metadata_type1) - 0usize];
};
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of hdr_output_metadata"][::core::mem::size_of::<hdr_output_metadata>() - 32usize];
    ["Alignment of hdr_output_metadata"][::core::mem::align_of::<hdr_output_metadata>() - 4usize];
    ["Offset of field: hdr_output_metadata::metadata_type"]
        [::core::mem::offset_of!(hdr_output_metadata, metadata_type) - 0usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_crtc_page_flip {
    pub crtc_id: __u32,
    pub fb_id: __u32,
    pub flags: __u32,
    pub reserved: __u32,
    pub user_data: __u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_crtc_page_flip"]
        [::core::mem::size_of::<drm_mode_crtc_page_flip>() - 24usize];
    ["Alignment of drm_mode_crtc_page_flip"]
        [::core::mem::align_of::<drm_mode_crtc_page_flip>() - 8usize];
    ["Offset of field: drm_mode_crtc_page_flip::crtc_id"]
        [::core::mem::offset_of!(drm_mode_crtc_page_flip, crtc_id) - 0usize];
    ["Offset of field: drm_mode_crtc_page_flip::fb_id"]
        [::core::mem::offset_of!(drm_mode_crtc_page_flip, fb_id) - 4usize];
    ["Offset of field: drm_mode_crtc_page_flip::flags"]
        [::core::mem::offset_of!(drm_mode_crtc_page_flip, flags) - 8usize];
    ["Offset of field: drm_mode_crtc_page_flip::reserved"]
        [::core::mem::offset_of!(drm_mode_crtc_page_flip, reserved) - 12usize];
    ["Offset of field: drm_mode_crtc_page_flip::user_data"]
        [::core::mem::offset_of!(drm_mode_crtc_page_flip, user_data) - 16usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_crtc_page_flip_target {
    pub crtc_id: __u32,
    pub fb_id: __u32,
    pub flags: __u32,
    pub sequence: __u32,
    pub user_data: __u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_crtc_page_flip_target"]
        [::core::mem::size_of::<drm_mode_crtc_page_flip_target>() - 24usize];
    ["Alignment of drm_mode_crtc_page_flip_target"]
        [::core::mem::align_of::<drm_mode_crtc_page_flip_target>() - 8usize];
    ["Offset of field: drm_mode_crtc_page_flip_target::crtc_id"]
        [::core::mem::offset_of!(drm_mode_crtc_page_flip_target, crtc_id) - 0usize];
    ["Offset of field: drm_mode_crtc_page_flip_target::fb_id"]
        [::core::mem::offset_of!(drm_mode_crtc_page_flip_target, fb_id) - 4usize];
    ["Offset of field: drm_mode_crtc_page_flip_target::flags"]
        [::core::mem::offset_of!(drm_mode_crtc_page_flip_target, flags) - 8usize];
    ["Offset of field: drm_mode_crtc_page_flip_target::sequence"]
        [::core::mem::offset_of!(drm_mode_crtc_page_flip_target, sequence) - 12usize];
    ["Offset of field: drm_mode_crtc_page_flip_target::user_data"]
        [::core::mem::offset_of!(drm_mode_crtc_page_flip_target, user_data) - 16usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_create_dumb {
    pub height: __u32,
    pub width: __u32,
    pub bpp: __u32,
    pub flags: __u32,
    pub handle: __u32,
    pub pitch: __u32,
    pub size: __u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_create_dumb"][::core::mem::size_of::<drm_mode_create_dumb>() - 32usize];
    ["Alignment of drm_mode_create_dumb"][::core::mem::align_of::<drm_mode_create_dumb>() - 8usize];
    ["Offset of field: drm_mode_create_dumb::height"]
        [::core::mem::offset_of!(drm_mode_create_dumb, height) - 0usize];
    ["Offset of field: drm_mode_create_dumb::width"]
        [::core::mem::offset_of!(drm_mode_create_dumb, width) - 4usize];
    ["Offset of field: drm_mode_create_dumb::bpp"]
        [::core::mem::offset_of!(drm_mode_create_dumb, bpp) - 8usize];
    ["Offset of field: drm_mode_create_dumb::flags"]
        [::core::mem::offset_of!(drm_mode_create_dumb, flags) - 12usize];
    ["Offset of field: drm_mode_create_dumb::handle"]
        [::core::mem::offset_of!(drm_mode_create_dumb, handle) - 16usize];
    ["Offset of field: drm_mode_create_dumb::pitch"]
        [::core::mem::offset_of!(drm_mode_create_dumb, pitch) - 20usize];
    ["Offset of field: drm_mode_create_dumb::size"]
        [::core::mem::offset_of!(drm_mode_create_dumb, size) - 24usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_map_dumb {
    pub handle: __u32,
    pub pad: __u32,
    pub offset: __u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_map_dumb"][::core::mem::size_of::<drm_mode_map_dumb>() - 16usize];
    ["Alignment of drm_mode_map_dumb"][::core::mem::align_of::<drm_mode_map_dumb>() - 8usize];
    ["Offset of field: drm_mode_map_dumb::handle"]
        [::core::mem::offset_of!(drm_mode_map_dumb, handle) - 0usize];
    ["Offset of field: drm_mode_map_dumb::pad"]
        [::core::mem::offset_of!(drm_mode_map_dumb, pad) - 4usize];
    ["Offset of field: drm_mode_map_dumb::offset"]
        [::core::mem::offset_of!(drm_mode_map_dumb, offset) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_destroy_dumb {
    pub handle: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_destroy_dumb"][::core::mem::size_of::<drm_mode_destroy_dumb>() - 4usize];
    ["Alignment of drm_mode_destroy_dumb"]
        [::core::mem::align_of::<drm_mode_destroy_dumb>() - 4usize];
    ["Offset of field: drm_mode_destroy_dumb::handle"]
        [::core::mem::offset_of!(drm_mode_destroy_dumb, handle) - 0usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_atomic {
    pub flags: __u32,
    pub count_objs: __u32,
    pub objs_ptr: __u64,
    pub count_props_ptr: __u64,
    pub props_ptr: __u64,
    pub prop_values_ptr: __u64,
    pub reserved: __u64,
    pub user_data: __u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_atomic"][::core::mem::size_of::<drm_mode_atomic>() - 56usize];
    ["Alignment of drm_mode_atomic"][::core::mem::align_of::<drm_mode_atomic>() - 8usize];
    ["Offset of field: drm_mode_atomic::flags"]
        [::core::mem::offset_of!(drm_mode_atomic, flags) - 0usize];
    ["Offset of field: drm_mode_atomic::count_objs"]
        [::core::mem::offset_of!(drm_mode_atomic, count_objs) - 4usize];
    ["Offset of field: drm_mode_atomic::objs_ptr"]
        [::core::mem::offset_of!(drm_mode_atomic, objs_ptr) - 8usize];
    ["Offset of field: drm_mode_atomic::count_props_ptr"]
        [::core::mem::offset_of!(drm_mode_atomic, count_props_ptr) - 16usize];
    ["Offset of field: drm_mode_atomic::props_ptr"]
        [::core::mem::offset_of!(drm_mode_atomic, props_ptr) - 24usize];
    ["Offset of field: drm_mode_atomic::prop_values_ptr"]
        [::core::mem::offset_of!(drm_mode_atomic, prop_values_ptr) - 32usize];
    ["Offset of field: drm_mode_atomic::reserved"]
        [::core::mem::offset_of!(drm_mode_atomic, reserved) - 40usize];
    ["Offset of field: drm_mode_atomic::user_data"]
        [::core::mem::offset_of!(drm_mode_atomic, user_data) - 48usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_format_modifier_blob {
    pub version: __u32,
    pub flags: __u32,
    pub count_formats: __u32,
    pub formats_offset: __u32,
    pub count_modifiers: __u32,
    pub modifiers_offset: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_format_modifier_blob"]
        [::core::mem::size_of::<drm_format_modifier_blob>() - 24usize];
    ["Alignment of drm_format_modifier_blob"]
        [::core::mem::align_of::<drm_format_modifier_blob>() - 4usize];
    ["Offset of field: drm_format_modifier_blob::version"]
        [::core::mem::offset_of!(drm_format_modifier_blob, version) - 0usize];
    ["Offset of field: drm_format_modifier_blob::flags"]
        [::core::mem::offset_of!(drm_format_modifier_blob, flags) - 4usize];
    ["Offset of field: drm_format_modifier_blob::count_formats"]
        [::core::mem::offset_of!(drm_format_modifier_blob, count_formats) - 8usize];
    ["Offset of field: drm_format_modifier_blob::formats_offset"]
        [::core::mem::offset_of!(drm_format_modifier_blob, formats_offset) - 12usize];
    ["Offset of field: drm_format_modifier_blob::count_modifiers"]
        [::core::mem::offset_of!(drm_format_modifier_blob, count_modifiers) - 16usize];
    ["Offset of field: drm_format_modifier_blob::modifiers_offset"]
        [::core::mem::offset_of!(drm_format_modifier_blob, modifiers_offset) - 20usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_format_modifier {
    pub formats: __u64,
    pub offset: __u32,
    pub pad: __u32,
    pub modifier: __u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_format_modifier"][::core::mem::size_of::<drm_format_modifier>() - 24usize];
    ["Alignment of drm_format_modifier"][::core::mem::align_of::<drm_format_modifier>() - 8usize];
    ["Offset of field: drm_format_modifier::formats"]
        [::core::mem::offset_of!(drm_format_modifier, formats) - 0usize];
    ["Offset of field: drm_format_modifier::offset"]
        [::core::mem::offset_of!(drm_format_modifier, offset) - 8usize];
    ["Offset of field: drm_format_modifier::pad"]
        [::core::mem::offset_of!(drm_format_modifier, pad) - 12usize];
    ["Offset of field: drm_format_modifier::modifier"]
        [::core::mem::offset_of!(drm_format_modifier, modifier) - 16usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_create_blob {
    pub data: __u64,
    pub length: __u32,
    pub blob_id: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_create_blob"][::core::mem::size_of::<drm_mode_create_blob>() - 16usize];
    ["Alignment of drm_mode_create_blob"][::core::mem::align_of::<drm_mode_create_blob>() - 8usize];
    ["Offset of field: drm_mode_create_blob::data"]
        [::core::mem::offset_of!(drm_mode_create_blob, data) - 0usize];
    ["Offset of field: drm_mode_create_blob::length"]
        [::core::mem::offset_of!(drm_mode_create_blob, length) - 8usize];
    ["Offset of field: drm_mode_create_blob::blob_id"]
        [::core::mem::offset_of!(drm_mode_create_blob, blob_id) - 12usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_destroy_blob {
    pub blob_id: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_destroy_blob"][::core::mem::size_of::<drm_mode_destroy_blob>() - 4usize];
    ["Alignment of drm_mode_destroy_blob"]
        [::core::mem::align_of::<drm_mode_destroy_blob>() - 4usize];
    ["Offset of field: drm_mode_destroy_blob::blob_id"]
        [::core::mem::offset_of!(drm_mode_destroy_blob, blob_id) - 0usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_create_lease {
    pub object_ids: __u64,
    pub object_count: __u32,
    pub flags: __u32,
    pub lessee_id: __u32,
    pub fd: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_create_lease"][::core::mem::size_of::<drm_mode_create_lease>() - 24usize];
    ["Alignment of drm_mode_create_lease"]
        [::core::mem::align_of::<drm_mode_create_lease>() - 8usize];
    ["Offset of field: drm_mode_create_lease::object_ids"]
        [::core::mem::offset_of!(drm_mode_create_lease, object_ids) - 0usize];
    ["Offset of field: drm_mode_create_lease::object_count"]
        [::core::mem::offset_of!(drm_mode_create_lease, object_count) - 8usize];
    ["Offset of field: drm_mode_create_lease::flags"]
        [::core::mem::offset_of!(drm_mode_create_lease, flags) - 12usize];
    ["Offset of field: drm_mode_create_lease::lessee_id"]
        [::core::mem::offset_of!(drm_mode_create_lease, lessee_id) - 16usize];
    ["Offset of field: drm_mode_create_lease::fd"]
        [::core::mem::offset_of!(drm_mode_create_lease, fd) - 20usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_list_lessees {
    pub count_lessees: __u32,
    pub pad: __u32,
    pub lessees_ptr: __u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_list_lessees"][::core::mem::size_of::<drm_mode_list_lessees>() - 16usize];
    ["Alignment of drm_mode_list_lessees"]
        [::core::mem::align_of::<drm_mode_list_lessees>() - 8usize];
    ["Offset of field: drm_mode_list_lessees::count_lessees"]
        [::core::mem::offset_of!(drm_mode_list_lessees, count_lessees) - 0usize];
    ["Offset of field: drm_mode_list_lessees::pad"]
        [::core::mem::offset_of!(drm_mode_list_lessees, pad) - 4usize];
    ["Offset of field: drm_mode_list_lessees::lessees_ptr"]
        [::core::mem::offset_of!(drm_mode_list_lessees, lessees_ptr) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_get_lease {
    pub count_objects: __u32,
    pub pad: __u32,
    pub objects_ptr: __u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_get_lease"][::core::mem::size_of::<drm_mode_get_lease>() - 16usize];
    ["Alignment of drm_mode_get_lease"][::core::mem::align_of::<drm_mode_get_lease>() - 8usize];
    ["Offset of field: drm_mode_get_lease::count_objects"]
        [::core::mem::offset_of!(drm_mode_get_lease, count_objects) - 0usize];
    ["Offset of field: drm_mode_get_lease::pad"]
        [::core::mem::offset_of!(drm_mode_get_lease, pad) - 4usize];
    ["Offset of field: drm_mode_get_lease::objects_ptr"]
        [::core::mem::offset_of!(drm_mode_get_lease, objects_ptr) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_revoke_lease {
    pub lessee_id: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_revoke_lease"][::core::mem::size_of::<drm_mode_revoke_lease>() - 4usize];
    ["Alignment of drm_mode_revoke_lease"]
        [::core::mem::align_of::<drm_mode_revoke_lease>() - 4usize];
    ["Offset of field: drm_mode_revoke_lease::lessee_id"]
        [::core::mem::offset_of!(drm_mode_revoke_lease, lessee_id) - 0usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_rect {
    pub x1: __s32,
    pub y1: __s32,
    pub x2: __s32,
    pub y2: __s32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_rect"][::core::mem::size_of::<drm_mode_rect>() - 16usize];
    ["Alignment of drm_mode_rect"][::core::mem::align_of::<drm_mode_rect>() - 4usize];
    ["Offset of field: drm_mode_rect::x1"][::core::mem::offset_of!(drm_mode_rect, x1) - 0usize];
    ["Offset of field: drm_mode_rect::y1"][::core::mem::offset_of!(drm_mode_rect, y1) - 4usize];
    ["Offset of field: drm_mode_rect::x2"][::core::mem::offset_of!(drm_mode_rect, x2) - 8usize];
    ["Offset of field: drm_mode_rect::y2"][::core::mem::offset_of!(drm_mode_rect, y2) - 12usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_closefb {
    pub fb_id: __u32,
    pub pad: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_mode_closefb"][::core::mem::size_of::<drm_mode_closefb>() - 8usize];
    ["Alignment of drm_mode_closefb"][::core::mem::align_of::<drm_mode_closefb>() - 4usize];
    ["Offset of field: drm_mode_closefb::fb_id"]
        [::core::mem::offset_of!(drm_mode_closefb, fb_id) - 0usize];
    ["Offset of field: drm_mode_closefb::pad"]
        [::core::mem::offset_of!(drm_mode_closefb, pad) - 4usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_event {
    pub type_: __u32,
    pub length: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_event"][::core::mem::size_of::<drm_event>() - 8usize];
    ["Alignment of drm_event"][::core::mem::align_of::<drm_event>() - 4usize];
    ["Offset of field: drm_event::type_"][::core::mem::offset_of!(drm_event, type_) - 0usize];
    ["Offset of field: drm_event::length"][::core::mem::offset_of!(drm_event, length) - 4usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_event_vblank {
    pub base: drm_event,
    pub user_data: __u64,
    pub tv_sec: __u32,
    pub tv_usec: __u32,
    pub sequence: __u32,
    pub crtc_id: __u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_event_vblank"][::core::mem::size_of::<drm_event_vblank>() - 32usize];
    ["Alignment of drm_event_vblank"][::core::mem::align_of::<drm_event_vblank>() - 8usize];
    ["Offset of field: drm_event_vblank::base"]
        [::core::mem::offset_of!(drm_event_vblank, base) - 0usize];
    ["Offset of field: drm_event_vblank::user_data"]
        [::core::mem::offset_of!(drm_event_vblank, user_data) - 8usize];
    ["Offset of field: drm_event_vblank::tv_sec"]
        [::core::mem::offset_of!(drm_event_vblank, tv_sec) - 16usize];
    ["Offset of field: drm_event_vblank::tv_usec"]
        [::core::mem::offset_of!(drm_event_vblank, tv_usec) - 20usize];
    ["Offset of field: drm_event_vblank::sequence"]
        [::core::mem::offset_of!(drm_event_vblank, sequence) - 24usize];
    ["Offset of field: drm_event_vblank::crtc_id"]
        [::core::mem::offset_of!(drm_event_vblank, crtc_id) - 28usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_event_crtc_sequence {
    pub base: drm_event,
    pub user_data: __u64,
    pub time_ns: __s64,
    pub sequence: __u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drm_event_crtc_sequence"]
        [::core::mem::size_of::<drm_event_crtc_sequence>() - 32usize];
    ["Alignment of drm_event_crtc_sequence"]
        [::core::mem::align_of::<drm_event_crtc_sequence>() - 8usize];
    ["Offset of field: drm_event_crtc_sequence::base"]
        [::core::mem::offset_of!(drm_event_crtc_sequence, base) - 0usize];
    ["Offset of field: drm_event_crtc_sequence::user_data"]
        [::core::mem::offset_of!(drm_event_crtc_sequence, user_data) - 8usize];
    ["Offset of field: drm_event_crtc_sequence::time_ns"]
        [::core::mem::offset_of!(drm_event_crtc_sequence, time_ns) - 16usize];
    ["Offset of field: drm_event_crtc_sequence::sequence"]
        [::core::mem::offset_of!(drm_event_crtc_sequence, sequence) - 24usize];
};
pub type drm_clip_rect_t = drm_clip_rect;
pub type drm_drawable_info_t = drm_drawable_info;
pub type drm_tex_region_t = drm_tex_region;
pub type drm_hw_lock_t = drm_hw_lock;
pub type drm_version_t = drm_version;
pub type drm_unique_t = drm_unique;
pub type drm_list_t = drm_list;
pub type drm_block_t = drm_block;
pub type drm_control_t = drm_control;
pub use self::drm_map_flags as drm_map_flags_t;
pub use self::drm_map_type as drm_map_type_t;
pub type drm_ctx_priv_map_t = drm_ctx_priv_map;
pub type drm_map_t = drm_map;
pub type drm_client_t = drm_client;
pub use self::drm_stat_type as drm_stat_type_t;
pub type drm_stats_t = drm_stats;
pub use self::drm_lock_flags as drm_lock_flags_t;
pub type drm_lock_t = drm_lock;
pub use self::drm_dma_flags as drm_dma_flags_t;
pub type drm_buf_desc_t = drm_buf_desc;
pub type drm_buf_info_t = drm_buf_info;
pub type drm_buf_free_t = drm_buf_free;
pub type drm_buf_pub_t = drm_buf_pub;
pub type drm_buf_map_t = drm_buf_map;
pub type drm_dma_t = drm_dma;
pub type drm_wait_vblank_t = drm_wait_vblank;
pub type drm_agp_mode_t = drm_agp_mode;
pub use self::drm_ctx_flags as drm_ctx_flags_t;
pub type drm_ctx_t = drm_ctx;
pub type drm_ctx_res_t = drm_ctx_res;
pub type drm_draw_t = drm_draw;
pub type drm_update_draw_t = drm_update_draw;
pub type drm_auth_t = drm_auth;
pub type drm_irq_busid_t = drm_irq_busid;
pub use self::drm_vblank_seq_type as drm_vblank_seq_type_t;
pub type drm_agp_buffer_t = drm_agp_buffer;
pub type drm_agp_binding_t = drm_agp_binding;
pub type drm_agp_info_t = drm_agp_info;
pub type drm_scatter_gather_t = drm_scatter_gather;
pub type drm_set_version_t = drm_set_version;
pub type drmSize = ::core::ffi::c_uint;
pub type drmSizePtr = *mut ::core::ffi::c_uint;
pub type drmAddress = *mut ::core::ffi::c_void;
pub type drmAddressPtr = *mut *mut ::core::ffi::c_void;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmServerInfo {
    pub debug_print: ::core::option::Option<
        unsafe extern "C" fn(
            format: *const ::core::ffi::c_char,
            ap: *mut __va_list_tag,
        ) -> ::core::ffi::c_int,
    >,
    pub load_module: ::core::option::Option<
        unsafe extern "C" fn(name: *const ::core::ffi::c_char) -> ::core::ffi::c_int,
    >,
    pub get_perms:
        ::core::option::Option<unsafe extern "C" fn(arg1: *mut gid_t, arg2: *mut mode_t)>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmServerInfo"][::core::mem::size_of::<_drmServerInfo>() - 24usize];
    ["Alignment of _drmServerInfo"][::core::mem::align_of::<_drmServerInfo>() - 8usize];
    ["Offset of field: _drmServerInfo::debug_print"]
        [::core::mem::offset_of!(_drmServerInfo, debug_print) - 0usize];
    ["Offset of field: _drmServerInfo::load_module"]
        [::core::mem::offset_of!(_drmServerInfo, load_module) - 8usize];
    ["Offset of field: _drmServerInfo::get_perms"]
        [::core::mem::offset_of!(_drmServerInfo, get_perms) - 16usize];
};
pub type drmServerInfo = _drmServerInfo;
pub type drmServerInfoPtr = *mut _drmServerInfo;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drmHashEntry {
    pub fd: ::core::ffi::c_int,
    pub f: ::core::option::Option<
        unsafe extern "C" fn(
            arg1: ::core::ffi::c_int,
            arg2: *mut ::core::ffi::c_void,
            arg3: *mut ::core::ffi::c_void,
        ),
    >,
    pub tagTable: *mut ::core::ffi::c_void,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drmHashEntry"][::core::mem::size_of::<drmHashEntry>() - 24usize];
    ["Alignment of drmHashEntry"][::core::mem::align_of::<drmHashEntry>() - 8usize];
    ["Offset of field: drmHashEntry::fd"][::core::mem::offset_of!(drmHashEntry, fd) - 0usize];
    ["Offset of field: drmHashEntry::f"][::core::mem::offset_of!(drmHashEntry, f) - 8usize];
    ["Offset of field: drmHashEntry::tagTable"]
        [::core::mem::offset_of!(drmHashEntry, tagTable) - 16usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmVersion {
    pub version_major: ::core::ffi::c_int,
    pub version_minor: ::core::ffi::c_int,
    pub version_patchlevel: ::core::ffi::c_int,
    pub name_len: ::core::ffi::c_int,
    pub name: *mut ::core::ffi::c_char,
    pub date_len: ::core::ffi::c_int,
    pub date: *mut ::core::ffi::c_char,
    pub desc_len: ::core::ffi::c_int,
    pub desc: *mut ::core::ffi::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmVersion"][::core::mem::size_of::<_drmVersion>() - 56usize];
    ["Alignment of _drmVersion"][::core::mem::align_of::<_drmVersion>() - 8usize];
    ["Offset of field: _drmVersion::version_major"]
        [::core::mem::offset_of!(_drmVersion, version_major) - 0usize];
    ["Offset of field: _drmVersion::version_minor"]
        [::core::mem::offset_of!(_drmVersion, version_minor) - 4usize];
    ["Offset of field: _drmVersion::version_patchlevel"]
        [::core::mem::offset_of!(_drmVersion, version_patchlevel) - 8usize];
    ["Offset of field: _drmVersion::name_len"]
        [::core::mem::offset_of!(_drmVersion, name_len) - 12usize];
    ["Offset of field: _drmVersion::name"][::core::mem::offset_of!(_drmVersion, name) - 16usize];
    ["Offset of field: _drmVersion::date_len"]
        [::core::mem::offset_of!(_drmVersion, date_len) - 24usize];
    ["Offset of field: _drmVersion::date"][::core::mem::offset_of!(_drmVersion, date) - 32usize];
    ["Offset of field: _drmVersion::desc_len"]
        [::core::mem::offset_of!(_drmVersion, desc_len) - 40usize];
    ["Offset of field: _drmVersion::desc"][::core::mem::offset_of!(_drmVersion, desc) - 48usize];
};
pub type drmVersion = _drmVersion;
pub type drmVersionPtr = *mut _drmVersion;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmStats {
    pub count: ::core::ffi::c_ulong,
    pub data: [_drmStats__bindgen_ty_1; 15usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmStats__bindgen_ty_1 {
    pub value: ::core::ffi::c_ulong,
    pub long_format: *const ::core::ffi::c_char,
    pub long_name: *const ::core::ffi::c_char,
    pub rate_format: *const ::core::ffi::c_char,
    pub rate_name: *const ::core::ffi::c_char,
    pub isvalue: ::core::ffi::c_int,
    pub mult_names: *const ::core::ffi::c_char,
    pub mult: ::core::ffi::c_int,
    pub verbose: ::core::ffi::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmStats__bindgen_ty_1"]
        [::core::mem::size_of::<_drmStats__bindgen_ty_1>() - 64usize];
    ["Alignment of _drmStats__bindgen_ty_1"]
        [::core::mem::align_of::<_drmStats__bindgen_ty_1>() - 8usize];
    ["Offset of field: _drmStats__bindgen_ty_1::value"]
        [::core::mem::offset_of!(_drmStats__bindgen_ty_1, value) - 0usize];
    ["Offset of field: _drmStats__bindgen_ty_1::long_format"]
        [::core::mem::offset_of!(_drmStats__bindgen_ty_1, long_format) - 8usize];
    ["Offset of field: _drmStats__bindgen_ty_1::long_name"]
        [::core::mem::offset_of!(_drmStats__bindgen_ty_1, long_name) - 16usize];
    ["Offset of field: _drmStats__bindgen_ty_1::rate_format"]
        [::core::mem::offset_of!(_drmStats__bindgen_ty_1, rate_format) - 24usize];
    ["Offset of field: _drmStats__bindgen_ty_1::rate_name"]
        [::core::mem::offset_of!(_drmStats__bindgen_ty_1, rate_name) - 32usize];
    ["Offset of field: _drmStats__bindgen_ty_1::isvalue"]
        [::core::mem::offset_of!(_drmStats__bindgen_ty_1, isvalue) - 40usize];
    ["Offset of field: _drmStats__bindgen_ty_1::mult_names"]
        [::core::mem::offset_of!(_drmStats__bindgen_ty_1, mult_names) - 48usize];
    ["Offset of field: _drmStats__bindgen_ty_1::mult"]
        [::core::mem::offset_of!(_drmStats__bindgen_ty_1, mult) - 56usize];
    ["Offset of field: _drmStats__bindgen_ty_1::verbose"]
        [::core::mem::offset_of!(_drmStats__bindgen_ty_1, verbose) - 60usize];
};
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmStats"][::core::mem::size_of::<_drmStats>() - 968usize];
    ["Alignment of _drmStats"][::core::mem::align_of::<_drmStats>() - 8usize];
    ["Offset of field: _drmStats::count"][::core::mem::offset_of!(_drmStats, count) - 0usize];
    ["Offset of field: _drmStats::data"][::core::mem::offset_of!(_drmStats, data) - 8usize];
};
pub type drmStatsT = _drmStats;
pub const drmMapType_DRM_FRAME_BUFFER: drmMapType = 0;
pub const drmMapType_DRM_REGISTERS: drmMapType = 1;
pub const drmMapType_DRM_SHM: drmMapType = 2;
pub const drmMapType_DRM_AGP: drmMapType = 3;
pub const drmMapType_DRM_SCATTER_GATHER: drmMapType = 4;
pub const drmMapType_DRM_CONSISTENT: drmMapType = 5;
pub type drmMapType = ::core::ffi::c_uint;
pub const drmMapFlags_DRM_RESTRICTED: drmMapFlags = 1;
pub const drmMapFlags_DRM_READ_ONLY: drmMapFlags = 2;
pub const drmMapFlags_DRM_LOCKED: drmMapFlags = 4;
pub const drmMapFlags_DRM_KERNEL: drmMapFlags = 8;
pub const drmMapFlags_DRM_WRITE_COMBINING: drmMapFlags = 16;
pub const drmMapFlags_DRM_CONTAINS_LOCK: drmMapFlags = 32;
pub const drmMapFlags_DRM_REMOVABLE: drmMapFlags = 64;
pub type drmMapFlags = ::core::ffi::c_uint;
pub const drmDMAFlags_DRM_DMA_BLOCK: drmDMAFlags = 1;
pub const drmDMAFlags_DRM_DMA_WHILE_LOCKED: drmDMAFlags = 2;
pub const drmDMAFlags_DRM_DMA_PRIORITY: drmDMAFlags = 4;
pub const drmDMAFlags_DRM_DMA_WAIT: drmDMAFlags = 16;
pub const drmDMAFlags_DRM_DMA_SMALLER_OK: drmDMAFlags = 32;
pub const drmDMAFlags_DRM_DMA_LARGER_OK: drmDMAFlags = 64;
pub type drmDMAFlags = ::core::ffi::c_uint;
pub const drmBufDescFlags_DRM_PAGE_ALIGN: drmBufDescFlags = 1;
pub const drmBufDescFlags_DRM_AGP_BUFFER: drmBufDescFlags = 2;
pub const drmBufDescFlags_DRM_SG_BUFFER: drmBufDescFlags = 4;
pub const drmBufDescFlags_DRM_FB_BUFFER: drmBufDescFlags = 8;
pub const drmBufDescFlags_DRM_PCI_BUFFER_RO: drmBufDescFlags = 16;
pub type drmBufDescFlags = ::core::ffi::c_uint;
pub const drmLockFlags_DRM_LOCK_READY: drmLockFlags = 1;
pub const drmLockFlags_DRM_LOCK_QUIESCENT: drmLockFlags = 2;
pub const drmLockFlags_DRM_LOCK_FLUSH: drmLockFlags = 4;
pub const drmLockFlags_DRM_LOCK_FLUSH_ALL: drmLockFlags = 8;
pub const drmLockFlags_DRM_HALT_ALL_QUEUES: drmLockFlags = 16;
pub const drmLockFlags_DRM_HALT_CUR_QUEUES: drmLockFlags = 32;
pub type drmLockFlags = ::core::ffi::c_uint;
pub const drm_context_tFlags_DRM_CONTEXT_PRESERVED: drm_context_tFlags = 1;
pub const drm_context_tFlags_DRM_CONTEXT_2DONLY: drm_context_tFlags = 2;
pub type drm_context_tFlags = ::core::ffi::c_uint;
pub type drm_context_tFlagsPtr = *mut drm_context_tFlags;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmBufDesc {
    pub count: ::core::ffi::c_int,
    pub size: ::core::ffi::c_int,
    pub low_mark: ::core::ffi::c_int,
    pub high_mark: ::core::ffi::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmBufDesc"][::core::mem::size_of::<_drmBufDesc>() - 16usize];
    ["Alignment of _drmBufDesc"][::core::mem::align_of::<_drmBufDesc>() - 4usize];
    ["Offset of field: _drmBufDesc::count"][::core::mem::offset_of!(_drmBufDesc, count) - 0usize];
    ["Offset of field: _drmBufDesc::size"][::core::mem::offset_of!(_drmBufDesc, size) - 4usize];
    ["Offset of field: _drmBufDesc::low_mark"]
        [::core::mem::offset_of!(_drmBufDesc, low_mark) - 8usize];
    ["Offset of field: _drmBufDesc::high_mark"]
        [::core::mem::offset_of!(_drmBufDesc, high_mark) - 12usize];
};
pub type drmBufDesc = _drmBufDesc;
pub type drmBufDescPtr = *mut _drmBufDesc;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmBufInfo {
    pub count: ::core::ffi::c_int,
    pub list: drmBufDescPtr,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmBufInfo"][::core::mem::size_of::<_drmBufInfo>() - 16usize];
    ["Alignment of _drmBufInfo"][::core::mem::align_of::<_drmBufInfo>() - 8usize];
    ["Offset of field: _drmBufInfo::count"][::core::mem::offset_of!(_drmBufInfo, count) - 0usize];
    ["Offset of field: _drmBufInfo::list"][::core::mem::offset_of!(_drmBufInfo, list) - 8usize];
};
pub type drmBufInfo = _drmBufInfo;
pub type drmBufInfoPtr = *mut _drmBufInfo;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmBuf {
    pub idx: ::core::ffi::c_int,
    pub total: ::core::ffi::c_int,
    pub used: ::core::ffi::c_int,
    pub address: drmAddress,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmBuf"][::core::mem::size_of::<_drmBuf>() - 24usize];
    ["Alignment of _drmBuf"][::core::mem::align_of::<_drmBuf>() - 8usize];
    ["Offset of field: _drmBuf::idx"][::core::mem::offset_of!(_drmBuf, idx) - 0usize];
    ["Offset of field: _drmBuf::total"][::core::mem::offset_of!(_drmBuf, total) - 4usize];
    ["Offset of field: _drmBuf::used"][::core::mem::offset_of!(_drmBuf, used) - 8usize];
    ["Offset of field: _drmBuf::address"][::core::mem::offset_of!(_drmBuf, address) - 16usize];
};
pub type drmBuf = _drmBuf;
pub type drmBufPtr = *mut _drmBuf;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmBufMap {
    pub count: ::core::ffi::c_int,
    pub list: drmBufPtr,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmBufMap"][::core::mem::size_of::<_drmBufMap>() - 16usize];
    ["Alignment of _drmBufMap"][::core::mem::align_of::<_drmBufMap>() - 8usize];
    ["Offset of field: _drmBufMap::count"][::core::mem::offset_of!(_drmBufMap, count) - 0usize];
    ["Offset of field: _drmBufMap::list"][::core::mem::offset_of!(_drmBufMap, list) - 8usize];
};
pub type drmBufMap = _drmBufMap;
pub type drmBufMapPtr = *mut _drmBufMap;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmLock {
    pub lock: ::core::ffi::c_uint,
    pub padding: [::core::ffi::c_char; 60usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmLock"][::core::mem::size_of::<_drmLock>() - 64usize];
    ["Alignment of _drmLock"][::core::mem::align_of::<_drmLock>() - 4usize];
    ["Offset of field: _drmLock::lock"][::core::mem::offset_of!(_drmLock, lock) - 0usize];
    ["Offset of field: _drmLock::padding"][::core::mem::offset_of!(_drmLock, padding) - 4usize];
};
pub type drmLock = _drmLock;
pub type drmLockPtr = *mut _drmLock;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmDMAReq {
    pub context: drm_context_t,
    pub send_count: ::core::ffi::c_int,
    pub send_list: *mut ::core::ffi::c_int,
    pub send_sizes: *mut ::core::ffi::c_int,
    pub flags: drmDMAFlags,
    pub request_count: ::core::ffi::c_int,
    pub request_size: ::core::ffi::c_int,
    pub request_list: *mut ::core::ffi::c_int,
    pub request_sizes: *mut ::core::ffi::c_int,
    pub granted_count: ::core::ffi::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmDMAReq"][::core::mem::size_of::<_drmDMAReq>() - 64usize];
    ["Alignment of _drmDMAReq"][::core::mem::align_of::<_drmDMAReq>() - 8usize];
    ["Offset of field: _drmDMAReq::context"][::core::mem::offset_of!(_drmDMAReq, context) - 0usize];
    ["Offset of field: _drmDMAReq::send_count"]
        [::core::mem::offset_of!(_drmDMAReq, send_count) - 4usize];
    ["Offset of field: _drmDMAReq::send_list"]
        [::core::mem::offset_of!(_drmDMAReq, send_list) - 8usize];
    ["Offset of field: _drmDMAReq::send_sizes"]
        [::core::mem::offset_of!(_drmDMAReq, send_sizes) - 16usize];
    ["Offset of field: _drmDMAReq::flags"][::core::mem::offset_of!(_drmDMAReq, flags) - 24usize];
    ["Offset of field: _drmDMAReq::request_count"]
        [::core::mem::offset_of!(_drmDMAReq, request_count) - 28usize];
    ["Offset of field: _drmDMAReq::request_size"]
        [::core::mem::offset_of!(_drmDMAReq, request_size) - 32usize];
    ["Offset of field: _drmDMAReq::request_list"]
        [::core::mem::offset_of!(_drmDMAReq, request_list) - 40usize];
    ["Offset of field: _drmDMAReq::request_sizes"]
        [::core::mem::offset_of!(_drmDMAReq, request_sizes) - 48usize];
    ["Offset of field: _drmDMAReq::granted_count"]
        [::core::mem::offset_of!(_drmDMAReq, granted_count) - 56usize];
};
pub type drmDMAReq = _drmDMAReq;
pub type drmDMAReqPtr = *mut _drmDMAReq;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmRegion {
    pub handle: drm_handle_t,
    pub offset: ::core::ffi::c_uint,
    pub size: drmSize,
    pub map: drmAddress,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmRegion"][::core::mem::size_of::<_drmRegion>() - 24usize];
    ["Alignment of _drmRegion"][::core::mem::align_of::<_drmRegion>() - 8usize];
    ["Offset of field: _drmRegion::handle"][::core::mem::offset_of!(_drmRegion, handle) - 0usize];
    ["Offset of field: _drmRegion::offset"][::core::mem::offset_of!(_drmRegion, offset) - 4usize];
    ["Offset of field: _drmRegion::size"][::core::mem::offset_of!(_drmRegion, size) - 8usize];
    ["Offset of field: _drmRegion::map"][::core::mem::offset_of!(_drmRegion, map) - 16usize];
};
pub type drmRegion = _drmRegion;
pub type drmRegionPtr = *mut _drmRegion;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmTextureRegion {
    pub next: ::core::ffi::c_uchar,
    pub prev: ::core::ffi::c_uchar,
    pub in_use: ::core::ffi::c_uchar,
    pub padding: ::core::ffi::c_uchar,
    pub age: ::core::ffi::c_uint,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmTextureRegion"][::core::mem::size_of::<_drmTextureRegion>() - 8usize];
    ["Alignment of _drmTextureRegion"][::core::mem::align_of::<_drmTextureRegion>() - 4usize];
    ["Offset of field: _drmTextureRegion::next"]
        [::core::mem::offset_of!(_drmTextureRegion, next) - 0usize];
    ["Offset of field: _drmTextureRegion::prev"]
        [::core::mem::offset_of!(_drmTextureRegion, prev) - 1usize];
    ["Offset of field: _drmTextureRegion::in_use"]
        [::core::mem::offset_of!(_drmTextureRegion, in_use) - 2usize];
    ["Offset of field: _drmTextureRegion::padding"]
        [::core::mem::offset_of!(_drmTextureRegion, padding) - 3usize];
    ["Offset of field: _drmTextureRegion::age"]
        [::core::mem::offset_of!(_drmTextureRegion, age) - 4usize];
};
pub type drmTextureRegion = _drmTextureRegion;
pub type drmTextureRegionPtr = *mut _drmTextureRegion;
pub const drmVBlankSeqType_DRM_VBLANK_ABSOLUTE: drmVBlankSeqType = 0;
pub const drmVBlankSeqType_DRM_VBLANK_RELATIVE: drmVBlankSeqType = 1;
pub const drmVBlankSeqType_DRM_VBLANK_HIGH_CRTC_MASK: drmVBlankSeqType = 62;
pub const drmVBlankSeqType_DRM_VBLANK_EVENT: drmVBlankSeqType = 67108864;
pub const drmVBlankSeqType_DRM_VBLANK_FLIP: drmVBlankSeqType = 134217728;
pub const drmVBlankSeqType_DRM_VBLANK_NEXTONMISS: drmVBlankSeqType = 268435456;
pub const drmVBlankSeqType_DRM_VBLANK_SECONDARY: drmVBlankSeqType = 536870912;
pub const drmVBlankSeqType_DRM_VBLANK_SIGNAL: drmVBlankSeqType = 1073741824;
pub type drmVBlankSeqType = ::core::ffi::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmVBlankReq {
    pub type_: drmVBlankSeqType,
    pub sequence: ::core::ffi::c_uint,
    pub signal: ::core::ffi::c_ulong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmVBlankReq"][::core::mem::size_of::<_drmVBlankReq>() - 16usize];
    ["Alignment of _drmVBlankReq"][::core::mem::align_of::<_drmVBlankReq>() - 8usize];
    ["Offset of field: _drmVBlankReq::type_"]
        [::core::mem::offset_of!(_drmVBlankReq, type_) - 0usize];
    ["Offset of field: _drmVBlankReq::sequence"]
        [::core::mem::offset_of!(_drmVBlankReq, sequence) - 4usize];
    ["Offset of field: _drmVBlankReq::signal"]
        [::core::mem::offset_of!(_drmVBlankReq, signal) - 8usize];
};
pub type drmVBlankReq = _drmVBlankReq;
pub type drmVBlankReqPtr = *mut _drmVBlankReq;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmVBlankReply {
    pub type_: drmVBlankSeqType,
    pub sequence: ::core::ffi::c_uint,
    pub tval_sec: ::core::ffi::c_long,
    pub tval_usec: ::core::ffi::c_long,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmVBlankReply"][::core::mem::size_of::<_drmVBlankReply>() - 24usize];
    ["Alignment of _drmVBlankReply"][::core::mem::align_of::<_drmVBlankReply>() - 8usize];
    ["Offset of field: _drmVBlankReply::type_"]
        [::core::mem::offset_of!(_drmVBlankReply, type_) - 0usize];
    ["Offset of field: _drmVBlankReply::sequence"]
        [::core::mem::offset_of!(_drmVBlankReply, sequence) - 4usize];
    ["Offset of field: _drmVBlankReply::tval_sec"]
        [::core::mem::offset_of!(_drmVBlankReply, tval_sec) - 8usize];
    ["Offset of field: _drmVBlankReply::tval_usec"]
        [::core::mem::offset_of!(_drmVBlankReply, tval_usec) - 16usize];
};
pub type drmVBlankReply = _drmVBlankReply;
pub type drmVBlankReplyPtr = *mut _drmVBlankReply;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _drmVBlank {
    pub request: drmVBlankReq,
    pub reply: drmVBlankReply,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmVBlank"][::core::mem::size_of::<_drmVBlank>() - 24usize];
    ["Alignment of _drmVBlank"][::core::mem::align_of::<_drmVBlank>() - 8usize];
    ["Offset of field: _drmVBlank::request"][::core::mem::offset_of!(_drmVBlank, request) - 0usize];
    ["Offset of field: _drmVBlank::reply"][::core::mem::offset_of!(_drmVBlank, reply) - 0usize];
};
pub type drmVBlank = _drmVBlank;
pub type drmVBlankPtr = *mut _drmVBlank;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmSetVersion {
    pub drm_di_major: ::core::ffi::c_int,
    pub drm_di_minor: ::core::ffi::c_int,
    pub drm_dd_major: ::core::ffi::c_int,
    pub drm_dd_minor: ::core::ffi::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmSetVersion"][::core::mem::size_of::<_drmSetVersion>() - 16usize];
    ["Alignment of _drmSetVersion"][::core::mem::align_of::<_drmSetVersion>() - 4usize];
    ["Offset of field: _drmSetVersion::drm_di_major"]
        [::core::mem::offset_of!(_drmSetVersion, drm_di_major) - 0usize];
    ["Offset of field: _drmSetVersion::drm_di_minor"]
        [::core::mem::offset_of!(_drmSetVersion, drm_di_minor) - 4usize];
    ["Offset of field: _drmSetVersion::drm_dd_major"]
        [::core::mem::offset_of!(_drmSetVersion, drm_dd_major) - 8usize];
    ["Offset of field: _drmSetVersion::drm_dd_minor"]
        [::core::mem::offset_of!(_drmSetVersion, drm_dd_minor) - 12usize];
};
pub type drmSetVersion = _drmSetVersion;
pub type drmSetVersionPtr = *mut _drmSetVersion;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmEventContext {
    pub version: ::core::ffi::c_int,
    pub vblank_handler: ::core::option::Option<
        unsafe extern "C" fn(
            fd: ::core::ffi::c_int,
            sequence: ::core::ffi::c_uint,
            tv_sec: ::core::ffi::c_uint,
            tv_usec: ::core::ffi::c_uint,
            user_data: *mut ::core::ffi::c_void,
        ),
    >,
    pub page_flip_handler: ::core::option::Option<
        unsafe extern "C" fn(
            fd: ::core::ffi::c_int,
            sequence: ::core::ffi::c_uint,
            tv_sec: ::core::ffi::c_uint,
            tv_usec: ::core::ffi::c_uint,
            user_data: *mut ::core::ffi::c_void,
        ),
    >,
    pub page_flip_handler2: ::core::option::Option<
        unsafe extern "C" fn(
            fd: ::core::ffi::c_int,
            sequence: ::core::ffi::c_uint,
            tv_sec: ::core::ffi::c_uint,
            tv_usec: ::core::ffi::c_uint,
            crtc_id: ::core::ffi::c_uint,
            user_data: *mut ::core::ffi::c_void,
        ),
    >,
    pub sequence_handler: ::core::option::Option<
        unsafe extern "C" fn(fd: ::core::ffi::c_int, sequence: u64, ns: u64, user_data: u64),
    >,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmEventContext"][::core::mem::size_of::<_drmEventContext>() - 40usize];
    ["Alignment of _drmEventContext"][::core::mem::align_of::<_drmEventContext>() - 8usize];
    ["Offset of field: _drmEventContext::version"]
        [::core::mem::offset_of!(_drmEventContext, version) - 0usize];
    ["Offset of field: _drmEventContext::vblank_handler"]
        [::core::mem::offset_of!(_drmEventContext, vblank_handler) - 8usize];
    ["Offset of field: _drmEventContext::page_flip_handler"]
        [::core::mem::offset_of!(_drmEventContext, page_flip_handler) - 16usize];
    ["Offset of field: _drmEventContext::page_flip_handler2"]
        [::core::mem::offset_of!(_drmEventContext, page_flip_handler2) - 24usize];
    ["Offset of field: _drmEventContext::sequence_handler"]
        [::core::mem::offset_of!(_drmEventContext, sequence_handler) - 32usize];
};
pub type drmEventContext = _drmEventContext;
pub type drmEventContextPtr = *mut _drmEventContext;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmPciBusInfo {
    pub domain: u16,
    pub bus: u8,
    pub dev: u8,
    pub func: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmPciBusInfo"][::core::mem::size_of::<_drmPciBusInfo>() - 6usize];
    ["Alignment of _drmPciBusInfo"][::core::mem::align_of::<_drmPciBusInfo>() - 2usize];
    ["Offset of field: _drmPciBusInfo::domain"]
        [::core::mem::offset_of!(_drmPciBusInfo, domain) - 0usize];
    ["Offset of field: _drmPciBusInfo::bus"][::core::mem::offset_of!(_drmPciBusInfo, bus) - 2usize];
    ["Offset of field: _drmPciBusInfo::dev"][::core::mem::offset_of!(_drmPciBusInfo, dev) - 3usize];
    ["Offset of field: _drmPciBusInfo::func"]
        [::core::mem::offset_of!(_drmPciBusInfo, func) - 4usize];
};
pub type drmPciBusInfo = _drmPciBusInfo;
pub type drmPciBusInfoPtr = *mut _drmPciBusInfo;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmPciDeviceInfo {
    pub vendor_id: u16,
    pub device_id: u16,
    pub subvendor_id: u16,
    pub subdevice_id: u16,
    pub revision_id: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmPciDeviceInfo"][::core::mem::size_of::<_drmPciDeviceInfo>() - 10usize];
    ["Alignment of _drmPciDeviceInfo"][::core::mem::align_of::<_drmPciDeviceInfo>() - 2usize];
    ["Offset of field: _drmPciDeviceInfo::vendor_id"]
        [::core::mem::offset_of!(_drmPciDeviceInfo, vendor_id) - 0usize];
    ["Offset of field: _drmPciDeviceInfo::device_id"]
        [::core::mem::offset_of!(_drmPciDeviceInfo, device_id) - 2usize];
    ["Offset of field: _drmPciDeviceInfo::subvendor_id"]
        [::core::mem::offset_of!(_drmPciDeviceInfo, subvendor_id) - 4usize];
    ["Offset of field: _drmPciDeviceInfo::subdevice_id"]
        [::core::mem::offset_of!(_drmPciDeviceInfo, subdevice_id) - 6usize];
    ["Offset of field: _drmPciDeviceInfo::revision_id"]
        [::core::mem::offset_of!(_drmPciDeviceInfo, revision_id) - 8usize];
};
pub type drmPciDeviceInfo = _drmPciDeviceInfo;
pub type drmPciDeviceInfoPtr = *mut _drmPciDeviceInfo;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmUsbBusInfo {
    pub bus: u8,
    pub dev: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmUsbBusInfo"][::core::mem::size_of::<_drmUsbBusInfo>() - 2usize];
    ["Alignment of _drmUsbBusInfo"][::core::mem::align_of::<_drmUsbBusInfo>() - 1usize];
    ["Offset of field: _drmUsbBusInfo::bus"][::core::mem::offset_of!(_drmUsbBusInfo, bus) - 0usize];
    ["Offset of field: _drmUsbBusInfo::dev"][::core::mem::offset_of!(_drmUsbBusInfo, dev) - 1usize];
};
pub type drmUsbBusInfo = _drmUsbBusInfo;
pub type drmUsbBusInfoPtr = *mut _drmUsbBusInfo;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmUsbDeviceInfo {
    pub vendor: u16,
    pub product: u16,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmUsbDeviceInfo"][::core::mem::size_of::<_drmUsbDeviceInfo>() - 4usize];
    ["Alignment of _drmUsbDeviceInfo"][::core::mem::align_of::<_drmUsbDeviceInfo>() - 2usize];
    ["Offset of field: _drmUsbDeviceInfo::vendor"]
        [::core::mem::offset_of!(_drmUsbDeviceInfo, vendor) - 0usize];
    ["Offset of field: _drmUsbDeviceInfo::product"]
        [::core::mem::offset_of!(_drmUsbDeviceInfo, product) - 2usize];
};
pub type drmUsbDeviceInfo = _drmUsbDeviceInfo;
pub type drmUsbDeviceInfoPtr = *mut _drmUsbDeviceInfo;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmPlatformBusInfo {
    pub fullname: [::core::ffi::c_char; 512usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmPlatformBusInfo"][::core::mem::size_of::<_drmPlatformBusInfo>() - 512usize];
    ["Alignment of _drmPlatformBusInfo"][::core::mem::align_of::<_drmPlatformBusInfo>() - 1usize];
    ["Offset of field: _drmPlatformBusInfo::fullname"]
        [::core::mem::offset_of!(_drmPlatformBusInfo, fullname) - 0usize];
};
pub type drmPlatformBusInfo = _drmPlatformBusInfo;
pub type drmPlatformBusInfoPtr = *mut _drmPlatformBusInfo;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmPlatformDeviceInfo {
    pub compatible: *mut *mut ::core::ffi::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmPlatformDeviceInfo"][::core::mem::size_of::<_drmPlatformDeviceInfo>() - 8usize];
    ["Alignment of _drmPlatformDeviceInfo"]
        [::core::mem::align_of::<_drmPlatformDeviceInfo>() - 8usize];
    ["Offset of field: _drmPlatformDeviceInfo::compatible"]
        [::core::mem::offset_of!(_drmPlatformDeviceInfo, compatible) - 0usize];
};
pub type drmPlatformDeviceInfo = _drmPlatformDeviceInfo;
pub type drmPlatformDeviceInfoPtr = *mut _drmPlatformDeviceInfo;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmHost1xBusInfo {
    pub fullname: [::core::ffi::c_char; 512usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmHost1xBusInfo"][::core::mem::size_of::<_drmHost1xBusInfo>() - 512usize];
    ["Alignment of _drmHost1xBusInfo"][::core::mem::align_of::<_drmHost1xBusInfo>() - 1usize];
    ["Offset of field: _drmHost1xBusInfo::fullname"]
        [::core::mem::offset_of!(_drmHost1xBusInfo, fullname) - 0usize];
};
pub type drmHost1xBusInfo = _drmHost1xBusInfo;
pub type drmHost1xBusInfoPtr = *mut _drmHost1xBusInfo;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmHost1xDeviceInfo {
    pub compatible: *mut *mut ::core::ffi::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmHost1xDeviceInfo"][::core::mem::size_of::<_drmHost1xDeviceInfo>() - 8usize];
    ["Alignment of _drmHost1xDeviceInfo"][::core::mem::align_of::<_drmHost1xDeviceInfo>() - 8usize];
    ["Offset of field: _drmHost1xDeviceInfo::compatible"]
        [::core::mem::offset_of!(_drmHost1xDeviceInfo, compatible) - 0usize];
};
pub type drmHost1xDeviceInfo = _drmHost1xDeviceInfo;
pub type drmHost1xDeviceInfoPtr = *mut _drmHost1xDeviceInfo;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _drmDevice {
    pub nodes: *mut *mut ::core::ffi::c_char,
    pub available_nodes: ::core::ffi::c_int,
    pub bustype: ::core::ffi::c_int,
    pub businfo: _drmDevice__bindgen_ty_1,
    pub deviceinfo: _drmDevice__bindgen_ty_2,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _drmDevice__bindgen_ty_1 {
    pub pci: drmPciBusInfoPtr,
    pub usb: drmUsbBusInfoPtr,
    pub platform: drmPlatformBusInfoPtr,
    pub host1x: drmHost1xBusInfoPtr,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmDevice__bindgen_ty_1"]
        [::core::mem::size_of::<_drmDevice__bindgen_ty_1>() - 8usize];
    ["Alignment of _drmDevice__bindgen_ty_1"]
        [::core::mem::align_of::<_drmDevice__bindgen_ty_1>() - 8usize];
    ["Offset of field: _drmDevice__bindgen_ty_1::pci"]
        [::core::mem::offset_of!(_drmDevice__bindgen_ty_1, pci) - 0usize];
    ["Offset of field: _drmDevice__bindgen_ty_1::usb"]
        [::core::mem::offset_of!(_drmDevice__bindgen_ty_1, usb) - 0usize];
    ["Offset of field: _drmDevice__bindgen_ty_1::platform"]
        [::core::mem::offset_of!(_drmDevice__bindgen_ty_1, platform) - 0usize];
    ["Offset of field: _drmDevice__bindgen_ty_1::host1x"]
        [::core::mem::offset_of!(_drmDevice__bindgen_ty_1, host1x) - 0usize];
};
#[repr(C)]
#[derive(Copy, Clone)]
pub union _drmDevice__bindgen_ty_2 {
    pub pci: drmPciDeviceInfoPtr,
    pub usb: drmUsbDeviceInfoPtr,
    pub platform: drmPlatformDeviceInfoPtr,
    pub host1x: drmHost1xDeviceInfoPtr,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmDevice__bindgen_ty_2"]
        [::core::mem::size_of::<_drmDevice__bindgen_ty_2>() - 8usize];
    ["Alignment of _drmDevice__bindgen_ty_2"]
        [::core::mem::align_of::<_drmDevice__bindgen_ty_2>() - 8usize];
    ["Offset of field: _drmDevice__bindgen_ty_2::pci"]
        [::core::mem::offset_of!(_drmDevice__bindgen_ty_2, pci) - 0usize];
    ["Offset of field: _drmDevice__bindgen_ty_2::usb"]
        [::core::mem::offset_of!(_drmDevice__bindgen_ty_2, usb) - 0usize];
    ["Offset of field: _drmDevice__bindgen_ty_2::platform"]
        [::core::mem::offset_of!(_drmDevice__bindgen_ty_2, platform) - 0usize];
    ["Offset of field: _drmDevice__bindgen_ty_2::host1x"]
        [::core::mem::offset_of!(_drmDevice__bindgen_ty_2, host1x) - 0usize];
};
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmDevice"][::core::mem::size_of::<_drmDevice>() - 32usize];
    ["Alignment of _drmDevice"][::core::mem::align_of::<_drmDevice>() - 8usize];
    ["Offset of field: _drmDevice::nodes"][::core::mem::offset_of!(_drmDevice, nodes) - 0usize];
    ["Offset of field: _drmDevice::available_nodes"]
        [::core::mem::offset_of!(_drmDevice, available_nodes) - 8usize];
    ["Offset of field: _drmDevice::bustype"]
        [::core::mem::offset_of!(_drmDevice, bustype) - 12usize];
    ["Offset of field: _drmDevice::businfo"]
        [::core::mem::offset_of!(_drmDevice, businfo) - 16usize];
    ["Offset of field: _drmDevice::deviceinfo"]
        [::core::mem::offset_of!(_drmDevice, deviceinfo) - 24usize];
};
pub type drmDevice = _drmDevice;
pub type drmDevicePtr = *mut _drmDevice;
pub type wchar_t = ::core::ffi::c_int;
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Copy, Clone)]
pub struct max_align_t {
    pub __clang_max_align_nonce1: ::core::ffi::c_longlong,
    pub __bindgen_padding_0: u64,
    pub __clang_max_align_nonce2: u128,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of max_align_t"][::core::mem::size_of::<max_align_t>() - 32usize];
    ["Alignment of max_align_t"][::core::mem::align_of::<max_align_t>() - 16usize];
    ["Offset of field: max_align_t::__clang_max_align_nonce1"]
        [::core::mem::offset_of!(max_align_t, __clang_max_align_nonce1) - 0usize];
    ["Offset of field: max_align_t::__clang_max_align_nonce2"]
        [::core::mem::offset_of!(max_align_t, __clang_max_align_nonce2) - 16usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmModeRes {
    pub count_fbs: ::core::ffi::c_int,
    pub fbs: *mut u32,
    pub count_crtcs: ::core::ffi::c_int,
    pub crtcs: *mut u32,
    pub count_connectors: ::core::ffi::c_int,
    pub connectors: *mut u32,
    pub count_encoders: ::core::ffi::c_int,
    pub encoders: *mut u32,
    pub min_width: u32,
    pub max_width: u32,
    pub min_height: u32,
    pub max_height: u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmModeRes"][::core::mem::size_of::<_drmModeRes>() - 80usize];
    ["Alignment of _drmModeRes"][::core::mem::align_of::<_drmModeRes>() - 8usize];
    ["Offset of field: _drmModeRes::count_fbs"]
        [::core::mem::offset_of!(_drmModeRes, count_fbs) - 0usize];
    ["Offset of field: _drmModeRes::fbs"][::core::mem::offset_of!(_drmModeRes, fbs) - 8usize];
    ["Offset of field: _drmModeRes::count_crtcs"]
        [::core::mem::offset_of!(_drmModeRes, count_crtcs) - 16usize];
    ["Offset of field: _drmModeRes::crtcs"][::core::mem::offset_of!(_drmModeRes, crtcs) - 24usize];
    ["Offset of field: _drmModeRes::count_connectors"]
        [::core::mem::offset_of!(_drmModeRes, count_connectors) - 32usize];
    ["Offset of field: _drmModeRes::connectors"]
        [::core::mem::offset_of!(_drmModeRes, connectors) - 40usize];
    ["Offset of field: _drmModeRes::count_encoders"]
        [::core::mem::offset_of!(_drmModeRes, count_encoders) - 48usize];
    ["Offset of field: _drmModeRes::encoders"]
        [::core::mem::offset_of!(_drmModeRes, encoders) - 56usize];
    ["Offset of field: _drmModeRes::min_width"]
        [::core::mem::offset_of!(_drmModeRes, min_width) - 64usize];
    ["Offset of field: _drmModeRes::max_width"]
        [::core::mem::offset_of!(_drmModeRes, max_width) - 68usize];
    ["Offset of field: _drmModeRes::min_height"]
        [::core::mem::offset_of!(_drmModeRes, min_height) - 72usize];
    ["Offset of field: _drmModeRes::max_height"]
        [::core::mem::offset_of!(_drmModeRes, max_height) - 76usize];
};
pub type drmModeRes = _drmModeRes;
pub type drmModeResPtr = *mut _drmModeRes;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmModeModeInfo {
    pub clock: u32,
    pub hdisplay: u16,
    pub hsync_start: u16,
    pub hsync_end: u16,
    pub htotal: u16,
    pub hskew: u16,
    pub vdisplay: u16,
    pub vsync_start: u16,
    pub vsync_end: u16,
    pub vtotal: u16,
    pub vscan: u16,
    pub vrefresh: u32,
    pub flags: u32,
    pub type_: u32,
    pub name: [::core::ffi::c_char; 32usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmModeModeInfo"][::core::mem::size_of::<_drmModeModeInfo>() - 68usize];
    ["Alignment of _drmModeModeInfo"][::core::mem::align_of::<_drmModeModeInfo>() - 4usize];
    ["Offset of field: _drmModeModeInfo::clock"]
        [::core::mem::offset_of!(_drmModeModeInfo, clock) - 0usize];
    ["Offset of field: _drmModeModeInfo::hdisplay"]
        [::core::mem::offset_of!(_drmModeModeInfo, hdisplay) - 4usize];
    ["Offset of field: _drmModeModeInfo::hsync_start"]
        [::core::mem::offset_of!(_drmModeModeInfo, hsync_start) - 6usize];
    ["Offset of field: _drmModeModeInfo::hsync_end"]
        [::core::mem::offset_of!(_drmModeModeInfo, hsync_end) - 8usize];
    ["Offset of field: _drmModeModeInfo::htotal"]
        [::core::mem::offset_of!(_drmModeModeInfo, htotal) - 10usize];
    ["Offset of field: _drmModeModeInfo::hskew"]
        [::core::mem::offset_of!(_drmModeModeInfo, hskew) - 12usize];
    ["Offset of field: _drmModeModeInfo::vdisplay"]
        [::core::mem::offset_of!(_drmModeModeInfo, vdisplay) - 14usize];
    ["Offset of field: _drmModeModeInfo::vsync_start"]
        [::core::mem::offset_of!(_drmModeModeInfo, vsync_start) - 16usize];
    ["Offset of field: _drmModeModeInfo::vsync_end"]
        [::core::mem::offset_of!(_drmModeModeInfo, vsync_end) - 18usize];
    ["Offset of field: _drmModeModeInfo::vtotal"]
        [::core::mem::offset_of!(_drmModeModeInfo, vtotal) - 20usize];
    ["Offset of field: _drmModeModeInfo::vscan"]
        [::core::mem::offset_of!(_drmModeModeInfo, vscan) - 22usize];
    ["Offset of field: _drmModeModeInfo::vrefresh"]
        [::core::mem::offset_of!(_drmModeModeInfo, vrefresh) - 24usize];
    ["Offset of field: _drmModeModeInfo::flags"]
        [::core::mem::offset_of!(_drmModeModeInfo, flags) - 28usize];
    ["Offset of field: _drmModeModeInfo::type_"]
        [::core::mem::offset_of!(_drmModeModeInfo, type_) - 32usize];
    ["Offset of field: _drmModeModeInfo::name"]
        [::core::mem::offset_of!(_drmModeModeInfo, name) - 36usize];
};
pub type drmModeModeInfo = _drmModeModeInfo;
pub type drmModeModeInfoPtr = *mut _drmModeModeInfo;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmModeFB {
    pub fb_id: u32,
    pub width: u32,
    pub height: u32,
    pub pitch: u32,
    pub bpp: u32,
    pub depth: u32,
    pub handle: u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmModeFB"][::core::mem::size_of::<_drmModeFB>() - 28usize];
    ["Alignment of _drmModeFB"][::core::mem::align_of::<_drmModeFB>() - 4usize];
    ["Offset of field: _drmModeFB::fb_id"][::core::mem::offset_of!(_drmModeFB, fb_id) - 0usize];
    ["Offset of field: _drmModeFB::width"][::core::mem::offset_of!(_drmModeFB, width) - 4usize];
    ["Offset of field: _drmModeFB::height"][::core::mem::offset_of!(_drmModeFB, height) - 8usize];
    ["Offset of field: _drmModeFB::pitch"][::core::mem::offset_of!(_drmModeFB, pitch) - 12usize];
    ["Offset of field: _drmModeFB::bpp"][::core::mem::offset_of!(_drmModeFB, bpp) - 16usize];
    ["Offset of field: _drmModeFB::depth"][::core::mem::offset_of!(_drmModeFB, depth) - 20usize];
    ["Offset of field: _drmModeFB::handle"][::core::mem::offset_of!(_drmModeFB, handle) - 24usize];
};
pub type drmModeFB = _drmModeFB;
pub type drmModeFBPtr = *mut _drmModeFB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmModeFB2 {
    pub fb_id: u32,
    pub width: u32,
    pub height: u32,
    pub pixel_format: u32,
    pub modifier: u64,
    pub flags: u32,
    pub handles: [u32; 4usize],
    pub pitches: [u32; 4usize],
    pub offsets: [u32; 4usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmModeFB2"][::core::mem::size_of::<_drmModeFB2>() - 80usize];
    ["Alignment of _drmModeFB2"][::core::mem::align_of::<_drmModeFB2>() - 8usize];
    ["Offset of field: _drmModeFB2::fb_id"][::core::mem::offset_of!(_drmModeFB2, fb_id) - 0usize];
    ["Offset of field: _drmModeFB2::width"][::core::mem::offset_of!(_drmModeFB2, width) - 4usize];
    ["Offset of field: _drmModeFB2::height"][::core::mem::offset_of!(_drmModeFB2, height) - 8usize];
    ["Offset of field: _drmModeFB2::pixel_format"]
        [::core::mem::offset_of!(_drmModeFB2, pixel_format) - 12usize];
    ["Offset of field: _drmModeFB2::modifier"]
        [::core::mem::offset_of!(_drmModeFB2, modifier) - 16usize];
    ["Offset of field: _drmModeFB2::flags"][::core::mem::offset_of!(_drmModeFB2, flags) - 24usize];
    ["Offset of field: _drmModeFB2::handles"]
        [::core::mem::offset_of!(_drmModeFB2, handles) - 28usize];
    ["Offset of field: _drmModeFB2::pitches"]
        [::core::mem::offset_of!(_drmModeFB2, pitches) - 44usize];
    ["Offset of field: _drmModeFB2::offsets"]
        [::core::mem::offset_of!(_drmModeFB2, offsets) - 60usize];
};
pub type drmModeFB2 = _drmModeFB2;
pub type drmModeFB2Ptr = *mut _drmModeFB2;
pub type drmModeClip = drm_clip_rect;
pub type drmModeClipPtr = *mut drm_clip_rect;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmModePropertyBlob {
    pub id: u32,
    pub length: u32,
    pub data: *mut ::core::ffi::c_void,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmModePropertyBlob"][::core::mem::size_of::<_drmModePropertyBlob>() - 16usize];
    ["Alignment of _drmModePropertyBlob"][::core::mem::align_of::<_drmModePropertyBlob>() - 8usize];
    ["Offset of field: _drmModePropertyBlob::id"]
        [::core::mem::offset_of!(_drmModePropertyBlob, id) - 0usize];
    ["Offset of field: _drmModePropertyBlob::length"]
        [::core::mem::offset_of!(_drmModePropertyBlob, length) - 4usize];
    ["Offset of field: _drmModePropertyBlob::data"]
        [::core::mem::offset_of!(_drmModePropertyBlob, data) - 8usize];
};
pub type drmModePropertyBlobRes = _drmModePropertyBlob;
pub type drmModePropertyBlobPtr = *mut _drmModePropertyBlob;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmModeProperty {
    pub prop_id: u32,
    pub flags: u32,
    pub name: [::core::ffi::c_char; 32usize],
    pub count_values: ::core::ffi::c_int,
    pub values: *mut u64,
    pub count_enums: ::core::ffi::c_int,
    pub enums: *mut drm_mode_property_enum,
    pub count_blobs: ::core::ffi::c_int,
    pub blob_ids: *mut u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmModeProperty"][::core::mem::size_of::<_drmModeProperty>() - 88usize];
    ["Alignment of _drmModeProperty"][::core::mem::align_of::<_drmModeProperty>() - 8usize];
    ["Offset of field: _drmModeProperty::prop_id"]
        [::core::mem::offset_of!(_drmModeProperty, prop_id) - 0usize];
    ["Offset of field: _drmModeProperty::flags"]
        [::core::mem::offset_of!(_drmModeProperty, flags) - 4usize];
    ["Offset of field: _drmModeProperty::name"]
        [::core::mem::offset_of!(_drmModeProperty, name) - 8usize];
    ["Offset of field: _drmModeProperty::count_values"]
        [::core::mem::offset_of!(_drmModeProperty, count_values) - 40usize];
    ["Offset of field: _drmModeProperty::values"]
        [::core::mem::offset_of!(_drmModeProperty, values) - 48usize];
    ["Offset of field: _drmModeProperty::count_enums"]
        [::core::mem::offset_of!(_drmModeProperty, count_enums) - 56usize];
    ["Offset of field: _drmModeProperty::enums"]
        [::core::mem::offset_of!(_drmModeProperty, enums) - 64usize];
    ["Offset of field: _drmModeProperty::count_blobs"]
        [::core::mem::offset_of!(_drmModeProperty, count_blobs) - 72usize];
    ["Offset of field: _drmModeProperty::blob_ids"]
        [::core::mem::offset_of!(_drmModeProperty, blob_ids) - 80usize];
};
pub type drmModePropertyRes = _drmModeProperty;
pub type drmModePropertyPtr = *mut _drmModeProperty;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmModeCrtc {
    pub crtc_id: u32,
    pub buffer_id: u32,
    pub x: u32,
    pub y: u32,
    pub width: u32,
    pub height: u32,
    pub mode_valid: ::core::ffi::c_int,
    pub mode: drmModeModeInfo,
    pub gamma_size: ::core::ffi::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmModeCrtc"][::core::mem::size_of::<_drmModeCrtc>() - 100usize];
    ["Alignment of _drmModeCrtc"][::core::mem::align_of::<_drmModeCrtc>() - 4usize];
    ["Offset of field: _drmModeCrtc::crtc_id"]
        [::core::mem::offset_of!(_drmModeCrtc, crtc_id) - 0usize];
    ["Offset of field: _drmModeCrtc::buffer_id"]
        [::core::mem::offset_of!(_drmModeCrtc, buffer_id) - 4usize];
    ["Offset of field: _drmModeCrtc::x"][::core::mem::offset_of!(_drmModeCrtc, x) - 8usize];
    ["Offset of field: _drmModeCrtc::y"][::core::mem::offset_of!(_drmModeCrtc, y) - 12usize];
    ["Offset of field: _drmModeCrtc::width"]
        [::core::mem::offset_of!(_drmModeCrtc, width) - 16usize];
    ["Offset of field: _drmModeCrtc::height"]
        [::core::mem::offset_of!(_drmModeCrtc, height) - 20usize];
    ["Offset of field: _drmModeCrtc::mode_valid"]
        [::core::mem::offset_of!(_drmModeCrtc, mode_valid) - 24usize];
    ["Offset of field: _drmModeCrtc::mode"][::core::mem::offset_of!(_drmModeCrtc, mode) - 28usize];
    ["Offset of field: _drmModeCrtc::gamma_size"]
        [::core::mem::offset_of!(_drmModeCrtc, gamma_size) - 96usize];
};
pub type drmModeCrtc = _drmModeCrtc;
pub type drmModeCrtcPtr = *mut _drmModeCrtc;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmModeEncoder {
    pub encoder_id: u32,
    pub encoder_type: u32,
    pub crtc_id: u32,
    pub possible_crtcs: u32,
    pub possible_clones: u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmModeEncoder"][::core::mem::size_of::<_drmModeEncoder>() - 20usize];
    ["Alignment of _drmModeEncoder"][::core::mem::align_of::<_drmModeEncoder>() - 4usize];
    ["Offset of field: _drmModeEncoder::encoder_id"]
        [::core::mem::offset_of!(_drmModeEncoder, encoder_id) - 0usize];
    ["Offset of field: _drmModeEncoder::encoder_type"]
        [::core::mem::offset_of!(_drmModeEncoder, encoder_type) - 4usize];
    ["Offset of field: _drmModeEncoder::crtc_id"]
        [::core::mem::offset_of!(_drmModeEncoder, crtc_id) - 8usize];
    ["Offset of field: _drmModeEncoder::possible_crtcs"]
        [::core::mem::offset_of!(_drmModeEncoder, possible_crtcs) - 12usize];
    ["Offset of field: _drmModeEncoder::possible_clones"]
        [::core::mem::offset_of!(_drmModeEncoder, possible_clones) - 16usize];
};
pub type drmModeEncoder = _drmModeEncoder;
pub type drmModeEncoderPtr = *mut _drmModeEncoder;
pub const drmModeConnection_DRM_MODE_CONNECTED: drmModeConnection = 1;
pub const drmModeConnection_DRM_MODE_DISCONNECTED: drmModeConnection = 2;
pub const drmModeConnection_DRM_MODE_UNKNOWNCONNECTION: drmModeConnection = 3;
pub type drmModeConnection = ::core::ffi::c_uint;
pub const drmModeSubPixel_DRM_MODE_SUBPIXEL_UNKNOWN: drmModeSubPixel = 1;
pub const drmModeSubPixel_DRM_MODE_SUBPIXEL_HORIZONTAL_RGB: drmModeSubPixel = 2;
pub const drmModeSubPixel_DRM_MODE_SUBPIXEL_HORIZONTAL_BGR: drmModeSubPixel = 3;
pub const drmModeSubPixel_DRM_MODE_SUBPIXEL_VERTICAL_RGB: drmModeSubPixel = 4;
pub const drmModeSubPixel_DRM_MODE_SUBPIXEL_VERTICAL_BGR: drmModeSubPixel = 5;
pub const drmModeSubPixel_DRM_MODE_SUBPIXEL_NONE: drmModeSubPixel = 6;
pub type drmModeSubPixel = ::core::ffi::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmModeConnector {
    pub connector_id: u32,
    pub encoder_id: u32,
    pub connector_type: u32,
    pub connector_type_id: u32,
    pub connection: drmModeConnection,
    pub mmWidth: u32,
    pub mmHeight: u32,
    pub subpixel: drmModeSubPixel,
    pub count_modes: ::core::ffi::c_int,
    pub modes: drmModeModeInfoPtr,
    pub count_props: ::core::ffi::c_int,
    pub props: *mut u32,
    pub prop_values: *mut u64,
    pub count_encoders: ::core::ffi::c_int,
    pub encoders: *mut u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmModeConnector"][::core::mem::size_of::<_drmModeConnector>() - 88usize];
    ["Alignment of _drmModeConnector"][::core::mem::align_of::<_drmModeConnector>() - 8usize];
    ["Offset of field: _drmModeConnector::connector_id"]
        [::core::mem::offset_of!(_drmModeConnector, connector_id) - 0usize];
    ["Offset of field: _drmModeConnector::encoder_id"]
        [::core::mem::offset_of!(_drmModeConnector, encoder_id) - 4usize];
    ["Offset of field: _drmModeConnector::connector_type"]
        [::core::mem::offset_of!(_drmModeConnector, connector_type) - 8usize];
    ["Offset of field: _drmModeConnector::connector_type_id"]
        [::core::mem::offset_of!(_drmModeConnector, connector_type_id) - 12usize];
    ["Offset of field: _drmModeConnector::connection"]
        [::core::mem::offset_of!(_drmModeConnector, connection) - 16usize];
    ["Offset of field: _drmModeConnector::mmWidth"]
        [::core::mem::offset_of!(_drmModeConnector, mmWidth) - 20usize];
    ["Offset of field: _drmModeConnector::mmHeight"]
        [::core::mem::offset_of!(_drmModeConnector, mmHeight) - 24usize];
    ["Offset of field: _drmModeConnector::subpixel"]
        [::core::mem::offset_of!(_drmModeConnector, subpixel) - 28usize];
    ["Offset of field: _drmModeConnector::count_modes"]
        [::core::mem::offset_of!(_drmModeConnector, count_modes) - 32usize];
    ["Offset of field: _drmModeConnector::modes"]
        [::core::mem::offset_of!(_drmModeConnector, modes) - 40usize];
    ["Offset of field: _drmModeConnector::count_props"]
        [::core::mem::offset_of!(_drmModeConnector, count_props) - 48usize];
    ["Offset of field: _drmModeConnector::props"]
        [::core::mem::offset_of!(_drmModeConnector, props) - 56usize];
    ["Offset of field: _drmModeConnector::prop_values"]
        [::core::mem::offset_of!(_drmModeConnector, prop_values) - 64usize];
    ["Offset of field: _drmModeConnector::count_encoders"]
        [::core::mem::offset_of!(_drmModeConnector, count_encoders) - 72usize];
    ["Offset of field: _drmModeConnector::encoders"]
        [::core::mem::offset_of!(_drmModeConnector, encoders) - 80usize];
};
pub type drmModeConnector = _drmModeConnector;
pub type drmModeConnectorPtr = *mut _drmModeConnector;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmModeObjectProperties {
    pub count_props: u32,
    pub props: *mut u32,
    pub prop_values: *mut u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmModeObjectProperties"]
        [::core::mem::size_of::<_drmModeObjectProperties>() - 24usize];
    ["Alignment of _drmModeObjectProperties"]
        [::core::mem::align_of::<_drmModeObjectProperties>() - 8usize];
    ["Offset of field: _drmModeObjectProperties::count_props"]
        [::core::mem::offset_of!(_drmModeObjectProperties, count_props) - 0usize];
    ["Offset of field: _drmModeObjectProperties::props"]
        [::core::mem::offset_of!(_drmModeObjectProperties, props) - 8usize];
    ["Offset of field: _drmModeObjectProperties::prop_values"]
        [::core::mem::offset_of!(_drmModeObjectProperties, prop_values) - 16usize];
};
pub type drmModeObjectProperties = _drmModeObjectProperties;
pub type drmModeObjectPropertiesPtr = *mut _drmModeObjectProperties;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmModeFormatModifierIterator {
    pub fmt_idx: u32,
    pub mod_idx: u32,
    pub fmt: u32,
    pub mod_: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmModeFormatModifierIterator"]
        [::core::mem::size_of::<_drmModeFormatModifierIterator>() - 24usize];
    ["Alignment of _drmModeFormatModifierIterator"]
        [::core::mem::align_of::<_drmModeFormatModifierIterator>() - 8usize];
    ["Offset of field: _drmModeFormatModifierIterator::fmt_idx"]
        [::core::mem::offset_of!(_drmModeFormatModifierIterator, fmt_idx) - 0usize];
    ["Offset of field: _drmModeFormatModifierIterator::mod_idx"]
        [::core::mem::offset_of!(_drmModeFormatModifierIterator, mod_idx) - 4usize];
    ["Offset of field: _drmModeFormatModifierIterator::fmt"]
        [::core::mem::offset_of!(_drmModeFormatModifierIterator, fmt) - 8usize];
    ["Offset of field: _drmModeFormatModifierIterator::mod_"]
        [::core::mem::offset_of!(_drmModeFormatModifierIterator, mod_) - 16usize];
};
pub type drmModeFormatModifierIterator = _drmModeFormatModifierIterator;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmModePlane {
    pub count_formats: u32,
    pub formats: *mut u32,
    pub plane_id: u32,
    pub crtc_id: u32,
    pub fb_id: u32,
    pub crtc_x: u32,
    pub crtc_y: u32,
    pub x: u32,
    pub y: u32,
    pub possible_crtcs: u32,
    pub gamma_size: u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmModePlane"][::core::mem::size_of::<_drmModePlane>() - 56usize];
    ["Alignment of _drmModePlane"][::core::mem::align_of::<_drmModePlane>() - 8usize];
    ["Offset of field: _drmModePlane::count_formats"]
        [::core::mem::offset_of!(_drmModePlane, count_formats) - 0usize];
    ["Offset of field: _drmModePlane::formats"]
        [::core::mem::offset_of!(_drmModePlane, formats) - 8usize];
    ["Offset of field: _drmModePlane::plane_id"]
        [::core::mem::offset_of!(_drmModePlane, plane_id) - 16usize];
    ["Offset of field: _drmModePlane::crtc_id"]
        [::core::mem::offset_of!(_drmModePlane, crtc_id) - 20usize];
    ["Offset of field: _drmModePlane::fb_id"]
        [::core::mem::offset_of!(_drmModePlane, fb_id) - 24usize];
    ["Offset of field: _drmModePlane::crtc_x"]
        [::core::mem::offset_of!(_drmModePlane, crtc_x) - 28usize];
    ["Offset of field: _drmModePlane::crtc_y"]
        [::core::mem::offset_of!(_drmModePlane, crtc_y) - 32usize];
    ["Offset of field: _drmModePlane::x"][::core::mem::offset_of!(_drmModePlane, x) - 36usize];
    ["Offset of field: _drmModePlane::y"][::core::mem::offset_of!(_drmModePlane, y) - 40usize];
    ["Offset of field: _drmModePlane::possible_crtcs"]
        [::core::mem::offset_of!(_drmModePlane, possible_crtcs) - 44usize];
    ["Offset of field: _drmModePlane::gamma_size"]
        [::core::mem::offset_of!(_drmModePlane, gamma_size) - 48usize];
};
pub type drmModePlane = _drmModePlane;
pub type drmModePlanePtr = *mut _drmModePlane;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmModePlaneRes {
    pub count_planes: u32,
    pub planes: *mut u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _drmModePlaneRes"][::core::mem::size_of::<_drmModePlaneRes>() - 16usize];
    ["Alignment of _drmModePlaneRes"][::core::mem::align_of::<_drmModePlaneRes>() - 8usize];
    ["Offset of field: _drmModePlaneRes::count_planes"]
        [::core::mem::offset_of!(_drmModePlaneRes, count_planes) - 0usize];
    ["Offset of field: _drmModePlaneRes::planes"]
        [::core::mem::offset_of!(_drmModePlaneRes, planes) - 8usize];
};
pub type drmModePlaneRes = _drmModePlaneRes;
pub type drmModePlaneResPtr = *mut _drmModePlaneRes;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmModeAtomicReq {
    _unused: [u8; 0],
}
pub type drmModeAtomicReq = _drmModeAtomicReq;
pub type drmModeAtomicReqPtr = *mut _drmModeAtomicReq;
#[repr(C)]
#[derive(Debug)]
pub struct drmModeLesseeList {
    pub count: u32,
    pub lessees: __IncompleteArrayField<u32>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drmModeLesseeList"][::core::mem::size_of::<drmModeLesseeList>() - 4usize];
    ["Alignment of drmModeLesseeList"][::core::mem::align_of::<drmModeLesseeList>() - 4usize];
    ["Offset of field: drmModeLesseeList::count"]
        [::core::mem::offset_of!(drmModeLesseeList, count) - 0usize];
    ["Offset of field: drmModeLesseeList::lessees"]
        [::core::mem::offset_of!(drmModeLesseeList, lessees) - 4usize];
};
pub type drmModeLesseeListRes = drmModeLesseeList;
pub type drmModeLesseeListPtr = *mut drmModeLesseeList;
#[repr(C)]
#[derive(Debug)]
pub struct drmModeObjectList {
    pub count: u32,
    pub objects: __IncompleteArrayField<u32>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of drmModeObjectList"][::core::mem::size_of::<drmModeObjectList>() - 4usize];
    ["Alignment of drmModeObjectList"][::core::mem::align_of::<drmModeObjectList>() - 4usize];
    ["Offset of field: drmModeObjectList::count"]
        [::core::mem::offset_of!(drmModeObjectList, count) - 0usize];
    ["Offset of field: drmModeObjectList::objects"]
        [::core::mem::offset_of!(drmModeObjectList, objects) - 4usize];
};
pub type drmModeObjectListRes = drmModeObjectList;
pub type drmModeObjectListPtr = *mut drmModeObjectList;
pub type __builtin_va_list = [__va_list_tag; 1usize];
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __va_list_tag {
    pub gp_offset: ::core::ffi::c_uint,
    pub fp_offset: ::core::ffi::c_uint,
    pub overflow_arg_area: *mut ::core::ffi::c_void,
    pub reg_save_area: *mut ::core::ffi::c_void,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of __va_list_tag"][::core::mem::size_of::<__va_list_tag>() - 24usize];
    ["Alignment of __va_list_tag"][::core::mem::align_of::<__va_list_tag>() - 8usize];
    ["Offset of field: __va_list_tag::gp_offset"]
        [::core::mem::offset_of!(__va_list_tag, gp_offset) - 0usize];
    ["Offset of field: __va_list_tag::fp_offset"]
        [::core::mem::offset_of!(__va_list_tag, fp_offset) - 4usize];
    ["Offset of field: __va_list_tag::overflow_arg_area"]
        [::core::mem::offset_of!(__va_list_tag, overflow_arg_area) - 8usize];
    ["Offset of field: __va_list_tag::reg_save_area"]
        [::core::mem::offset_of!(__va_list_tag, reg_save_area) - 16usize];
};
pub struct DynLibDrm {
    __library: ::libloading::Library,
    pub select: unsafe extern "C" fn(
        __nfds: ::core::ffi::c_int,
        __readfds: *mut fd_set,
        __writefds: *mut fd_set,
        __exceptfds: *mut fd_set,
        __timeout: *mut timeval,
    ) -> ::core::ffi::c_int,
    pub pselect: unsafe extern "C" fn(
        __nfds: ::core::ffi::c_int,
        __readfds: *mut fd_set,
        __writefds: *mut fd_set,
        __exceptfds: *mut fd_set,
        __timeout: *const timespec,
        __sigmask: *const __sigset_t,
    ) -> ::core::ffi::c_int,
    pub drmIoctl: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        request: ::core::ffi::c_ulong,
        arg: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int,
    pub drmGetHashTable: unsafe extern "C" fn() -> *mut ::core::ffi::c_void,
    pub drmGetEntry: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> *mut drmHashEntry,
    pub drmAvailable: unsafe extern "C" fn() -> ::core::ffi::c_int,
    pub drmOpen: unsafe extern "C" fn(
        name: *const ::core::ffi::c_char,
        busid: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int,
    pub drmOpenWithType: unsafe extern "C" fn(
        name: *const ::core::ffi::c_char,
        busid: *const ::core::ffi::c_char,
        type_: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int,
    pub drmOpenControl: unsafe extern "C" fn(minor: ::core::ffi::c_int) -> ::core::ffi::c_int,
    pub drmOpenRender: unsafe extern "C" fn(minor: ::core::ffi::c_int) -> ::core::ffi::c_int,
    pub drmClose: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> ::core::ffi::c_int,
    pub drmGetVersion: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> drmVersionPtr,
    pub drmGetLibVersion: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> drmVersionPtr,
    pub drmGetCap: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        capability: u64,
        value: *mut u64,
    ) -> ::core::ffi::c_int,
    pub drmFreeVersion: unsafe extern "C" fn(arg1: drmVersionPtr),
    pub drmGetMagic:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, magic: *mut drm_magic_t) -> ::core::ffi::c_int,
    pub drmGetBusid: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> *mut ::core::ffi::c_char,
    pub drmGetInterruptFromBusID: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        busnum: ::core::ffi::c_int,
        devnum: ::core::ffi::c_int,
        funcnum: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int,
    pub drmGetMap: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        idx: ::core::ffi::c_int,
        offset: *mut drm_handle_t,
        size: *mut drmSize,
        type_: *mut drmMapType,
        flags: *mut drmMapFlags,
        handle: *mut drm_handle_t,
        mtrr: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int,
    pub drmGetClient: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        idx: ::core::ffi::c_int,
        auth: *mut ::core::ffi::c_int,
        pid: *mut ::core::ffi::c_int,
        uid: *mut ::core::ffi::c_int,
        magic: *mut ::core::ffi::c_ulong,
        iocs: *mut ::core::ffi::c_ulong,
    ) -> ::core::ffi::c_int,
    pub drmGetStats:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, stats: *mut drmStatsT) -> ::core::ffi::c_int,
    pub drmSetInterfaceVersion: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        version: *mut drmSetVersion,
    ) -> ::core::ffi::c_int,
    pub drmCommandNone: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        drmCommandIndex: ::core::ffi::c_ulong,
    ) -> ::core::ffi::c_int,
    pub drmCommandRead: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        drmCommandIndex: ::core::ffi::c_ulong,
        data: *mut ::core::ffi::c_void,
        size: ::core::ffi::c_ulong,
    ) -> ::core::ffi::c_int,
    pub drmCommandWrite: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        drmCommandIndex: ::core::ffi::c_ulong,
        data: *mut ::core::ffi::c_void,
        size: ::core::ffi::c_ulong,
    ) -> ::core::ffi::c_int,
    pub drmCommandWriteRead: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        drmCommandIndex: ::core::ffi::c_ulong,
        data: *mut ::core::ffi::c_void,
        size: ::core::ffi::c_ulong,
    ) -> ::core::ffi::c_int,
    pub drmFreeBusid: unsafe extern "C" fn(busid: *const ::core::ffi::c_char),
    pub drmSetBusid: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        busid: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int,
    pub drmAuthMagic:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, magic: drm_magic_t) -> ::core::ffi::c_int,
    pub drmAddMap: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        offset: drm_handle_t,
        size: drmSize,
        type_: drmMapType,
        flags: drmMapFlags,
        handle: *mut drm_handle_t,
    ) -> ::core::ffi::c_int,
    pub drmRmMap:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, handle: drm_handle_t) -> ::core::ffi::c_int,
    pub drmAddContextPrivateMapping: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        ctx_id: drm_context_t,
        handle: drm_handle_t,
    ) -> ::core::ffi::c_int,
    pub drmAddBufs: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        count: ::core::ffi::c_int,
        size: ::core::ffi::c_int,
        flags: drmBufDescFlags,
        agp_offset: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int,
    pub drmMarkBufs:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, low: f64, high: f64) -> ::core::ffi::c_int,
    pub drmCreateContext: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        handle: *mut drm_context_t,
    ) -> ::core::ffi::c_int,
    pub drmSetContextFlags: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        context: drm_context_t,
        flags: drm_context_tFlags,
    ) -> ::core::ffi::c_int,
    pub drmGetContextFlags: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        context: drm_context_t,
        flags: drm_context_tFlagsPtr,
    ) -> ::core::ffi::c_int,
    pub drmAddContextTag: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        context: drm_context_t,
        tag: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int,
    pub drmDelContextTag:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, context: drm_context_t) -> ::core::ffi::c_int,
    pub drmGetContextTag: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        context: drm_context_t,
    ) -> *mut ::core::ffi::c_void,
    pub drmGetReservedContextList: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        count: *mut ::core::ffi::c_int,
    ) -> *mut drm_context_t,
    pub drmFreeReservedContextList: unsafe extern "C" fn(arg1: *mut drm_context_t),
    pub drmSwitchToContext:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, context: drm_context_t) -> ::core::ffi::c_int,
    pub drmDestroyContext:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, handle: drm_context_t) -> ::core::ffi::c_int,
    pub drmCreateDrawable: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        handle: *mut drm_drawable_t,
    ) -> ::core::ffi::c_int,
    pub drmDestroyDrawable:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, handle: drm_drawable_t) -> ::core::ffi::c_int,
    pub drmUpdateDrawableInfo: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        handle: drm_drawable_t,
        type_: drm_drawable_info_type_t,
        num: ::core::ffi::c_uint,
        data: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int,
    pub drmCtlInstHandler:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, irq: ::core::ffi::c_int) -> ::core::ffi::c_int,
    pub drmCtlUninstHandler: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> ::core::ffi::c_int,
    pub drmSetClientCap: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        capability: u64,
        value: u64,
    ) -> ::core::ffi::c_int,
    pub drmCrtcGetSequence: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        crtcId: u32,
        sequence: *mut u64,
        ns: *mut u64,
    ) -> ::core::ffi::c_int,
    pub drmCrtcQueueSequence: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        crtcId: u32,
        flags: u32,
        sequence: u64,
        sequence_queued: *mut u64,
        user_data: u64,
    ) -> ::core::ffi::c_int,
    pub drmMap: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        handle: drm_handle_t,
        size: drmSize,
        address: drmAddressPtr,
    ) -> ::core::ffi::c_int,
    pub drmUnmap: unsafe extern "C" fn(address: drmAddress, size: drmSize) -> ::core::ffi::c_int,
    pub drmGetBufInfo: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> drmBufInfoPtr,
    pub drmMapBufs: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> drmBufMapPtr,
    pub drmUnmapBufs: unsafe extern "C" fn(bufs: drmBufMapPtr) -> ::core::ffi::c_int,
    pub drmDMA:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, request: drmDMAReqPtr) -> ::core::ffi::c_int,
    pub drmFreeBufs: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        count: ::core::ffi::c_int,
        list: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int,
    pub drmGetLock: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        context: drm_context_t,
        flags: drmLockFlags,
    ) -> ::core::ffi::c_int,
    pub drmUnlock:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, context: drm_context_t) -> ::core::ffi::c_int,
    pub drmFinish: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        context: ::core::ffi::c_int,
        flags: drmLockFlags,
    ) -> ::core::ffi::c_int,
    pub drmGetContextPrivateMapping: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        ctx_id: drm_context_t,
        handle: *mut drm_handle_t,
    ) -> ::core::ffi::c_int,
    pub drmAgpAcquire: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> ::core::ffi::c_int,
    pub drmAgpRelease: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> ::core::ffi::c_int,
    pub drmAgpEnable: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        mode: ::core::ffi::c_ulong,
    ) -> ::core::ffi::c_int,
    pub drmAgpAlloc: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        size: ::core::ffi::c_ulong,
        type_: ::core::ffi::c_ulong,
        address: *mut ::core::ffi::c_ulong,
        handle: *mut drm_handle_t,
    ) -> ::core::ffi::c_int,
    pub drmAgpFree:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, handle: drm_handle_t) -> ::core::ffi::c_int,
    pub drmAgpBind: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        handle: drm_handle_t,
        offset: ::core::ffi::c_ulong,
    ) -> ::core::ffi::c_int,
    pub drmAgpUnbind:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, handle: drm_handle_t) -> ::core::ffi::c_int,
    pub drmAgpVersionMajor: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> ::core::ffi::c_int,
    pub drmAgpVersionMinor: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> ::core::ffi::c_int,
    pub drmAgpGetMode: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> ::core::ffi::c_ulong,
    pub drmAgpBase: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> ::core::ffi::c_ulong,
    pub drmAgpSize: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> ::core::ffi::c_ulong,
    pub drmAgpMemoryUsed: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> ::core::ffi::c_ulong,
    pub drmAgpMemoryAvail: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> ::core::ffi::c_ulong,
    pub drmAgpVendorId: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> ::core::ffi::c_uint,
    pub drmAgpDeviceId: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> ::core::ffi::c_uint,
    pub drmScatterGatherAlloc: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        size: ::core::ffi::c_ulong,
        handle: *mut drm_handle_t,
    ) -> ::core::ffi::c_int,
    pub drmScatterGatherFree:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, handle: drm_handle_t) -> ::core::ffi::c_int,
    pub drmWaitVBlank:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, vbl: drmVBlankPtr) -> ::core::ffi::c_int,
    pub drmSetServerInfo: unsafe extern "C" fn(info: drmServerInfoPtr),
    pub drmError: unsafe extern "C" fn(
        err: ::core::ffi::c_int,
        label: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int,
    pub drmMalloc: unsafe extern "C" fn(size: ::core::ffi::c_int) -> *mut ::core::ffi::c_void,
    pub drmFree: unsafe extern "C" fn(pt: *mut ::core::ffi::c_void),
    pub drmHashCreate: unsafe extern "C" fn() -> *mut ::core::ffi::c_void,
    pub drmHashDestroy: unsafe extern "C" fn(t: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
    pub drmHashLookup: unsafe extern "C" fn(
        t: *mut ::core::ffi::c_void,
        key: ::core::ffi::c_ulong,
        value: *mut *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int,
    pub drmHashInsert: unsafe extern "C" fn(
        t: *mut ::core::ffi::c_void,
        key: ::core::ffi::c_ulong,
        value: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int,
    pub drmHashDelete: unsafe extern "C" fn(
        t: *mut ::core::ffi::c_void,
        key: ::core::ffi::c_ulong,
    ) -> ::core::ffi::c_int,
    pub drmHashFirst: unsafe extern "C" fn(
        t: *mut ::core::ffi::c_void,
        key: *mut ::core::ffi::c_ulong,
        value: *mut *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int,
    pub drmHashNext: unsafe extern "C" fn(
        t: *mut ::core::ffi::c_void,
        key: *mut ::core::ffi::c_ulong,
        value: *mut *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int,
    pub drmRandomCreate:
        unsafe extern "C" fn(seed: ::core::ffi::c_ulong) -> *mut ::core::ffi::c_void,
    pub drmRandomDestroy:
        unsafe extern "C" fn(state: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
    pub drmRandom: unsafe extern "C" fn(state: *mut ::core::ffi::c_void) -> ::core::ffi::c_ulong,
    pub drmRandomDouble: unsafe extern "C" fn(state: *mut ::core::ffi::c_void) -> f64,
    pub drmSLCreate: unsafe extern "C" fn() -> *mut ::core::ffi::c_void,
    pub drmSLDestroy: unsafe extern "C" fn(l: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
    pub drmSLLookup: unsafe extern "C" fn(
        l: *mut ::core::ffi::c_void,
        key: ::core::ffi::c_ulong,
        value: *mut *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int,
    pub drmSLInsert: unsafe extern "C" fn(
        l: *mut ::core::ffi::c_void,
        key: ::core::ffi::c_ulong,
        value: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int,
    pub drmSLDelete: unsafe extern "C" fn(
        l: *mut ::core::ffi::c_void,
        key: ::core::ffi::c_ulong,
    ) -> ::core::ffi::c_int,
    pub drmSLNext: unsafe extern "C" fn(
        l: *mut ::core::ffi::c_void,
        key: *mut ::core::ffi::c_ulong,
        value: *mut *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int,
    pub drmSLFirst: unsafe extern "C" fn(
        l: *mut ::core::ffi::c_void,
        key: *mut ::core::ffi::c_ulong,
        value: *mut *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int,
    pub drmSLDump: unsafe extern "C" fn(l: *mut ::core::ffi::c_void),
    pub drmSLLookupNeighbors: unsafe extern "C" fn(
        l: *mut ::core::ffi::c_void,
        key: ::core::ffi::c_ulong,
        prev_key: *mut ::core::ffi::c_ulong,
        prev_value: *mut *mut ::core::ffi::c_void,
        next_key: *mut ::core::ffi::c_ulong,
        next_value: *mut *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int,
    pub drmOpenOnce: unsafe extern "C" fn(
        unused: *mut ::core::ffi::c_void,
        BusID: *const ::core::ffi::c_char,
        newlyopened: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int,
    pub drmOpenOnceWithType: unsafe extern "C" fn(
        BusID: *const ::core::ffi::c_char,
        newlyopened: *mut ::core::ffi::c_int,
        type_: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int,
    pub drmCloseOnce: unsafe extern "C" fn(fd: ::core::ffi::c_int),
    pub drmMsg: unsafe extern "C" fn(format: *const ::core::ffi::c_char, ...),
    pub drmSetMaster: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> ::core::ffi::c_int,
    pub drmDropMaster: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> ::core::ffi::c_int,
    pub drmIsMaster: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> ::core::ffi::c_int,
    pub drmHandleEvent: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        evctx: drmEventContextPtr,
    ) -> ::core::ffi::c_int,
    pub drmGetDeviceNameFromFd:
        unsafe extern "C" fn(fd: ::core::ffi::c_int) -> *mut ::core::ffi::c_char,
    pub drmGetDeviceNameFromFd2:
        unsafe extern "C" fn(fd: ::core::ffi::c_int) -> *mut ::core::ffi::c_char,
    pub drmGetNodeTypeFromFd: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> ::core::ffi::c_int,
    pub drmPrimeHandleToFD: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        handle: u32,
        flags: u32,
        prime_fd: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int,
    pub drmPrimeFDToHandle: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        prime_fd: ::core::ffi::c_int,
        handle: *mut u32,
    ) -> ::core::ffi::c_int,
    pub drmCloseBufferHandle:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, handle: u32) -> ::core::ffi::c_int,
    pub drmGetPrimaryDeviceNameFromFd:
        unsafe extern "C" fn(fd: ::core::ffi::c_int) -> *mut ::core::ffi::c_char,
    pub drmGetRenderDeviceNameFromFd:
        unsafe extern "C" fn(fd: ::core::ffi::c_int) -> *mut ::core::ffi::c_char,
    pub drmGetDevice: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        device: *mut drmDevicePtr,
    ) -> ::core::ffi::c_int,
    pub drmFreeDevice: unsafe extern "C" fn(device: *mut drmDevicePtr),
    pub drmGetDevices: unsafe extern "C" fn(
        devices: *mut drmDevicePtr,
        max_devices: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int,
    pub drmFreeDevices: unsafe extern "C" fn(devices: *mut drmDevicePtr, count: ::core::ffi::c_int),
    pub drmGetDevice2: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        flags: u32,
        device: *mut drmDevicePtr,
    ) -> ::core::ffi::c_int,
    pub drmGetDevices2: unsafe extern "C" fn(
        flags: u32,
        devices: *mut drmDevicePtr,
        max_devices: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int,
    pub drmGetDeviceFromDevId: unsafe extern "C" fn(
        dev_id: dev_t,
        flags: u32,
        device: *mut drmDevicePtr,
    ) -> ::core::ffi::c_int,
    pub drmGetNodeTypeFromDevId: unsafe extern "C" fn(devid: dev_t) -> ::core::ffi::c_int,
    pub drmDevicesEqual:
        unsafe extern "C" fn(a: drmDevicePtr, b: drmDevicePtr) -> ::core::ffi::c_int,
    pub drmSyncobjCreate: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        flags: u32,
        handle: *mut u32,
    ) -> ::core::ffi::c_int,
    pub drmSyncobjDestroy:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, handle: u32) -> ::core::ffi::c_int,
    pub drmSyncobjHandleToFD: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        handle: u32,
        obj_fd: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int,
    pub drmSyncobjFDToHandle: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        obj_fd: ::core::ffi::c_int,
        handle: *mut u32,
    ) -> ::core::ffi::c_int,
    pub drmSyncobjImportSyncFile: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        handle: u32,
        sync_file_fd: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int,
    pub drmSyncobjExportSyncFile: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        handle: u32,
        sync_file_fd: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int,
    pub drmSyncobjWait: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        handles: *mut u32,
        num_handles: ::core::ffi::c_uint,
        timeout_nsec: i64,
        flags: ::core::ffi::c_uint,
        first_signaled: *mut u32,
    ) -> ::core::ffi::c_int,
    pub drmSyncobjReset: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        handles: *const u32,
        handle_count: u32,
    ) -> ::core::ffi::c_int,
    pub drmSyncobjSignal: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        handles: *const u32,
        handle_count: u32,
    ) -> ::core::ffi::c_int,
    pub drmSyncobjTimelineSignal: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        handles: *const u32,
        points: *mut u64,
        handle_count: u32,
    ) -> ::core::ffi::c_int,
    pub drmSyncobjTimelineWait: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        handles: *mut u32,
        points: *mut u64,
        num_handles: ::core::ffi::c_uint,
        timeout_nsec: i64,
        flags: ::core::ffi::c_uint,
        first_signaled: *mut u32,
    ) -> ::core::ffi::c_int,
    pub drmSyncobjQuery: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        handles: *mut u32,
        points: *mut u64,
        handle_count: u32,
    ) -> ::core::ffi::c_int,
    pub drmSyncobjQuery2: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        handles: *mut u32,
        points: *mut u64,
        handle_count: u32,
        flags: u32,
    ) -> ::core::ffi::c_int,
    pub drmSyncobjTransfer: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        dst_handle: u32,
        dst_point: u64,
        src_handle: u32,
        src_point: u64,
        flags: u32,
    ) -> ::core::ffi::c_int,
    pub drmSyncobjEventfd: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        handle: u32,
        point: u64,
        ev_fd: ::core::ffi::c_int,
        flags: u32,
    ) -> ::core::ffi::c_int,
    pub drmGetFormatModifierVendor: unsafe extern "C" fn(modifier: u64) -> *mut ::core::ffi::c_char,
    pub drmGetFormatModifierName: unsafe extern "C" fn(modifier: u64) -> *mut ::core::ffi::c_char,
    pub drmGetFormatName: unsafe extern "C" fn(format: u32) -> *mut ::core::ffi::c_char,
    pub drmModeFreeModeInfo: unsafe extern "C" fn(ptr: drmModeModeInfoPtr),
    pub drmModeFreeResources: unsafe extern "C" fn(ptr: drmModeResPtr),
    pub drmModeFreeFB: unsafe extern "C" fn(ptr: drmModeFBPtr),
    pub drmModeFreeFB2: unsafe extern "C" fn(ptr: drmModeFB2Ptr),
    pub drmModeFreeCrtc: unsafe extern "C" fn(ptr: drmModeCrtcPtr),
    pub drmModeFreeConnector: unsafe extern "C" fn(ptr: drmModeConnectorPtr),
    pub drmModeFreeEncoder: unsafe extern "C" fn(ptr: drmModeEncoderPtr),
    pub drmModeFreePlane: unsafe extern "C" fn(ptr: drmModePlanePtr),
    pub drmModeFreePlaneResources: unsafe extern "C" fn(ptr: drmModePlaneResPtr),
    pub drmIsKMS: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> ::core::ffi::c_int,
    pub drmModeGetResources: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> drmModeResPtr,
    pub drmModeGetFB: unsafe extern "C" fn(fd: ::core::ffi::c_int, bufferId: u32) -> drmModeFBPtr,
    pub drmModeGetFB2: unsafe extern "C" fn(fd: ::core::ffi::c_int, bufferId: u32) -> drmModeFB2Ptr,
    pub drmModeAddFB: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        width: u32,
        height: u32,
        depth: u8,
        bpp: u8,
        pitch: u32,
        bo_handle: u32,
        buf_id: *mut u32,
    ) -> ::core::ffi::c_int,
    pub drmModeAddFB2: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        width: u32,
        height: u32,
        pixel_format: u32,
        bo_handles: *const u32,
        pitches: *const u32,
        offsets: *const u32,
        buf_id: *mut u32,
        flags: u32,
    ) -> ::core::ffi::c_int,
    pub drmModeAddFB2WithModifiers: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        width: u32,
        height: u32,
        pixel_format: u32,
        bo_handles: *const u32,
        pitches: *const u32,
        offsets: *const u32,
        modifier: *const u64,
        buf_id: *mut u32,
        flags: u32,
    ) -> ::core::ffi::c_int,
    pub drmModeRmFB:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, bufferId: u32) -> ::core::ffi::c_int,
    pub drmModeCloseFB:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, buffer_id: u32) -> ::core::ffi::c_int,
    pub drmModeDirtyFB: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        bufferId: u32,
        clips: drmModeClipPtr,
        num_clips: u32,
    ) -> ::core::ffi::c_int,
    pub drmModeGetCrtc: unsafe extern "C" fn(fd: ::core::ffi::c_int, crtcId: u32) -> drmModeCrtcPtr,
    pub drmModeSetCrtc: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        crtcId: u32,
        bufferId: u32,
        x: u32,
        y: u32,
        connectors: *mut u32,
        count: ::core::ffi::c_int,
        mode: drmModeModeInfoPtr,
    ) -> ::core::ffi::c_int,
    pub drmModeSetCursor: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        crtcId: u32,
        bo_handle: u32,
        width: u32,
        height: u32,
    ) -> ::core::ffi::c_int,
    pub drmModeSetCursor2: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        crtcId: u32,
        bo_handle: u32,
        width: u32,
        height: u32,
        hot_x: i32,
        hot_y: i32,
    ) -> ::core::ffi::c_int,
    pub drmModeMoveCursor: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        crtcId: u32,
        x: ::core::ffi::c_int,
        y: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int,
    pub drmModeGetEncoder:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, encoder_id: u32) -> drmModeEncoderPtr,
    pub drmModeGetConnector:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, connectorId: u32) -> drmModeConnectorPtr,
    pub drmModeGetConnectorCurrent:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, connector_id: u32) -> drmModeConnectorPtr,
    pub drmModeConnectorGetPossibleCrtcs:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, connector: *const drmModeConnector) -> u32,
    pub drmModeAttachMode: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        connectorId: u32,
        mode_info: drmModeModeInfoPtr,
    ) -> ::core::ffi::c_int,
    pub drmModeDetachMode: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        connectorId: u32,
        mode_info: drmModeModeInfoPtr,
    ) -> ::core::ffi::c_int,
    pub drmModeGetProperty:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, propertyId: u32) -> drmModePropertyPtr,
    pub drmModeFreeProperty: unsafe extern "C" fn(ptr: drmModePropertyPtr),
    pub drmModeGetPropertyBlob:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, blob_id: u32) -> drmModePropertyBlobPtr,
    pub drmModeFormatModifierBlobIterNext: unsafe extern "C" fn(
        blob: *const drmModePropertyBlobRes,
        iter: *mut drmModeFormatModifierIterator,
    ) -> bool,
    pub drmModeFreePropertyBlob: unsafe extern "C" fn(ptr: drmModePropertyBlobPtr),
    pub drmModeConnectorSetProperty: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        connector_id: u32,
        property_id: u32,
        value: u64,
    ) -> ::core::ffi::c_int,
    pub drmCheckModesettingSupported:
        unsafe extern "C" fn(busid: *const ::core::ffi::c_char) -> ::core::ffi::c_int,
    pub drmModeCrtcSetGamma: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        crtc_id: u32,
        size: u32,
        red: *const u16,
        green: *const u16,
        blue: *const u16,
    ) -> ::core::ffi::c_int,
    pub drmModeCrtcGetGamma: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        crtc_id: u32,
        size: u32,
        red: *mut u16,
        green: *mut u16,
        blue: *mut u16,
    ) -> ::core::ffi::c_int,
    pub drmModePageFlip: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        crtc_id: u32,
        fb_id: u32,
        flags: u32,
        user_data: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int,
    pub drmModePageFlipTarget: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        crtc_id: u32,
        fb_id: u32,
        flags: u32,
        user_data: *mut ::core::ffi::c_void,
        target_vblank: u32,
    ) -> ::core::ffi::c_int,
    pub drmModeGetPlaneResources:
        unsafe extern "C" fn(fd: ::core::ffi::c_int) -> drmModePlaneResPtr,
    pub drmModeGetPlane:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, plane_id: u32) -> drmModePlanePtr,
    pub drmModeSetPlane: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        plane_id: u32,
        crtc_id: u32,
        fb_id: u32,
        flags: u32,
        crtc_x: i32,
        crtc_y: i32,
        crtc_w: u32,
        crtc_h: u32,
        src_x: u32,
        src_y: u32,
        src_w: u32,
        src_h: u32,
    ) -> ::core::ffi::c_int,
    pub drmModeObjectGetProperties: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        object_id: u32,
        object_type: u32,
    ) -> drmModeObjectPropertiesPtr,
    pub drmModeFreeObjectProperties: unsafe extern "C" fn(ptr: drmModeObjectPropertiesPtr),
    pub drmModeObjectSetProperty: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        object_id: u32,
        object_type: u32,
        property_id: u32,
        value: u64,
    ) -> ::core::ffi::c_int,
    pub drmModeAtomicAlloc: unsafe extern "C" fn() -> drmModeAtomicReqPtr,
    pub drmModeAtomicDuplicate:
        unsafe extern "C" fn(req: drmModeAtomicReqPtr) -> drmModeAtomicReqPtr,
    pub drmModeAtomicMerge: unsafe extern "C" fn(
        base: drmModeAtomicReqPtr,
        augment: drmModeAtomicReqPtr,
    ) -> ::core::ffi::c_int,
    pub drmModeAtomicFree: unsafe extern "C" fn(req: drmModeAtomicReqPtr),
    pub drmModeAtomicGetCursor:
        unsafe extern "C" fn(req: drmModeAtomicReqPtr) -> ::core::ffi::c_int,
    pub drmModeAtomicSetCursor:
        unsafe extern "C" fn(req: drmModeAtomicReqPtr, cursor: ::core::ffi::c_int),
    pub drmModeAtomicAddProperty: unsafe extern "C" fn(
        req: drmModeAtomicReqPtr,
        object_id: u32,
        property_id: u32,
        value: u64,
    ) -> ::core::ffi::c_int,
    pub drmModeAtomicCommit: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        req: drmModeAtomicReqPtr,
        flags: u32,
        user_data: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int,
    pub drmModeCreatePropertyBlob: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        data: *const ::core::ffi::c_void,
        size: usize,
        id: *mut u32,
    ) -> ::core::ffi::c_int,
    pub drmModeDestroyPropertyBlob:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, id: u32) -> ::core::ffi::c_int,
    pub drmModeCreateLease: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        objects: *const u32,
        num_objects: ::core::ffi::c_int,
        flags: ::core::ffi::c_int,
        lessee_id: *mut u32,
    ) -> ::core::ffi::c_int,
    pub drmModeListLessees: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> drmModeLesseeListPtr,
    pub drmModeGetLease: unsafe extern "C" fn(fd: ::core::ffi::c_int) -> drmModeObjectListPtr,
    pub drmModeRevokeLease:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, lessee_id: u32) -> ::core::ffi::c_int,
    pub drmModeGetConnectorTypeName:
        unsafe extern "C" fn(connector_type: u32) -> *const ::core::ffi::c_char,
    pub drmModeCreateDumbBuffer: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        width: u32,
        height: u32,
        bpp: u32,
        flags: u32,
        handle: *mut u32,
        pitch: *mut u32,
        size: *mut u64,
    ) -> ::core::ffi::c_int,
    pub drmModeDestroyDumbBuffer:
        unsafe extern "C" fn(fd: ::core::ffi::c_int, handle: u32) -> ::core::ffi::c_int,
    pub drmModeMapDumbBuffer: unsafe extern "C" fn(
        fd: ::core::ffi::c_int,
        handle: u32,
        offset: *mut u64,
    ) -> ::core::ffi::c_int,
}
impl DynLibDrm {
    pub unsafe fn new<P>(path: P) -> Result<Self, ::libloading::Error>
    where
        P: AsRef<::std::ffi::OsStr>,
    {
        let library = ::libloading::Library::new(path)?;
        Self::from_library(library)
    }
    pub unsafe fn from_library<L>(library: L) -> Result<Self, ::libloading::Error>
    where
        L: Into<::libloading::Library>,
    {
        let __library = library.into();
        let select = __library.get(b"select\0").map(|sym| *sym)?;
        let pselect = __library.get(b"pselect\0").map(|sym| *sym)?;
        let drmIoctl = __library.get(b"drmIoctl\0").map(|sym| *sym)?;
        let drmGetHashTable = __library.get(b"drmGetHashTable\0").map(|sym| *sym)?;
        let drmGetEntry = __library.get(b"drmGetEntry\0").map(|sym| *sym)?;
        let drmAvailable = __library.get(b"drmAvailable\0").map(|sym| *sym)?;
        let drmOpen = __library.get(b"drmOpen\0").map(|sym| *sym)?;
        let drmOpenWithType = __library.get(b"drmOpenWithType\0").map(|sym| *sym)?;
        let drmOpenControl = __library.get(b"drmOpenControl\0").map(|sym| *sym)?;
        let drmOpenRender = __library.get(b"drmOpenRender\0").map(|sym| *sym)?;
        let drmClose = __library.get(b"drmClose\0").map(|sym| *sym)?;
        let drmGetVersion = __library.get(b"drmGetVersion\0").map(|sym| *sym)?;
        let drmGetLibVersion = __library.get(b"drmGetLibVersion\0").map(|sym| *sym)?;
        let drmGetCap = __library.get(b"drmGetCap\0").map(|sym| *sym)?;
        let drmFreeVersion = __library.get(b"drmFreeVersion\0").map(|sym| *sym)?;
        let drmGetMagic = __library.get(b"drmGetMagic\0").map(|sym| *sym)?;
        let drmGetBusid = __library.get(b"drmGetBusid\0").map(|sym| *sym)?;
        let drmGetInterruptFromBusID = __library
            .get(b"drmGetInterruptFromBusID\0")
            .map(|sym| *sym)?;
        let drmGetMap = __library.get(b"drmGetMap\0").map(|sym| *sym)?;
        let drmGetClient = __library.get(b"drmGetClient\0").map(|sym| *sym)?;
        let drmGetStats = __library.get(b"drmGetStats\0").map(|sym| *sym)?;
        let drmSetInterfaceVersion = __library.get(b"drmSetInterfaceVersion\0").map(|sym| *sym)?;
        let drmCommandNone = __library.get(b"drmCommandNone\0").map(|sym| *sym)?;
        let drmCommandRead = __library.get(b"drmCommandRead\0").map(|sym| *sym)?;
        let drmCommandWrite = __library.get(b"drmCommandWrite\0").map(|sym| *sym)?;
        let drmCommandWriteRead = __library.get(b"drmCommandWriteRead\0").map(|sym| *sym)?;
        let drmFreeBusid = __library.get(b"drmFreeBusid\0").map(|sym| *sym)?;
        let drmSetBusid = __library.get(b"drmSetBusid\0").map(|sym| *sym)?;
        let drmAuthMagic = __library.get(b"drmAuthMagic\0").map(|sym| *sym)?;
        let drmAddMap = __library.get(b"drmAddMap\0").map(|sym| *sym)?;
        let drmRmMap = __library.get(b"drmRmMap\0").map(|sym| *sym)?;
        let drmAddContextPrivateMapping = __library
            .get(b"drmAddContextPrivateMapping\0")
            .map(|sym| *sym)?;
        let drmAddBufs = __library.get(b"drmAddBufs\0").map(|sym| *sym)?;
        let drmMarkBufs = __library.get(b"drmMarkBufs\0").map(|sym| *sym)?;
        let drmCreateContext = __library.get(b"drmCreateContext\0").map(|sym| *sym)?;
        let drmSetContextFlags = __library.get(b"drmSetContextFlags\0").map(|sym| *sym)?;
        let drmGetContextFlags = __library.get(b"drmGetContextFlags\0").map(|sym| *sym)?;
        let drmAddContextTag = __library.get(b"drmAddContextTag\0").map(|sym| *sym)?;
        let drmDelContextTag = __library.get(b"drmDelContextTag\0").map(|sym| *sym)?;
        let drmGetContextTag = __library.get(b"drmGetContextTag\0").map(|sym| *sym)?;
        let drmGetReservedContextList = __library
            .get(b"drmGetReservedContextList\0")
            .map(|sym| *sym)?;
        let drmFreeReservedContextList = __library
            .get(b"drmFreeReservedContextList\0")
            .map(|sym| *sym)?;
        let drmSwitchToContext = __library.get(b"drmSwitchToContext\0").map(|sym| *sym)?;
        let drmDestroyContext = __library.get(b"drmDestroyContext\0").map(|sym| *sym)?;
        let drmCreateDrawable = __library.get(b"drmCreateDrawable\0").map(|sym| *sym)?;
        let drmDestroyDrawable = __library.get(b"drmDestroyDrawable\0").map(|sym| *sym)?;
        let drmUpdateDrawableInfo = __library.get(b"drmUpdateDrawableInfo\0").map(|sym| *sym)?;
        let drmCtlInstHandler = __library.get(b"drmCtlInstHandler\0").map(|sym| *sym)?;
        let drmCtlUninstHandler = __library.get(b"drmCtlUninstHandler\0").map(|sym| *sym)?;
        let drmSetClientCap = __library.get(b"drmSetClientCap\0").map(|sym| *sym)?;
        let drmCrtcGetSequence = __library.get(b"drmCrtcGetSequence\0").map(|sym| *sym)?;
        let drmCrtcQueueSequence = __library.get(b"drmCrtcQueueSequence\0").map(|sym| *sym)?;
        let drmMap = __library.get(b"drmMap\0").map(|sym| *sym)?;
        let drmUnmap = __library.get(b"drmUnmap\0").map(|sym| *sym)?;
        let drmGetBufInfo = __library.get(b"drmGetBufInfo\0").map(|sym| *sym)?;
        let drmMapBufs = __library.get(b"drmMapBufs\0").map(|sym| *sym)?;
        let drmUnmapBufs = __library.get(b"drmUnmapBufs\0").map(|sym| *sym)?;
        let drmDMA = __library.get(b"drmDMA\0").map(|sym| *sym)?;
        let drmFreeBufs = __library.get(b"drmFreeBufs\0").map(|sym| *sym)?;
        let drmGetLock = __library.get(b"drmGetLock\0").map(|sym| *sym)?;
        let drmUnlock = __library.get(b"drmUnlock\0").map(|sym| *sym)?;
        let drmFinish = __library.get(b"drmFinish\0").map(|sym| *sym)?;
        let drmGetContextPrivateMapping = __library
            .get(b"drmGetContextPrivateMapping\0")
            .map(|sym| *sym)?;
        let drmAgpAcquire = __library.get(b"drmAgpAcquire\0").map(|sym| *sym)?;
        let drmAgpRelease = __library.get(b"drmAgpRelease\0").map(|sym| *sym)?;
        let drmAgpEnable = __library.get(b"drmAgpEnable\0").map(|sym| *sym)?;
        let drmAgpAlloc = __library.get(b"drmAgpAlloc\0").map(|sym| *sym)?;
        let drmAgpFree = __library.get(b"drmAgpFree\0").map(|sym| *sym)?;
        let drmAgpBind = __library.get(b"drmAgpBind\0").map(|sym| *sym)?;
        let drmAgpUnbind = __library.get(b"drmAgpUnbind\0").map(|sym| *sym)?;
        let drmAgpVersionMajor = __library.get(b"drmAgpVersionMajor\0").map(|sym| *sym)?;
        let drmAgpVersionMinor = __library.get(b"drmAgpVersionMinor\0").map(|sym| *sym)?;
        let drmAgpGetMode = __library.get(b"drmAgpGetMode\0").map(|sym| *sym)?;
        let drmAgpBase = __library.get(b"drmAgpBase\0").map(|sym| *sym)?;
        let drmAgpSize = __library.get(b"drmAgpSize\0").map(|sym| *sym)?;
        let drmAgpMemoryUsed = __library.get(b"drmAgpMemoryUsed\0").map(|sym| *sym)?;
        let drmAgpMemoryAvail = __library.get(b"drmAgpMemoryAvail\0").map(|sym| *sym)?;
        let drmAgpVendorId = __library.get(b"drmAgpVendorId\0").map(|sym| *sym)?;
        let drmAgpDeviceId = __library.get(b"drmAgpDeviceId\0").map(|sym| *sym)?;
        let drmScatterGatherAlloc = __library.get(b"drmScatterGatherAlloc\0").map(|sym| *sym)?;
        let drmScatterGatherFree = __library.get(b"drmScatterGatherFree\0").map(|sym| *sym)?;
        let drmWaitVBlank = __library.get(b"drmWaitVBlank\0").map(|sym| *sym)?;
        let drmSetServerInfo = __library.get(b"drmSetServerInfo\0").map(|sym| *sym)?;
        let drmError = __library.get(b"drmError\0").map(|sym| *sym)?;
        let drmMalloc = __library.get(b"drmMalloc\0").map(|sym| *sym)?;
        let drmFree = __library.get(b"drmFree\0").map(|sym| *sym)?;
        let drmHashCreate = __library.get(b"drmHashCreate\0").map(|sym| *sym)?;
        let drmHashDestroy = __library.get(b"drmHashDestroy\0").map(|sym| *sym)?;
        let drmHashLookup = __library.get(b"drmHashLookup\0").map(|sym| *sym)?;
        let drmHashInsert = __library.get(b"drmHashInsert\0").map(|sym| *sym)?;
        let drmHashDelete = __library.get(b"drmHashDelete\0").map(|sym| *sym)?;
        let drmHashFirst = __library.get(b"drmHashFirst\0").map(|sym| *sym)?;
        let drmHashNext = __library.get(b"drmHashNext\0").map(|sym| *sym)?;
        let drmRandomCreate = __library.get(b"drmRandomCreate\0").map(|sym| *sym)?;
        let drmRandomDestroy = __library.get(b"drmRandomDestroy\0").map(|sym| *sym)?;
        let drmRandom = __library.get(b"drmRandom\0").map(|sym| *sym)?;
        let drmRandomDouble = __library.get(b"drmRandomDouble\0").map(|sym| *sym)?;
        let drmSLCreate = __library.get(b"drmSLCreate\0").map(|sym| *sym)?;
        let drmSLDestroy = __library.get(b"drmSLDestroy\0").map(|sym| *sym)?;
        let drmSLLookup = __library.get(b"drmSLLookup\0").map(|sym| *sym)?;
        let drmSLInsert = __library.get(b"drmSLInsert\0").map(|sym| *sym)?;
        let drmSLDelete = __library.get(b"drmSLDelete\0").map(|sym| *sym)?;
        let drmSLNext = __library.get(b"drmSLNext\0").map(|sym| *sym)?;
        let drmSLFirst = __library.get(b"drmSLFirst\0").map(|sym| *sym)?;
        let drmSLDump = __library.get(b"drmSLDump\0").map(|sym| *sym)?;
        let drmSLLookupNeighbors = __library.get(b"drmSLLookupNeighbors\0").map(|sym| *sym)?;
        let drmOpenOnce = __library.get(b"drmOpenOnce\0").map(|sym| *sym)?;
        let drmOpenOnceWithType = __library.get(b"drmOpenOnceWithType\0").map(|sym| *sym)?;
        let drmCloseOnce = __library.get(b"drmCloseOnce\0").map(|sym| *sym)?;
        let drmMsg = __library.get(b"drmMsg\0").map(|sym| *sym)?;
        let drmSetMaster = __library.get(b"drmSetMaster\0").map(|sym| *sym)?;
        let drmDropMaster = __library.get(b"drmDropMaster\0").map(|sym| *sym)?;
        let drmIsMaster = __library.get(b"drmIsMaster\0").map(|sym| *sym)?;
        let drmHandleEvent = __library.get(b"drmHandleEvent\0").map(|sym| *sym)?;
        let drmGetDeviceNameFromFd = __library.get(b"drmGetDeviceNameFromFd\0").map(|sym| *sym)?;
        let drmGetDeviceNameFromFd2 = __library
            .get(b"drmGetDeviceNameFromFd2\0")
            .map(|sym| *sym)?;
        let drmGetNodeTypeFromFd = __library.get(b"drmGetNodeTypeFromFd\0").map(|sym| *sym)?;
        let drmPrimeHandleToFD = __library.get(b"drmPrimeHandleToFD\0").map(|sym| *sym)?;
        let drmPrimeFDToHandle = __library.get(b"drmPrimeFDToHandle\0").map(|sym| *sym)?;
        let drmCloseBufferHandle = __library.get(b"drmCloseBufferHandle\0").map(|sym| *sym)?;
        let drmGetPrimaryDeviceNameFromFd = __library
            .get(b"drmGetPrimaryDeviceNameFromFd\0")
            .map(|sym| *sym)?;
        let drmGetRenderDeviceNameFromFd = __library
            .get(b"drmGetRenderDeviceNameFromFd\0")
            .map(|sym| *sym)?;
        let drmGetDevice = __library.get(b"drmGetDevice\0").map(|sym| *sym)?;
        let drmFreeDevice = __library.get(b"drmFreeDevice\0").map(|sym| *sym)?;
        let drmGetDevices = __library.get(b"drmGetDevices\0").map(|sym| *sym)?;
        let drmFreeDevices = __library.get(b"drmFreeDevices\0").map(|sym| *sym)?;
        let drmGetDevice2 = __library.get(b"drmGetDevice2\0").map(|sym| *sym)?;
        let drmGetDevices2 = __library.get(b"drmGetDevices2\0").map(|sym| *sym)?;
        let drmGetDeviceFromDevId = __library.get(b"drmGetDeviceFromDevId\0").map(|sym| *sym)?;
        let drmGetNodeTypeFromDevId = __library
            .get(b"drmGetNodeTypeFromDevId\0")
            .map(|sym| *sym)?;
        let drmDevicesEqual = __library.get(b"drmDevicesEqual\0").map(|sym| *sym)?;
        let drmSyncobjCreate = __library.get(b"drmSyncobjCreate\0").map(|sym| *sym)?;
        let drmSyncobjDestroy = __library.get(b"drmSyncobjDestroy\0").map(|sym| *sym)?;
        let drmSyncobjHandleToFD = __library.get(b"drmSyncobjHandleToFD\0").map(|sym| *sym)?;
        let drmSyncobjFDToHandle = __library.get(b"drmSyncobjFDToHandle\0").map(|sym| *sym)?;
        let drmSyncobjImportSyncFile = __library
            .get(b"drmSyncobjImportSyncFile\0")
            .map(|sym| *sym)?;
        let drmSyncobjExportSyncFile = __library
            .get(b"drmSyncobjExportSyncFile\0")
            .map(|sym| *sym)?;
        let drmSyncobjWait = __library.get(b"drmSyncobjWait\0").map(|sym| *sym)?;
        let drmSyncobjReset = __library.get(b"drmSyncobjReset\0").map(|sym| *sym)?;
        let drmSyncobjSignal = __library.get(b"drmSyncobjSignal\0").map(|sym| *sym)?;
        let drmSyncobjTimelineSignal = __library
            .get(b"drmSyncobjTimelineSignal\0")
            .map(|sym| *sym)?;
        let drmSyncobjTimelineWait = __library.get(b"drmSyncobjTimelineWait\0").map(|sym| *sym)?;
        let drmSyncobjQuery = __library.get(b"drmSyncobjQuery\0").map(|sym| *sym)?;
        let drmSyncobjQuery2 = __library.get(b"drmSyncobjQuery2\0").map(|sym| *sym)?;
        let drmSyncobjTransfer = __library.get(b"drmSyncobjTransfer\0").map(|sym| *sym)?;
        let drmSyncobjEventfd = __library.get(b"drmSyncobjEventfd\0").map(|sym| *sym)?;
        let drmGetFormatModifierVendor = __library
            .get(b"drmGetFormatModifierVendor\0")
            .map(|sym| *sym)?;
        let drmGetFormatModifierName = __library
            .get(b"drmGetFormatModifierName\0")
            .map(|sym| *sym)?;
        let drmGetFormatName = __library.get(b"drmGetFormatName\0").map(|sym| *sym)?;
        let drmModeFreeModeInfo = __library.get(b"drmModeFreeModeInfo\0").map(|sym| *sym)?;
        let drmModeFreeResources = __library.get(b"drmModeFreeResources\0").map(|sym| *sym)?;
        let drmModeFreeFB = __library.get(b"drmModeFreeFB\0").map(|sym| *sym)?;
        let drmModeFreeFB2 = __library.get(b"drmModeFreeFB2\0").map(|sym| *sym)?;
        let drmModeFreeCrtc = __library.get(b"drmModeFreeCrtc\0").map(|sym| *sym)?;
        let drmModeFreeConnector = __library.get(b"drmModeFreeConnector\0").map(|sym| *sym)?;
        let drmModeFreeEncoder = __library.get(b"drmModeFreeEncoder\0").map(|sym| *sym)?;
        let drmModeFreePlane = __library.get(b"drmModeFreePlane\0").map(|sym| *sym)?;
        let drmModeFreePlaneResources = __library
            .get(b"drmModeFreePlaneResources\0")
            .map(|sym| *sym)?;
        let drmIsKMS = __library.get(b"drmIsKMS\0").map(|sym| *sym)?;
        let drmModeGetResources = __library.get(b"drmModeGetResources\0").map(|sym| *sym)?;
        let drmModeGetFB = __library.get(b"drmModeGetFB\0").map(|sym| *sym)?;
        let drmModeGetFB2 = __library.get(b"drmModeGetFB2\0").map(|sym| *sym)?;
        let drmModeAddFB = __library.get(b"drmModeAddFB\0").map(|sym| *sym)?;
        let drmModeAddFB2 = __library.get(b"drmModeAddFB2\0").map(|sym| *sym)?;
        let drmModeAddFB2WithModifiers = __library
            .get(b"drmModeAddFB2WithModifiers\0")
            .map(|sym| *sym)?;
        let drmModeRmFB = __library.get(b"drmModeRmFB\0").map(|sym| *sym)?;
        let drmModeCloseFB = __library.get(b"drmModeCloseFB\0").map(|sym| *sym)?;
        let drmModeDirtyFB = __library.get(b"drmModeDirtyFB\0").map(|sym| *sym)?;
        let drmModeGetCrtc = __library.get(b"drmModeGetCrtc\0").map(|sym| *sym)?;
        let drmModeSetCrtc = __library.get(b"drmModeSetCrtc\0").map(|sym| *sym)?;
        let drmModeSetCursor = __library.get(b"drmModeSetCursor\0").map(|sym| *sym)?;
        let drmModeSetCursor2 = __library.get(b"drmModeSetCursor2\0").map(|sym| *sym)?;
        let drmModeMoveCursor = __library.get(b"drmModeMoveCursor\0").map(|sym| *sym)?;
        let drmModeGetEncoder = __library.get(b"drmModeGetEncoder\0").map(|sym| *sym)?;
        let drmModeGetConnector = __library.get(b"drmModeGetConnector\0").map(|sym| *sym)?;
        let drmModeGetConnectorCurrent = __library
            .get(b"drmModeGetConnectorCurrent\0")
            .map(|sym| *sym)?;
        let drmModeConnectorGetPossibleCrtcs = __library
            .get(b"drmModeConnectorGetPossibleCrtcs\0")
            .map(|sym| *sym)?;
        let drmModeAttachMode = __library.get(b"drmModeAttachMode\0").map(|sym| *sym)?;
        let drmModeDetachMode = __library.get(b"drmModeDetachMode\0").map(|sym| *sym)?;
        let drmModeGetProperty = __library.get(b"drmModeGetProperty\0").map(|sym| *sym)?;
        let drmModeFreeProperty = __library.get(b"drmModeFreeProperty\0").map(|sym| *sym)?;
        let drmModeGetPropertyBlob = __library.get(b"drmModeGetPropertyBlob\0").map(|sym| *sym)?;
        let drmModeFormatModifierBlobIterNext = __library
            .get(b"drmModeFormatModifierBlobIterNext\0")
            .map(|sym| *sym)?;
        let drmModeFreePropertyBlob = __library
            .get(b"drmModeFreePropertyBlob\0")
            .map(|sym| *sym)?;
        let drmModeConnectorSetProperty = __library
            .get(b"drmModeConnectorSetProperty\0")
            .map(|sym| *sym)?;
        let drmCheckModesettingSupported = __library
            .get(b"drmCheckModesettingSupported\0")
            .map(|sym| *sym)?;
        let drmModeCrtcSetGamma = __library.get(b"drmModeCrtcSetGamma\0").map(|sym| *sym)?;
        let drmModeCrtcGetGamma = __library.get(b"drmModeCrtcGetGamma\0").map(|sym| *sym)?;
        let drmModePageFlip = __library.get(b"drmModePageFlip\0").map(|sym| *sym)?;
        let drmModePageFlipTarget = __library.get(b"drmModePageFlipTarget\0").map(|sym| *sym)?;
        let drmModeGetPlaneResources = __library
            .get(b"drmModeGetPlaneResources\0")
            .map(|sym| *sym)?;
        let drmModeGetPlane = __library.get(b"drmModeGetPlane\0").map(|sym| *sym)?;
        let drmModeSetPlane = __library.get(b"drmModeSetPlane\0").map(|sym| *sym)?;
        let drmModeObjectGetProperties = __library
            .get(b"drmModeObjectGetProperties\0")
            .map(|sym| *sym)?;
        let drmModeFreeObjectProperties = __library
            .get(b"drmModeFreeObjectProperties\0")
            .map(|sym| *sym)?;
        let drmModeObjectSetProperty = __library
            .get(b"drmModeObjectSetProperty\0")
            .map(|sym| *sym)?;
        let drmModeAtomicAlloc = __library.get(b"drmModeAtomicAlloc\0").map(|sym| *sym)?;
        let drmModeAtomicDuplicate = __library.get(b"drmModeAtomicDuplicate\0").map(|sym| *sym)?;
        let drmModeAtomicMerge = __library.get(b"drmModeAtomicMerge\0").map(|sym| *sym)?;
        let drmModeAtomicFree = __library.get(b"drmModeAtomicFree\0").map(|sym| *sym)?;
        let drmModeAtomicGetCursor = __library.get(b"drmModeAtomicGetCursor\0").map(|sym| *sym)?;
        let drmModeAtomicSetCursor = __library.get(b"drmModeAtomicSetCursor\0").map(|sym| *sym)?;
        let drmModeAtomicAddProperty = __library
            .get(b"drmModeAtomicAddProperty\0")
            .map(|sym| *sym)?;
        let drmModeAtomicCommit = __library.get(b"drmModeAtomicCommit\0").map(|sym| *sym)?;
        let drmModeCreatePropertyBlob = __library
            .get(b"drmModeCreatePropertyBlob\0")
            .map(|sym| *sym)?;
        let drmModeDestroyPropertyBlob = __library
            .get(b"drmModeDestroyPropertyBlob\0")
            .map(|sym| *sym)?;
        let drmModeCreateLease = __library.get(b"drmModeCreateLease\0").map(|sym| *sym)?;
        let drmModeListLessees = __library.get(b"drmModeListLessees\0").map(|sym| *sym)?;
        let drmModeGetLease = __library.get(b"drmModeGetLease\0").map(|sym| *sym)?;
        let drmModeRevokeLease = __library.get(b"drmModeRevokeLease\0").map(|sym| *sym)?;
        let drmModeGetConnectorTypeName = __library
            .get(b"drmModeGetConnectorTypeName\0")
            .map(|sym| *sym)?;
        let drmModeCreateDumbBuffer = __library
            .get(b"drmModeCreateDumbBuffer\0")
            .map(|sym| *sym)?;
        let drmModeDestroyDumbBuffer = __library
            .get(b"drmModeDestroyDumbBuffer\0")
            .map(|sym| *sym)?;
        let drmModeMapDumbBuffer = __library.get(b"drmModeMapDumbBuffer\0").map(|sym| *sym)?;
        Ok(DynLibDrm {
            __library,
            select,
            pselect,
            drmIoctl,
            drmGetHashTable,
            drmGetEntry,
            drmAvailable,
            drmOpen,
            drmOpenWithType,
            drmOpenControl,
            drmOpenRender,
            drmClose,
            drmGetVersion,
            drmGetLibVersion,
            drmGetCap,
            drmFreeVersion,
            drmGetMagic,
            drmGetBusid,
            drmGetInterruptFromBusID,
            drmGetMap,
            drmGetClient,
            drmGetStats,
            drmSetInterfaceVersion,
            drmCommandNone,
            drmCommandRead,
            drmCommandWrite,
            drmCommandWriteRead,
            drmFreeBusid,
            drmSetBusid,
            drmAuthMagic,
            drmAddMap,
            drmRmMap,
            drmAddContextPrivateMapping,
            drmAddBufs,
            drmMarkBufs,
            drmCreateContext,
            drmSetContextFlags,
            drmGetContextFlags,
            drmAddContextTag,
            drmDelContextTag,
            drmGetContextTag,
            drmGetReservedContextList,
            drmFreeReservedContextList,
            drmSwitchToContext,
            drmDestroyContext,
            drmCreateDrawable,
            drmDestroyDrawable,
            drmUpdateDrawableInfo,
            drmCtlInstHandler,
            drmCtlUninstHandler,
            drmSetClientCap,
            drmCrtcGetSequence,
            drmCrtcQueueSequence,
            drmMap,
            drmUnmap,
            drmGetBufInfo,
            drmMapBufs,
            drmUnmapBufs,
            drmDMA,
            drmFreeBufs,
            drmGetLock,
            drmUnlock,
            drmFinish,
            drmGetContextPrivateMapping,
            drmAgpAcquire,
            drmAgpRelease,
            drmAgpEnable,
            drmAgpAlloc,
            drmAgpFree,
            drmAgpBind,
            drmAgpUnbind,
            drmAgpVersionMajor,
            drmAgpVersionMinor,
            drmAgpGetMode,
            drmAgpBase,
            drmAgpSize,
            drmAgpMemoryUsed,
            drmAgpMemoryAvail,
            drmAgpVendorId,
            drmAgpDeviceId,
            drmScatterGatherAlloc,
            drmScatterGatherFree,
            drmWaitVBlank,
            drmSetServerInfo,
            drmError,
            drmMalloc,
            drmFree,
            drmHashCreate,
            drmHashDestroy,
            drmHashLookup,
            drmHashInsert,
            drmHashDelete,
            drmHashFirst,
            drmHashNext,
            drmRandomCreate,
            drmRandomDestroy,
            drmRandom,
            drmRandomDouble,
            drmSLCreate,
            drmSLDestroy,
            drmSLLookup,
            drmSLInsert,
            drmSLDelete,
            drmSLNext,
            drmSLFirst,
            drmSLDump,
            drmSLLookupNeighbors,
            drmOpenOnce,
            drmOpenOnceWithType,
            drmCloseOnce,
            drmMsg,
            drmSetMaster,
            drmDropMaster,
            drmIsMaster,
            drmHandleEvent,
            drmGetDeviceNameFromFd,
            drmGetDeviceNameFromFd2,
            drmGetNodeTypeFromFd,
            drmPrimeHandleToFD,
            drmPrimeFDToHandle,
            drmCloseBufferHandle,
            drmGetPrimaryDeviceNameFromFd,
            drmGetRenderDeviceNameFromFd,
            drmGetDevice,
            drmFreeDevice,
            drmGetDevices,
            drmFreeDevices,
            drmGetDevice2,
            drmGetDevices2,
            drmGetDeviceFromDevId,
            drmGetNodeTypeFromDevId,
            drmDevicesEqual,
            drmSyncobjCreate,
            drmSyncobjDestroy,
            drmSyncobjHandleToFD,
            drmSyncobjFDToHandle,
            drmSyncobjImportSyncFile,
            drmSyncobjExportSyncFile,
            drmSyncobjWait,
            drmSyncobjReset,
            drmSyncobjSignal,
            drmSyncobjTimelineSignal,
            drmSyncobjTimelineWait,
            drmSyncobjQuery,
            drmSyncobjQuery2,
            drmSyncobjTransfer,
            drmSyncobjEventfd,
            drmGetFormatModifierVendor,
            drmGetFormatModifierName,
            drmGetFormatName,
            drmModeFreeModeInfo,
            drmModeFreeResources,
            drmModeFreeFB,
            drmModeFreeFB2,
            drmModeFreeCrtc,
            drmModeFreeConnector,
            drmModeFreeEncoder,
            drmModeFreePlane,
            drmModeFreePlaneResources,
            drmIsKMS,
            drmModeGetResources,
            drmModeGetFB,
            drmModeGetFB2,
            drmModeAddFB,
            drmModeAddFB2,
            drmModeAddFB2WithModifiers,
            drmModeRmFB,
            drmModeCloseFB,
            drmModeDirtyFB,
            drmModeGetCrtc,
            drmModeSetCrtc,
            drmModeSetCursor,
            drmModeSetCursor2,
            drmModeMoveCursor,
            drmModeGetEncoder,
            drmModeGetConnector,
            drmModeGetConnectorCurrent,
            drmModeConnectorGetPossibleCrtcs,
            drmModeAttachMode,
            drmModeDetachMode,
            drmModeGetProperty,
            drmModeFreeProperty,
            drmModeGetPropertyBlob,
            drmModeFormatModifierBlobIterNext,
            drmModeFreePropertyBlob,
            drmModeConnectorSetProperty,
            drmCheckModesettingSupported,
            drmModeCrtcSetGamma,
            drmModeCrtcGetGamma,
            drmModePageFlip,
            drmModePageFlipTarget,
            drmModeGetPlaneResources,
            drmModeGetPlane,
            drmModeSetPlane,
            drmModeObjectGetProperties,
            drmModeFreeObjectProperties,
            drmModeObjectSetProperty,
            drmModeAtomicAlloc,
            drmModeAtomicDuplicate,
            drmModeAtomicMerge,
            drmModeAtomicFree,
            drmModeAtomicGetCursor,
            drmModeAtomicSetCursor,
            drmModeAtomicAddProperty,
            drmModeAtomicCommit,
            drmModeCreatePropertyBlob,
            drmModeDestroyPropertyBlob,
            drmModeCreateLease,
            drmModeListLessees,
            drmModeGetLease,
            drmModeRevokeLease,
            drmModeGetConnectorTypeName,
            drmModeCreateDumbBuffer,
            drmModeDestroyDumbBuffer,
            drmModeMapDumbBuffer,
        })
    }
    pub unsafe fn select(
        &self,
        __nfds: ::core::ffi::c_int,
        __readfds: *mut fd_set,
        __writefds: *mut fd_set,
        __exceptfds: *mut fd_set,
        __timeout: *mut timeval,
    ) -> ::core::ffi::c_int {
        (self.select)(__nfds, __readfds, __writefds, __exceptfds, __timeout)
    }
    pub unsafe fn pselect(
        &self,
        __nfds: ::core::ffi::c_int,
        __readfds: *mut fd_set,
        __writefds: *mut fd_set,
        __exceptfds: *mut fd_set,
        __timeout: *const timespec,
        __sigmask: *const __sigset_t,
    ) -> ::core::ffi::c_int {
        (self.pselect)(
            __nfds,
            __readfds,
            __writefds,
            __exceptfds,
            __timeout,
            __sigmask,
        )
    }
    pub unsafe fn drmIoctl(
        &self,
        fd: ::core::ffi::c_int,
        request: ::core::ffi::c_ulong,
        arg: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int {
        (self.drmIoctl)(fd, request, arg)
    }
    pub unsafe fn drmGetHashTable(&self) -> *mut ::core::ffi::c_void {
        (self.drmGetHashTable)()
    }
    pub unsafe fn drmGetEntry(&self, fd: ::core::ffi::c_int) -> *mut drmHashEntry {
        (self.drmGetEntry)(fd)
    }
    pub unsafe fn drmAvailable(&self) -> ::core::ffi::c_int {
        (self.drmAvailable)()
    }
    pub unsafe fn drmOpen(
        &self,
        name: *const ::core::ffi::c_char,
        busid: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int {
        (self.drmOpen)(name, busid)
    }
    pub unsafe fn drmOpenWithType(
        &self,
        name: *const ::core::ffi::c_char,
        busid: *const ::core::ffi::c_char,
        type_: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int {
        (self.drmOpenWithType)(name, busid, type_)
    }
    pub unsafe fn drmOpenControl(&self, minor: ::core::ffi::c_int) -> ::core::ffi::c_int {
        (self.drmOpenControl)(minor)
    }
    pub unsafe fn drmOpenRender(&self, minor: ::core::ffi::c_int) -> ::core::ffi::c_int {
        (self.drmOpenRender)(minor)
    }
    pub unsafe fn drmClose(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
        (self.drmClose)(fd)
    }
    pub unsafe fn drmGetVersion(&self, fd: ::core::ffi::c_int) -> drmVersionPtr {
        (self.drmGetVersion)(fd)
    }
    pub unsafe fn drmGetLibVersion(&self, fd: ::core::ffi::c_int) -> drmVersionPtr {
        (self.drmGetLibVersion)(fd)
    }
    pub unsafe fn drmGetCap(
        &self,
        fd: ::core::ffi::c_int,
        capability: u64,
        value: *mut u64,
    ) -> ::core::ffi::c_int {
        (self.drmGetCap)(fd, capability, value)
    }
    pub unsafe fn drmFreeVersion(&self, arg1: drmVersionPtr) {
        (self.drmFreeVersion)(arg1)
    }
    pub unsafe fn drmGetMagic(
        &self,
        fd: ::core::ffi::c_int,
        magic: *mut drm_magic_t,
    ) -> ::core::ffi::c_int {
        (self.drmGetMagic)(fd, magic)
    }
    pub unsafe fn drmGetBusid(&self, fd: ::core::ffi::c_int) -> *mut ::core::ffi::c_char {
        (self.drmGetBusid)(fd)
    }
    pub unsafe fn drmGetInterruptFromBusID(
        &self,
        fd: ::core::ffi::c_int,
        busnum: ::core::ffi::c_int,
        devnum: ::core::ffi::c_int,
        funcnum: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int {
        (self.drmGetInterruptFromBusID)(fd, busnum, devnum, funcnum)
    }
    pub unsafe fn drmGetMap(
        &self,
        fd: ::core::ffi::c_int,
        idx: ::core::ffi::c_int,
        offset: *mut drm_handle_t,
        size: *mut drmSize,
        type_: *mut drmMapType,
        flags: *mut drmMapFlags,
        handle: *mut drm_handle_t,
        mtrr: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int {
        (self.drmGetMap)(fd, idx, offset, size, type_, flags, handle, mtrr)
    }
    pub unsafe fn drmGetClient(
        &self,
        fd: ::core::ffi::c_int,
        idx: ::core::ffi::c_int,
        auth: *mut ::core::ffi::c_int,
        pid: *mut ::core::ffi::c_int,
        uid: *mut ::core::ffi::c_int,
        magic: *mut ::core::ffi::c_ulong,
        iocs: *mut ::core::ffi::c_ulong,
    ) -> ::core::ffi::c_int {
        (self.drmGetClient)(fd, idx, auth, pid, uid, magic, iocs)
    }
    pub unsafe fn drmGetStats(
        &self,
        fd: ::core::ffi::c_int,
        stats: *mut drmStatsT,
    ) -> ::core::ffi::c_int {
        (self.drmGetStats)(fd, stats)
    }
    pub unsafe fn drmSetInterfaceVersion(
        &self,
        fd: ::core::ffi::c_int,
        version: *mut drmSetVersion,
    ) -> ::core::ffi::c_int {
        (self.drmSetInterfaceVersion)(fd, version)
    }
    pub unsafe fn drmCommandNone(
        &self,
        fd: ::core::ffi::c_int,
        drmCommandIndex: ::core::ffi::c_ulong,
    ) -> ::core::ffi::c_int {
        (self.drmCommandNone)(fd, drmCommandIndex)
    }
    pub unsafe fn drmCommandRead(
        &self,
        fd: ::core::ffi::c_int,
        drmCommandIndex: ::core::ffi::c_ulong,
        data: *mut ::core::ffi::c_void,
        size: ::core::ffi::c_ulong,
    ) -> ::core::ffi::c_int {
        (self.drmCommandRead)(fd, drmCommandIndex, data, size)
    }
    pub unsafe fn drmCommandWrite(
        &self,
        fd: ::core::ffi::c_int,
        drmCommandIndex: ::core::ffi::c_ulong,
        data: *mut ::core::ffi::c_void,
        size: ::core::ffi::c_ulong,
    ) -> ::core::ffi::c_int {
        (self.drmCommandWrite)(fd, drmCommandIndex, data, size)
    }
    pub unsafe fn drmCommandWriteRead(
        &self,
        fd: ::core::ffi::c_int,
        drmCommandIndex: ::core::ffi::c_ulong,
        data: *mut ::core::ffi::c_void,
        size: ::core::ffi::c_ulong,
    ) -> ::core::ffi::c_int {
        (self.drmCommandWriteRead)(fd, drmCommandIndex, data, size)
    }
    pub unsafe fn drmFreeBusid(&self, busid: *const ::core::ffi::c_char) {
        (self.drmFreeBusid)(busid)
    }
    pub unsafe fn drmSetBusid(
        &self,
        fd: ::core::ffi::c_int,
        busid: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int {
        (self.drmSetBusid)(fd, busid)
    }
    pub unsafe fn drmAuthMagic(
        &self,
        fd: ::core::ffi::c_int,
        magic: drm_magic_t,
    ) -> ::core::ffi::c_int {
        (self.drmAuthMagic)(fd, magic)
    }
    pub unsafe fn drmAddMap(
        &self,
        fd: ::core::ffi::c_int,
        offset: drm_handle_t,
        size: drmSize,
        type_: drmMapType,
        flags: drmMapFlags,
        handle: *mut drm_handle_t,
    ) -> ::core::ffi::c_int {
        (self.drmAddMap)(fd, offset, size, type_, flags, handle)
    }
    pub unsafe fn drmRmMap(
        &self,
        fd: ::core::ffi::c_int,
        handle: drm_handle_t,
    ) -> ::core::ffi::c_int {
        (self.drmRmMap)(fd, handle)
    }
    pub unsafe fn drmAddContextPrivateMapping(
        &self,
        fd: ::core::ffi::c_int,
        ctx_id: drm_context_t,
        handle: drm_handle_t,
    ) -> ::core::ffi::c_int {
        (self.drmAddContextPrivateMapping)(fd, ctx_id, handle)
    }
    pub unsafe fn drmAddBufs(
        &self,
        fd: ::core::ffi::c_int,
        count: ::core::ffi::c_int,
        size: ::core::ffi::c_int,
        flags: drmBufDescFlags,
        agp_offset: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int {
        (self.drmAddBufs)(fd, count, size, flags, agp_offset)
    }
    pub unsafe fn drmMarkBufs(
        &self,
        fd: ::core::ffi::c_int,
        low: f64,
        high: f64,
    ) -> ::core::ffi::c_int {
        (self.drmMarkBufs)(fd, low, high)
    }
    pub unsafe fn drmCreateContext(
        &self,
        fd: ::core::ffi::c_int,
        handle: *mut drm_context_t,
    ) -> ::core::ffi::c_int {
        (self.drmCreateContext)(fd, handle)
    }
    pub unsafe fn drmSetContextFlags(
        &self,
        fd: ::core::ffi::c_int,
        context: drm_context_t,
        flags: drm_context_tFlags,
    ) -> ::core::ffi::c_int {
        (self.drmSetContextFlags)(fd, context, flags)
    }
    pub unsafe fn drmGetContextFlags(
        &self,
        fd: ::core::ffi::c_int,
        context: drm_context_t,
        flags: drm_context_tFlagsPtr,
    ) -> ::core::ffi::c_int {
        (self.drmGetContextFlags)(fd, context, flags)
    }
    pub unsafe fn drmAddContextTag(
        &self,
        fd: ::core::ffi::c_int,
        context: drm_context_t,
        tag: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int {
        (self.drmAddContextTag)(fd, context, tag)
    }
    pub unsafe fn drmDelContextTag(
        &self,
        fd: ::core::ffi::c_int,
        context: drm_context_t,
    ) -> ::core::ffi::c_int {
        (self.drmDelContextTag)(fd, context)
    }
    pub unsafe fn drmGetContextTag(
        &self,
        fd: ::core::ffi::c_int,
        context: drm_context_t,
    ) -> *mut ::core::ffi::c_void {
        (self.drmGetContextTag)(fd, context)
    }
    pub unsafe fn drmGetReservedContextList(
        &self,
        fd: ::core::ffi::c_int,
        count: *mut ::core::ffi::c_int,
    ) -> *mut drm_context_t {
        (self.drmGetReservedContextList)(fd, count)
    }
    pub unsafe fn drmFreeReservedContextList(&self, arg1: *mut drm_context_t) {
        (self.drmFreeReservedContextList)(arg1)
    }
    pub unsafe fn drmSwitchToContext(
        &self,
        fd: ::core::ffi::c_int,
        context: drm_context_t,
    ) -> ::core::ffi::c_int {
        (self.drmSwitchToContext)(fd, context)
    }
    pub unsafe fn drmDestroyContext(
        &self,
        fd: ::core::ffi::c_int,
        handle: drm_context_t,
    ) -> ::core::ffi::c_int {
        (self.drmDestroyContext)(fd, handle)
    }
    pub unsafe fn drmCreateDrawable(
        &self,
        fd: ::core::ffi::c_int,
        handle: *mut drm_drawable_t,
    ) -> ::core::ffi::c_int {
        (self.drmCreateDrawable)(fd, handle)
    }
    pub unsafe fn drmDestroyDrawable(
        &self,
        fd: ::core::ffi::c_int,
        handle: drm_drawable_t,
    ) -> ::core::ffi::c_int {
        (self.drmDestroyDrawable)(fd, handle)
    }
    pub unsafe fn drmUpdateDrawableInfo(
        &self,
        fd: ::core::ffi::c_int,
        handle: drm_drawable_t,
        type_: drm_drawable_info_type_t,
        num: ::core::ffi::c_uint,
        data: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int {
        (self.drmUpdateDrawableInfo)(fd, handle, type_, num, data)
    }
    pub unsafe fn drmCtlInstHandler(
        &self,
        fd: ::core::ffi::c_int,
        irq: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int {
        (self.drmCtlInstHandler)(fd, irq)
    }
    pub unsafe fn drmCtlUninstHandler(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
        (self.drmCtlUninstHandler)(fd)
    }
    pub unsafe fn drmSetClientCap(
        &self,
        fd: ::core::ffi::c_int,
        capability: u64,
        value: u64,
    ) -> ::core::ffi::c_int {
        (self.drmSetClientCap)(fd, capability, value)
    }
    pub unsafe fn drmCrtcGetSequence(
        &self,
        fd: ::core::ffi::c_int,
        crtcId: u32,
        sequence: *mut u64,
        ns: *mut u64,
    ) -> ::core::ffi::c_int {
        (self.drmCrtcGetSequence)(fd, crtcId, sequence, ns)
    }
    pub unsafe fn drmCrtcQueueSequence(
        &self,
        fd: ::core::ffi::c_int,
        crtcId: u32,
        flags: u32,
        sequence: u64,
        sequence_queued: *mut u64,
        user_data: u64,
    ) -> ::core::ffi::c_int {
        (self.drmCrtcQueueSequence)(fd, crtcId, flags, sequence, sequence_queued, user_data)
    }
    pub unsafe fn drmMap(
        &self,
        fd: ::core::ffi::c_int,
        handle: drm_handle_t,
        size: drmSize,
        address: drmAddressPtr,
    ) -> ::core::ffi::c_int {
        (self.drmMap)(fd, handle, size, address)
    }
    pub unsafe fn drmUnmap(&self, address: drmAddress, size: drmSize) -> ::core::ffi::c_int {
        (self.drmUnmap)(address, size)
    }
    pub unsafe fn drmGetBufInfo(&self, fd: ::core::ffi::c_int) -> drmBufInfoPtr {
        (self.drmGetBufInfo)(fd)
    }
    pub unsafe fn drmMapBufs(&self, fd: ::core::ffi::c_int) -> drmBufMapPtr {
        (self.drmMapBufs)(fd)
    }
    pub unsafe fn drmUnmapBufs(&self, bufs: drmBufMapPtr) -> ::core::ffi::c_int {
        (self.drmUnmapBufs)(bufs)
    }
    pub unsafe fn drmDMA(
        &self,
        fd: ::core::ffi::c_int,
        request: drmDMAReqPtr,
    ) -> ::core::ffi::c_int {
        (self.drmDMA)(fd, request)
    }
    pub unsafe fn drmFreeBufs(
        &self,
        fd: ::core::ffi::c_int,
        count: ::core::ffi::c_int,
        list: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int {
        (self.drmFreeBufs)(fd, count, list)
    }
    pub unsafe fn drmGetLock(
        &self,
        fd: ::core::ffi::c_int,
        context: drm_context_t,
        flags: drmLockFlags,
    ) -> ::core::ffi::c_int {
        (self.drmGetLock)(fd, context, flags)
    }
    pub unsafe fn drmUnlock(
        &self,
        fd: ::core::ffi::c_int,
        context: drm_context_t,
    ) -> ::core::ffi::c_int {
        (self.drmUnlock)(fd, context)
    }
    pub unsafe fn drmFinish(
        &self,
        fd: ::core::ffi::c_int,
        context: ::core::ffi::c_int,
        flags: drmLockFlags,
    ) -> ::core::ffi::c_int {
        (self.drmFinish)(fd, context, flags)
    }
    pub unsafe fn drmGetContextPrivateMapping(
        &self,
        fd: ::core::ffi::c_int,
        ctx_id: drm_context_t,
        handle: *mut drm_handle_t,
    ) -> ::core::ffi::c_int {
        (self.drmGetContextPrivateMapping)(fd, ctx_id, handle)
    }
    pub unsafe fn drmAgpAcquire(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
        (self.drmAgpAcquire)(fd)
    }
    pub unsafe fn drmAgpRelease(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
        (self.drmAgpRelease)(fd)
    }
    pub unsafe fn drmAgpEnable(
        &self,
        fd: ::core::ffi::c_int,
        mode: ::core::ffi::c_ulong,
    ) -> ::core::ffi::c_int {
        (self.drmAgpEnable)(fd, mode)
    }
    pub unsafe fn drmAgpAlloc(
        &self,
        fd: ::core::ffi::c_int,
        size: ::core::ffi::c_ulong,
        type_: ::core::ffi::c_ulong,
        address: *mut ::core::ffi::c_ulong,
        handle: *mut drm_handle_t,
    ) -> ::core::ffi::c_int {
        (self.drmAgpAlloc)(fd, size, type_, address, handle)
    }
    pub unsafe fn drmAgpFree(
        &self,
        fd: ::core::ffi::c_int,
        handle: drm_handle_t,
    ) -> ::core::ffi::c_int {
        (self.drmAgpFree)(fd, handle)
    }
    pub unsafe fn drmAgpBind(
        &self,
        fd: ::core::ffi::c_int,
        handle: drm_handle_t,
        offset: ::core::ffi::c_ulong,
    ) -> ::core::ffi::c_int {
        (self.drmAgpBind)(fd, handle, offset)
    }
    pub unsafe fn drmAgpUnbind(
        &self,
        fd: ::core::ffi::c_int,
        handle: drm_handle_t,
    ) -> ::core::ffi::c_int {
        (self.drmAgpUnbind)(fd, handle)
    }
    pub unsafe fn drmAgpVersionMajor(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
        (self.drmAgpVersionMajor)(fd)
    }
    pub unsafe fn drmAgpVersionMinor(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
        (self.drmAgpVersionMinor)(fd)
    }
    pub unsafe fn drmAgpGetMode(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_ulong {
        (self.drmAgpGetMode)(fd)
    }
    pub unsafe fn drmAgpBase(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_ulong {
        (self.drmAgpBase)(fd)
    }
    pub unsafe fn drmAgpSize(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_ulong {
        (self.drmAgpSize)(fd)
    }
    pub unsafe fn drmAgpMemoryUsed(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_ulong {
        (self.drmAgpMemoryUsed)(fd)
    }
    pub unsafe fn drmAgpMemoryAvail(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_ulong {
        (self.drmAgpMemoryAvail)(fd)
    }
    pub unsafe fn drmAgpVendorId(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_uint {
        (self.drmAgpVendorId)(fd)
    }
    pub unsafe fn drmAgpDeviceId(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_uint {
        (self.drmAgpDeviceId)(fd)
    }
    pub unsafe fn drmScatterGatherAlloc(
        &self,
        fd: ::core::ffi::c_int,
        size: ::core::ffi::c_ulong,
        handle: *mut drm_handle_t,
    ) -> ::core::ffi::c_int {
        (self.drmScatterGatherAlloc)(fd, size, handle)
    }
    pub unsafe fn drmScatterGatherFree(
        &self,
        fd: ::core::ffi::c_int,
        handle: drm_handle_t,
    ) -> ::core::ffi::c_int {
        (self.drmScatterGatherFree)(fd, handle)
    }
    pub unsafe fn drmWaitVBlank(
        &self,
        fd: ::core::ffi::c_int,
        vbl: drmVBlankPtr,
    ) -> ::core::ffi::c_int {
        (self.drmWaitVBlank)(fd, vbl)
    }
    pub unsafe fn drmSetServerInfo(&self, info: drmServerInfoPtr) {
        (self.drmSetServerInfo)(info)
    }
    pub unsafe fn drmError(
        &self,
        err: ::core::ffi::c_int,
        label: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int {
        (self.drmError)(err, label)
    }
    pub unsafe fn drmMalloc(&self, size: ::core::ffi::c_int) -> *mut ::core::ffi::c_void {
        (self.drmMalloc)(size)
    }
    pub unsafe fn drmFree(&self, pt: *mut ::core::ffi::c_void) {
        (self.drmFree)(pt)
    }
    pub unsafe fn drmHashCreate(&self) -> *mut ::core::ffi::c_void {
        (self.drmHashCreate)()
    }
    pub unsafe fn drmHashDestroy(&self, t: *mut ::core::ffi::c_void) -> ::core::ffi::c_int {
        (self.drmHashDestroy)(t)
    }
    pub unsafe fn drmHashLookup(
        &self,
        t: *mut ::core::ffi::c_void,
        key: ::core::ffi::c_ulong,
        value: *mut *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int {
        (self.drmHashLookup)(t, key, value)
    }
    pub unsafe fn drmHashInsert(
        &self,
        t: *mut ::core::ffi::c_void,
        key: ::core::ffi::c_ulong,
        value: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int {
        (self.drmHashInsert)(t, key, value)
    }
    pub unsafe fn drmHashDelete(
        &self,
        t: *mut ::core::ffi::c_void,
        key: ::core::ffi::c_ulong,
    ) -> ::core::ffi::c_int {
        (self.drmHashDelete)(t, key)
    }
    pub unsafe fn drmHashFirst(
        &self,
        t: *mut ::core::ffi::c_void,
        key: *mut ::core::ffi::c_ulong,
        value: *mut *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int {
        (self.drmHashFirst)(t, key, value)
    }
    pub unsafe fn drmHashNext(
        &self,
        t: *mut ::core::ffi::c_void,
        key: *mut ::core::ffi::c_ulong,
        value: *mut *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int {
        (self.drmHashNext)(t, key, value)
    }
    pub unsafe fn drmRandomCreate(&self, seed: ::core::ffi::c_ulong) -> *mut ::core::ffi::c_void {
        (self.drmRandomCreate)(seed)
    }
    pub unsafe fn drmRandomDestroy(&self, state: *mut ::core::ffi::c_void) -> ::core::ffi::c_int {
        (self.drmRandomDestroy)(state)
    }
    pub unsafe fn drmRandom(&self, state: *mut ::core::ffi::c_void) -> ::core::ffi::c_ulong {
        (self.drmRandom)(state)
    }
    pub unsafe fn drmRandomDouble(&self, state: *mut ::core::ffi::c_void) -> f64 {
        (self.drmRandomDouble)(state)
    }
    pub unsafe fn drmSLCreate(&self) -> *mut ::core::ffi::c_void {
        (self.drmSLCreate)()
    }
    pub unsafe fn drmSLDestroy(&self, l: *mut ::core::ffi::c_void) -> ::core::ffi::c_int {
        (self.drmSLDestroy)(l)
    }
    pub unsafe fn drmSLLookup(
        &self,
        l: *mut ::core::ffi::c_void,
        key: ::core::ffi::c_ulong,
        value: *mut *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int {
        (self.drmSLLookup)(l, key, value)
    }
    pub unsafe fn drmSLInsert(
        &self,
        l: *mut ::core::ffi::c_void,
        key: ::core::ffi::c_ulong,
        value: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int {
        (self.drmSLInsert)(l, key, value)
    }
    pub unsafe fn drmSLDelete(
        &self,
        l: *mut ::core::ffi::c_void,
        key: ::core::ffi::c_ulong,
    ) -> ::core::ffi::c_int {
        (self.drmSLDelete)(l, key)
    }
    pub unsafe fn drmSLNext(
        &self,
        l: *mut ::core::ffi::c_void,
        key: *mut ::core::ffi::c_ulong,
        value: *mut *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int {
        (self.drmSLNext)(l, key, value)
    }
    pub unsafe fn drmSLFirst(
        &self,
        l: *mut ::core::ffi::c_void,
        key: *mut ::core::ffi::c_ulong,
        value: *mut *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int {
        (self.drmSLFirst)(l, key, value)
    }
    pub unsafe fn drmSLDump(&self, l: *mut ::core::ffi::c_void) {
        (self.drmSLDump)(l)
    }
    pub unsafe fn drmSLLookupNeighbors(
        &self,
        l: *mut ::core::ffi::c_void,
        key: ::core::ffi::c_ulong,
        prev_key: *mut ::core::ffi::c_ulong,
        prev_value: *mut *mut ::core::ffi::c_void,
        next_key: *mut ::core::ffi::c_ulong,
        next_value: *mut *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int {
        (self.drmSLLookupNeighbors)(l, key, prev_key, prev_value, next_key, next_value)
    }
    pub unsafe fn drmOpenOnce(
        &self,
        unused: *mut ::core::ffi::c_void,
        BusID: *const ::core::ffi::c_char,
        newlyopened: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int {
        (self.drmOpenOnce)(unused, BusID, newlyopened)
    }
    pub unsafe fn drmOpenOnceWithType(
        &self,
        BusID: *const ::core::ffi::c_char,
        newlyopened: *mut ::core::ffi::c_int,
        type_: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int {
        (self.drmOpenOnceWithType)(BusID, newlyopened, type_)
    }
    pub unsafe fn drmCloseOnce(&self, fd: ::core::ffi::c_int) {
        (self.drmCloseOnce)(fd)
    }
    pub unsafe fn drmSetMaster(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
        (self.drmSetMaster)(fd)
    }
    pub unsafe fn drmDropMaster(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
        (self.drmDropMaster)(fd)
    }
    pub unsafe fn drmIsMaster(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
        (self.drmIsMaster)(fd)
    }
    pub unsafe fn drmHandleEvent(
        &self,
        fd: ::core::ffi::c_int,
        evctx: drmEventContextPtr,
    ) -> ::core::ffi::c_int {
        (self.drmHandleEvent)(fd, evctx)
    }
    pub unsafe fn drmGetDeviceNameFromFd(
        &self,
        fd: ::core::ffi::c_int,
    ) -> *mut ::core::ffi::c_char {
        (self.drmGetDeviceNameFromFd)(fd)
    }
    pub unsafe fn drmGetDeviceNameFromFd2(
        &self,
        fd: ::core::ffi::c_int,
    ) -> *mut ::core::ffi::c_char {
        (self.drmGetDeviceNameFromFd2)(fd)
    }
    pub unsafe fn drmGetNodeTypeFromFd(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
        (self.drmGetNodeTypeFromFd)(fd)
    }
    pub unsafe fn drmPrimeHandleToFD(
        &self,
        fd: ::core::ffi::c_int,
        handle: u32,
        flags: u32,
        prime_fd: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int {
        (self.drmPrimeHandleToFD)(fd, handle, flags, prime_fd)
    }
    pub unsafe fn drmPrimeFDToHandle(
        &self,
        fd: ::core::ffi::c_int,
        prime_fd: ::core::ffi::c_int,
        handle: *mut u32,
    ) -> ::core::ffi::c_int {
        (self.drmPrimeFDToHandle)(fd, prime_fd, handle)
    }
    pub unsafe fn drmCloseBufferHandle(
        &self,
        fd: ::core::ffi::c_int,
        handle: u32,
    ) -> ::core::ffi::c_int {
        (self.drmCloseBufferHandle)(fd, handle)
    }
    pub unsafe fn drmGetPrimaryDeviceNameFromFd(
        &self,
        fd: ::core::ffi::c_int,
    ) -> *mut ::core::ffi::c_char {
        (self.drmGetPrimaryDeviceNameFromFd)(fd)
    }
    pub unsafe fn drmGetRenderDeviceNameFromFd(
        &self,
        fd: ::core::ffi::c_int,
    ) -> *mut ::core::ffi::c_char {
        (self.drmGetRenderDeviceNameFromFd)(fd)
    }
    pub unsafe fn drmGetDevice(
        &self,
        fd: ::core::ffi::c_int,
        device: *mut drmDevicePtr,
    ) -> ::core::ffi::c_int {
        (self.drmGetDevice)(fd, device)
    }
    pub unsafe fn drmFreeDevice(&self, device: *mut drmDevicePtr) {
        (self.drmFreeDevice)(device)
    }
    pub unsafe fn drmGetDevices(
        &self,
        devices: *mut drmDevicePtr,
        max_devices: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int {
        (self.drmGetDevices)(devices, max_devices)
    }
    pub unsafe fn drmFreeDevices(&self, devices: *mut drmDevicePtr, count: ::core::ffi::c_int) {
        (self.drmFreeDevices)(devices, count)
    }
    pub unsafe fn drmGetDevice2(
        &self,
        fd: ::core::ffi::c_int,
        flags: u32,
        device: *mut drmDevicePtr,
    ) -> ::core::ffi::c_int {
        (self.drmGetDevice2)(fd, flags, device)
    }
    pub unsafe fn drmGetDevices2(
        &self,
        flags: u32,
        devices: *mut drmDevicePtr,
        max_devices: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int {
        (self.drmGetDevices2)(flags, devices, max_devices)
    }
    pub unsafe fn drmGetDeviceFromDevId(
        &self,
        dev_id: dev_t,
        flags: u32,
        device: *mut drmDevicePtr,
    ) -> ::core::ffi::c_int {
        (self.drmGetDeviceFromDevId)(dev_id, flags, device)
    }
    pub unsafe fn drmGetNodeTypeFromDevId(&self, devid: dev_t) -> ::core::ffi::c_int {
        (self.drmGetNodeTypeFromDevId)(devid)
    }
    pub unsafe fn drmDevicesEqual(&self, a: drmDevicePtr, b: drmDevicePtr) -> ::core::ffi::c_int {
        (self.drmDevicesEqual)(a, b)
    }
    pub unsafe fn drmSyncobjCreate(
        &self,
        fd: ::core::ffi::c_int,
        flags: u32,
        handle: *mut u32,
    ) -> ::core::ffi::c_int {
        (self.drmSyncobjCreate)(fd, flags, handle)
    }
    pub unsafe fn drmSyncobjDestroy(
        &self,
        fd: ::core::ffi::c_int,
        handle: u32,
    ) -> ::core::ffi::c_int {
        (self.drmSyncobjDestroy)(fd, handle)
    }
    pub unsafe fn drmSyncobjHandleToFD(
        &self,
        fd: ::core::ffi::c_int,
        handle: u32,
        obj_fd: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int {
        (self.drmSyncobjHandleToFD)(fd, handle, obj_fd)
    }
    pub unsafe fn drmSyncobjFDToHandle(
        &self,
        fd: ::core::ffi::c_int,
        obj_fd: ::core::ffi::c_int,
        handle: *mut u32,
    ) -> ::core::ffi::c_int {
        (self.drmSyncobjFDToHandle)(fd, obj_fd, handle)
    }
    pub unsafe fn drmSyncobjImportSyncFile(
        &self,
        fd: ::core::ffi::c_int,
        handle: u32,
        sync_file_fd: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int {
        (self.drmSyncobjImportSyncFile)(fd, handle, sync_file_fd)
    }
    pub unsafe fn drmSyncobjExportSyncFile(
        &self,
        fd: ::core::ffi::c_int,
        handle: u32,
        sync_file_fd: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int {
        (self.drmSyncobjExportSyncFile)(fd, handle, sync_file_fd)
    }
    pub unsafe fn drmSyncobjWait(
        &self,
        fd: ::core::ffi::c_int,
        handles: *mut u32,
        num_handles: ::core::ffi::c_uint,
        timeout_nsec: i64,
        flags: ::core::ffi::c_uint,
        first_signaled: *mut u32,
    ) -> ::core::ffi::c_int {
        (self.drmSyncobjWait)(
            fd,
            handles,
            num_handles,
            timeout_nsec,
            flags,
            first_signaled,
        )
    }
    pub unsafe fn drmSyncobjReset(
        &self,
        fd: ::core::ffi::c_int,
        handles: *const u32,
        handle_count: u32,
    ) -> ::core::ffi::c_int {
        (self.drmSyncobjReset)(fd, handles, handle_count)
    }
    pub unsafe fn drmSyncobjSignal(
        &self,
        fd: ::core::ffi::c_int,
        handles: *const u32,
        handle_count: u32,
    ) -> ::core::ffi::c_int {
        (self.drmSyncobjSignal)(fd, handles, handle_count)
    }
    pub unsafe fn drmSyncobjTimelineSignal(
        &self,
        fd: ::core::ffi::c_int,
        handles: *const u32,
        points: *mut u64,
        handle_count: u32,
    ) -> ::core::ffi::c_int {
        (self.drmSyncobjTimelineSignal)(fd, handles, points, handle_count)
    }
    pub unsafe fn drmSyncobjTimelineWait(
        &self,
        fd: ::core::ffi::c_int,
        handles: *mut u32,
        points: *mut u64,
        num_handles: ::core::ffi::c_uint,
        timeout_nsec: i64,
        flags: ::core::ffi::c_uint,
        first_signaled: *mut u32,
    ) -> ::core::ffi::c_int {
        (self.drmSyncobjTimelineWait)(
            fd,
            handles,
            points,
            num_handles,
            timeout_nsec,
            flags,
            first_signaled,
        )
    }
    pub unsafe fn drmSyncobjQuery(
        &self,
        fd: ::core::ffi::c_int,
        handles: *mut u32,
        points: *mut u64,
        handle_count: u32,
    ) -> ::core::ffi::c_int {
        (self.drmSyncobjQuery)(fd, handles, points, handle_count)
    }
    pub unsafe fn drmSyncobjQuery2(
        &self,
        fd: ::core::ffi::c_int,
        handles: *mut u32,
        points: *mut u64,
        handle_count: u32,
        flags: u32,
    ) -> ::core::ffi::c_int {
        (self.drmSyncobjQuery2)(fd, handles, points, handle_count, flags)
    }
    pub unsafe fn drmSyncobjTransfer(
        &self,
        fd: ::core::ffi::c_int,
        dst_handle: u32,
        dst_point: u64,
        src_handle: u32,
        src_point: u64,
        flags: u32,
    ) -> ::core::ffi::c_int {
        (self.drmSyncobjTransfer)(fd, dst_handle, dst_point, src_handle, src_point, flags)
    }
    pub unsafe fn drmSyncobjEventfd(
        &self,
        fd: ::core::ffi::c_int,
        handle: u32,
        point: u64,
        ev_fd: ::core::ffi::c_int,
        flags: u32,
    ) -> ::core::ffi::c_int {
        (self.drmSyncobjEventfd)(fd, handle, point, ev_fd, flags)
    }
    pub unsafe fn drmGetFormatModifierVendor(&self, modifier: u64) -> *mut ::core::ffi::c_char {
        (self.drmGetFormatModifierVendor)(modifier)
    }
    pub unsafe fn drmGetFormatModifierName(&self, modifier: u64) -> *mut ::core::ffi::c_char {
        (self.drmGetFormatModifierName)(modifier)
    }
    pub unsafe fn drmGetFormatName(&self, format: u32) -> *mut ::core::ffi::c_char {
        (self.drmGetFormatName)(format)
    }
    pub unsafe fn drmModeFreeModeInfo(&self, ptr: drmModeModeInfoPtr) {
        (self.drmModeFreeModeInfo)(ptr)
    }
    pub unsafe fn drmModeFreeResources(&self, ptr: drmModeResPtr) {
        (self.drmModeFreeResources)(ptr)
    }
    pub unsafe fn drmModeFreeFB(&self, ptr: drmModeFBPtr) {
        (self.drmModeFreeFB)(ptr)
    }
    pub unsafe fn drmModeFreeFB2(&self, ptr: drmModeFB2Ptr) {
        (self.drmModeFreeFB2)(ptr)
    }
    pub unsafe fn drmModeFreeCrtc(&self, ptr: drmModeCrtcPtr) {
        (self.drmModeFreeCrtc)(ptr)
    }
    pub unsafe fn drmModeFreeConnector(&self, ptr: drmModeConnectorPtr) {
        (self.drmModeFreeConnector)(ptr)
    }
    pub unsafe fn drmModeFreeEncoder(&self, ptr: drmModeEncoderPtr) {
        (self.drmModeFreeEncoder)(ptr)
    }
    pub unsafe fn drmModeFreePlane(&self, ptr: drmModePlanePtr) {
        (self.drmModeFreePlane)(ptr)
    }
    pub unsafe fn drmModeFreePlaneResources(&self, ptr: drmModePlaneResPtr) {
        (self.drmModeFreePlaneResources)(ptr)
    }
    pub unsafe fn drmIsKMS(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
        (self.drmIsKMS)(fd)
    }
    pub unsafe fn drmModeGetResources(&self, fd: ::core::ffi::c_int) -> drmModeResPtr {
        (self.drmModeGetResources)(fd)
    }
    pub unsafe fn drmModeGetFB(&self, fd: ::core::ffi::c_int, bufferId: u32) -> drmModeFBPtr {
        (self.drmModeGetFB)(fd, bufferId)
    }
    pub unsafe fn drmModeGetFB2(&self, fd: ::core::ffi::c_int, bufferId: u32) -> drmModeFB2Ptr {
        (self.drmModeGetFB2)(fd, bufferId)
    }
    pub unsafe fn drmModeAddFB(
        &self,
        fd: ::core::ffi::c_int,
        width: u32,
        height: u32,
        depth: u8,
        bpp: u8,
        pitch: u32,
        bo_handle: u32,
        buf_id: *mut u32,
    ) -> ::core::ffi::c_int {
        (self.drmModeAddFB)(fd, width, height, depth, bpp, pitch, bo_handle, buf_id)
    }
    pub unsafe fn drmModeAddFB2(
        &self,
        fd: ::core::ffi::c_int,
        width: u32,
        height: u32,
        pixel_format: u32,
        bo_handles: *const u32,
        pitches: *const u32,
        offsets: *const u32,
        buf_id: *mut u32,
        flags: u32,
    ) -> ::core::ffi::c_int {
        (self.drmModeAddFB2)(
            fd,
            width,
            height,
            pixel_format,
            bo_handles,
            pitches,
            offsets,
            buf_id,
            flags,
        )
    }
    pub unsafe fn drmModeAddFB2WithModifiers(
        &self,
        fd: ::core::ffi::c_int,
        width: u32,
        height: u32,
        pixel_format: u32,
        bo_handles: *const u32,
        pitches: *const u32,
        offsets: *const u32,
        modifier: *const u64,
        buf_id: *mut u32,
        flags: u32,
    ) -> ::core::ffi::c_int {
        (self.drmModeAddFB2WithModifiers)(
            fd,
            width,
            height,
            pixel_format,
            bo_handles,
            pitches,
            offsets,
            modifier,
            buf_id,
            flags,
        )
    }
    pub unsafe fn drmModeRmFB(&self, fd: ::core::ffi::c_int, bufferId: u32) -> ::core::ffi::c_int {
        (self.drmModeRmFB)(fd, bufferId)
    }
    pub unsafe fn drmModeCloseFB(
        &self,
        fd: ::core::ffi::c_int,
        buffer_id: u32,
    ) -> ::core::ffi::c_int {
        (self.drmModeCloseFB)(fd, buffer_id)
    }
    pub unsafe fn drmModeDirtyFB(
        &self,
        fd: ::core::ffi::c_int,
        bufferId: u32,
        clips: drmModeClipPtr,
        num_clips: u32,
    ) -> ::core::ffi::c_int {
        (self.drmModeDirtyFB)(fd, bufferId, clips, num_clips)
    }
    pub unsafe fn drmModeGetCrtc(&self, fd: ::core::ffi::c_int, crtcId: u32) -> drmModeCrtcPtr {
        (self.drmModeGetCrtc)(fd, crtcId)
    }
    pub unsafe fn drmModeSetCrtc(
        &self,
        fd: ::core::ffi::c_int,
        crtcId: u32,
        bufferId: u32,
        x: u32,
        y: u32,
        connectors: *mut u32,
        count: ::core::ffi::c_int,
        mode: drmModeModeInfoPtr,
    ) -> ::core::ffi::c_int {
        (self.drmModeSetCrtc)(fd, crtcId, bufferId, x, y, connectors, count, mode)
    }
    pub unsafe fn drmModeSetCursor(
        &self,
        fd: ::core::ffi::c_int,
        crtcId: u32,
        bo_handle: u32,
        width: u32,
        height: u32,
    ) -> ::core::ffi::c_int {
        (self.drmModeSetCursor)(fd, crtcId, bo_handle, width, height)
    }
    pub unsafe fn drmModeSetCursor2(
        &self,
        fd: ::core::ffi::c_int,
        crtcId: u32,
        bo_handle: u32,
        width: u32,
        height: u32,
        hot_x: i32,
        hot_y: i32,
    ) -> ::core::ffi::c_int {
        (self.drmModeSetCursor2)(fd, crtcId, bo_handle, width, height, hot_x, hot_y)
    }
    pub unsafe fn drmModeMoveCursor(
        &self,
        fd: ::core::ffi::c_int,
        crtcId: u32,
        x: ::core::ffi::c_int,
        y: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int {
        (self.drmModeMoveCursor)(fd, crtcId, x, y)
    }
    pub unsafe fn drmModeGetEncoder(
        &self,
        fd: ::core::ffi::c_int,
        encoder_id: u32,
    ) -> drmModeEncoderPtr {
        (self.drmModeGetEncoder)(fd, encoder_id)
    }
    pub unsafe fn drmModeGetConnector(
        &self,
        fd: ::core::ffi::c_int,
        connectorId: u32,
    ) -> drmModeConnectorPtr {
        (self.drmModeGetConnector)(fd, connectorId)
    }
    pub unsafe fn drmModeGetConnectorCurrent(
        &self,
        fd: ::core::ffi::c_int,
        connector_id: u32,
    ) -> drmModeConnectorPtr {
        (self.drmModeGetConnectorCurrent)(fd, connector_id)
    }
    pub unsafe fn drmModeConnectorGetPossibleCrtcs(
        &self,
        fd: ::core::ffi::c_int,
        connector: *const drmModeConnector,
    ) -> u32 {
        (self.drmModeConnectorGetPossibleCrtcs)(fd, connector)
    }
    pub unsafe fn drmModeAttachMode(
        &self,
        fd: ::core::ffi::c_int,
        connectorId: u32,
        mode_info: drmModeModeInfoPtr,
    ) -> ::core::ffi::c_int {
        (self.drmModeAttachMode)(fd, connectorId, mode_info)
    }
    pub unsafe fn drmModeDetachMode(
        &self,
        fd: ::core::ffi::c_int,
        connectorId: u32,
        mode_info: drmModeModeInfoPtr,
    ) -> ::core::ffi::c_int {
        (self.drmModeDetachMode)(fd, connectorId, mode_info)
    }
    pub unsafe fn drmModeGetProperty(
        &self,
        fd: ::core::ffi::c_int,
        propertyId: u32,
    ) -> drmModePropertyPtr {
        (self.drmModeGetProperty)(fd, propertyId)
    }
    pub unsafe fn drmModeFreeProperty(&self, ptr: drmModePropertyPtr) {
        (self.drmModeFreeProperty)(ptr)
    }
    pub unsafe fn drmModeGetPropertyBlob(
        &self,
        fd: ::core::ffi::c_int,
        blob_id: u32,
    ) -> drmModePropertyBlobPtr {
        (self.drmModeGetPropertyBlob)(fd, blob_id)
    }
    pub unsafe fn drmModeFormatModifierBlobIterNext(
        &self,
        blob: *const drmModePropertyBlobRes,
        iter: *mut drmModeFormatModifierIterator,
    ) -> bool {
        (self.drmModeFormatModifierBlobIterNext)(blob, iter)
    }
    pub unsafe fn drmModeFreePropertyBlob(&self, ptr: drmModePropertyBlobPtr) {
        (self.drmModeFreePropertyBlob)(ptr)
    }
    pub unsafe fn drmModeConnectorSetProperty(
        &self,
        fd: ::core::ffi::c_int,
        connector_id: u32,
        property_id: u32,
        value: u64,
    ) -> ::core::ffi::c_int {
        (self.drmModeConnectorSetProperty)(fd, connector_id, property_id, value)
    }
    pub unsafe fn drmCheckModesettingSupported(
        &self,
        busid: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int {
        (self.drmCheckModesettingSupported)(busid)
    }
    pub unsafe fn drmModeCrtcSetGamma(
        &self,
        fd: ::core::ffi::c_int,
        crtc_id: u32,
        size: u32,
        red: *const u16,
        green: *const u16,
        blue: *const u16,
    ) -> ::core::ffi::c_int {
        (self.drmModeCrtcSetGamma)(fd, crtc_id, size, red, green, blue)
    }
    pub unsafe fn drmModeCrtcGetGamma(
        &self,
        fd: ::core::ffi::c_int,
        crtc_id: u32,
        size: u32,
        red: *mut u16,
        green: *mut u16,
        blue: *mut u16,
    ) -> ::core::ffi::c_int {
        (self.drmModeCrtcGetGamma)(fd, crtc_id, size, red, green, blue)
    }
    pub unsafe fn drmModePageFlip(
        &self,
        fd: ::core::ffi::c_int,
        crtc_id: u32,
        fb_id: u32,
        flags: u32,
        user_data: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int {
        (self.drmModePageFlip)(fd, crtc_id, fb_id, flags, user_data)
    }
    pub unsafe fn drmModePageFlipTarget(
        &self,
        fd: ::core::ffi::c_int,
        crtc_id: u32,
        fb_id: u32,
        flags: u32,
        user_data: *mut ::core::ffi::c_void,
        target_vblank: u32,
    ) -> ::core::ffi::c_int {
        (self.drmModePageFlipTarget)(fd, crtc_id, fb_id, flags, user_data, target_vblank)
    }
    pub unsafe fn drmModeGetPlaneResources(&self, fd: ::core::ffi::c_int) -> drmModePlaneResPtr {
        (self.drmModeGetPlaneResources)(fd)
    }
    pub unsafe fn drmModeGetPlane(&self, fd: ::core::ffi::c_int, plane_id: u32) -> drmModePlanePtr {
        (self.drmModeGetPlane)(fd, plane_id)
    }
    pub unsafe fn drmModeSetPlane(
        &self,
        fd: ::core::ffi::c_int,
        plane_id: u32,
        crtc_id: u32,
        fb_id: u32,
        flags: u32,
        crtc_x: i32,
        crtc_y: i32,
        crtc_w: u32,
        crtc_h: u32,
        src_x: u32,
        src_y: u32,
        src_w: u32,
        src_h: u32,
    ) -> ::core::ffi::c_int {
        (self.drmModeSetPlane)(
            fd, plane_id, crtc_id, fb_id, flags, crtc_x, crtc_y, crtc_w, crtc_h, src_x, src_y,
            src_w, src_h,
        )
    }
    pub unsafe fn drmModeObjectGetProperties(
        &self,
        fd: ::core::ffi::c_int,
        object_id: u32,
        object_type: u32,
    ) -> drmModeObjectPropertiesPtr {
        (self.drmModeObjectGetProperties)(fd, object_id, object_type)
    }
    pub unsafe fn drmModeFreeObjectProperties(&self, ptr: drmModeObjectPropertiesPtr) {
        (self.drmModeFreeObjectProperties)(ptr)
    }
    pub unsafe fn drmModeObjectSetProperty(
        &self,
        fd: ::core::ffi::c_int,
        object_id: u32,
        object_type: u32,
        property_id: u32,
        value: u64,
    ) -> ::core::ffi::c_int {
        (self.drmModeObjectSetProperty)(fd, object_id, object_type, property_id, value)
    }
    pub unsafe fn drmModeAtomicAlloc(&self) -> drmModeAtomicReqPtr {
        (self.drmModeAtomicAlloc)()
    }
    pub unsafe fn drmModeAtomicDuplicate(&self, req: drmModeAtomicReqPtr) -> drmModeAtomicReqPtr {
        (self.drmModeAtomicDuplicate)(req)
    }
    pub unsafe fn drmModeAtomicMerge(
        &self,
        base: drmModeAtomicReqPtr,
        augment: drmModeAtomicReqPtr,
    ) -> ::core::ffi::c_int {
        (self.drmModeAtomicMerge)(base, augment)
    }
    pub unsafe fn drmModeAtomicFree(&self, req: drmModeAtomicReqPtr) {
        (self.drmModeAtomicFree)(req)
    }
    pub unsafe fn drmModeAtomicGetCursor(&self, req: drmModeAtomicReqPtr) -> ::core::ffi::c_int {
        (self.drmModeAtomicGetCursor)(req)
    }
    pub unsafe fn drmModeAtomicSetCursor(
        &self,
        req: drmModeAtomicReqPtr,
        cursor: ::core::ffi::c_int,
    ) {
        (self.drmModeAtomicSetCursor)(req, cursor)
    }
    pub unsafe fn drmModeAtomicAddProperty(
        &self,
        req: drmModeAtomicReqPtr,
        object_id: u32,
        property_id: u32,
        value: u64,
    ) -> ::core::ffi::c_int {
        (self.drmModeAtomicAddProperty)(req, object_id, property_id, value)
    }
    pub unsafe fn drmModeAtomicCommit(
        &self,
        fd: ::core::ffi::c_int,
        req: drmModeAtomicReqPtr,
        flags: u32,
        user_data: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int {
        (self.drmModeAtomicCommit)(fd, req, flags, user_data)
    }
    pub unsafe fn drmModeCreatePropertyBlob(
        &self,
        fd: ::core::ffi::c_int,
        data: *const ::core::ffi::c_void,
        size: usize,
        id: *mut u32,
    ) -> ::core::ffi::c_int {
        (self.drmModeCreatePropertyBlob)(fd, data, size, id)
    }
    pub unsafe fn drmModeDestroyPropertyBlob(
        &self,
        fd: ::core::ffi::c_int,
        id: u32,
    ) -> ::core::ffi::c_int {
        (self.drmModeDestroyPropertyBlob)(fd, id)
    }
    pub unsafe fn drmModeCreateLease(
        &self,
        fd: ::core::ffi::c_int,
        objects: *const u32,
        num_objects: ::core::ffi::c_int,
        flags: ::core::ffi::c_int,
        lessee_id: *mut u32,
    ) -> ::core::ffi::c_int {
        (self.drmModeCreateLease)(fd, objects, num_objects, flags, lessee_id)
    }
    pub unsafe fn drmModeListLessees(&self, fd: ::core::ffi::c_int) -> drmModeLesseeListPtr {
        (self.drmModeListLessees)(fd)
    }
    pub unsafe fn drmModeGetLease(&self, fd: ::core::ffi::c_int) -> drmModeObjectListPtr {
        (self.drmModeGetLease)(fd)
    }
    pub unsafe fn drmModeRevokeLease(
        &self,
        fd: ::core::ffi::c_int,
        lessee_id: u32,
    ) -> ::core::ffi::c_int {
        (self.drmModeRevokeLease)(fd, lessee_id)
    }
    pub unsafe fn drmModeGetConnectorTypeName(
        &self,
        connector_type: u32,
    ) -> *const ::core::ffi::c_char {
        (self.drmModeGetConnectorTypeName)(connector_type)
    }
    pub unsafe fn drmModeCreateDumbBuffer(
        &self,
        fd: ::core::ffi::c_int,
        width: u32,
        height: u32,
        bpp: u32,
        flags: u32,
        handle: *mut u32,
        pitch: *mut u32,
        size: *mut u64,
    ) -> ::core::ffi::c_int {
        (self.drmModeCreateDumbBuffer)(fd, width, height, bpp, flags, handle, pitch, size)
    }
    pub unsafe fn drmModeDestroyDumbBuffer(
        &self,
        fd: ::core::ffi::c_int,
        handle: u32,
    ) -> ::core::ffi::c_int {
        (self.drmModeDestroyDumbBuffer)(fd, handle)
    }
    pub unsafe fn drmModeMapDumbBuffer(
        &self,
        fd: ::core::ffi::c_int,
        handle: u32,
        offset: *mut u64,
    ) -> ::core::ffi::c_int {
        (self.drmModeMapDumbBuffer)(fd, handle, offset)
    }
}
