#[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] {
unsafe { ::core::slice::from_raw_parts(self.as_ptr(), len) }
}
#[inline]
pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
unsafe { ::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 _SYS_TYPES_H: u32 = 1;
pub const _FEATURES_H: u32 = 1;
pub const _DEFAULT_SOURCE: u32 = 1;
pub const __GLIBC_USE_ISOC2Y: u32 = 0;
pub const __GLIBC_USE_ISOC23: 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_TIME_BITS64: u32 = 1;
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 __GLIBC_USE_C23_STRTOL: 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 = 42;
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_C23: 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_C23: 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 _BITS_STDINT_LEAST_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_FD_TO_HANDLE_FLAGS_TIMELINE: u32 = 2;
pub const DRM_SYNCOBJ_HANDLE_TO_FD_FLAGS_EXPORT_SYNC_FILE: u32 = 1;
pub const DRM_SYNCOBJ_HANDLE_TO_FD_FLAGS_TIMELINE: u32 = 2;
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_CLIENT_NAME_MAX_LEN: u32 = 64;
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_BUS_FAUX: u32 = 4;
pub const DRM_PLATFORM_DEVICE_NAME_LEN: u32 = 512;
pub const DRM_HOST1X_DEVICE_NAME_LEN: u32 = 512;
pub const DRM_FAUX_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 __gnuc_va_list = __builtin_va_list;
pub type 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],
}
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],
}
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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct timespec {
pub tv_sec: __time_t,
pub tv_nsec: __syscall_slong_t,
}
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],
}
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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __pthread_internal_list {
pub __prev: *mut __pthread_internal_list,
pub __next: *mut __pthread_internal_list,
}
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,
}
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,
}
#[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,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct __pthread_cond_s {
pub __wseq: __atomic_wide_counter,
pub __g1_start: __atomic_wide_counter,
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],
pub __unused_initialized_1: ::core::ffi::c_uint,
pub __unused_initialized_2: ::core::ffi::c_uint,
}
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,
}
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,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_condattr_t {
pub __size: [::core::ffi::c_char; 4usize],
pub __align: ::core::ffi::c_int,
}
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,
}
#[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,
}
#[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,
}
#[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,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_rwlockattr_t {
pub __size: [::core::ffi::c_char; 8usize],
pub __align: ::core::ffi::c_long,
}
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,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_barrierattr_t {
pub __size: [::core::ffi::c_char; 4usize],
pub __align: ::core::ffi::c_int,
}
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],
}
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],
}
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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_drawable_info {
pub num_rects: ::core::ffi::c_uint,
pub rects: *mut drm_clip_rect,
}
#[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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_hw_lock {
pub lock: ::core::ffi::c_uint,
pub padding: [::core::ffi::c_char; 60usize],
}
#[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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_unique {
pub unique_len: __kernel_size_t,
pub unique: *mut ::core::ffi::c_char,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_list {
pub count: ::core::ffi::c_int,
pub version: *mut drm_version,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_block {
pub unused: ::core::ffi::c_int,
}
#[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;
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,
}
#[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,
}
#[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,
}
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,
}
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,
}
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;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_buf_info {
pub count: ::core::ffi::c_int,
pub list: *mut drm_buf_desc,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_buf_free {
pub count: ::core::ffi::c_int,
pub list: *mut ::core::ffi::c_int,
}
#[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,
}
#[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,
}
#[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,
}
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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_ctx_res {
pub count: ::core::ffi::c_int,
pub contexts: *mut drm_ctx,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_draw {
pub handle: drm_drawable_t,
}
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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_auth {
pub magic: drm_magic_t,
}
#[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,
}
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,
}
#[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,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union drm_wait_vblank {
pub request: drm_wait_vblank_request,
pub reply: drm_wait_vblank_reply,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_modeset_ctl {
pub crtc: __u32,
pub cmd: __u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_agp_mode {
pub mode: ::core::ffi::c_ulong,
}
#[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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_agp_binding {
pub handle: ::core::ffi::c_ulong,
pub offset: ::core::ffi::c_ulong,
}
#[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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_scatter_gather {
pub size: ::core::ffi::c_ulong,
pub handle: ::core::ffi::c_ulong,
}
#[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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_gem_close {
pub handle: __u32,
pub pad: __u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_gem_flink {
pub handle: __u32,
pub name: __u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_gem_open {
pub name: __u32,
pub handle: __u32,
pub size: __u64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_gem_change_handle {
pub handle: __u32,
pub new_handle: __u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_get_cap {
pub capability: __u64,
pub value: __u64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_set_client_cap {
pub capability: __u64,
pub value: __u64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_prime_handle {
pub handle: __u32,
pub flags: __u32,
pub fd: __s32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_syncobj_create {
pub handle: __u32,
pub flags: __u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_syncobj_destroy {
pub handle: __u32,
pub pad: __u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_syncobj_handle {
pub handle: __u32,
pub flags: __u32,
pub fd: __s32,
pub pad: __u32,
pub point: __u64,
}
#[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,
}
#[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,
}
#[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,
}
#[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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_syncobj_array {
pub handles: __u64,
pub count_handles: __u32,
pub pad: __u32,
}
#[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,
}
#[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,
}
#[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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_set_client_name {
pub name_len: __u64,
pub name: __u64,
}
#[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],
}
#[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,
}
#[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,
}
#[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,
}
#[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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_get_plane_res {
pub plane_id_ptr: __u64,
pub count_planes: __u32,
}
#[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,
}
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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_property_enum {
pub value: __u64,
pub name: [::core::ffi::c_char; 32usize],
}
#[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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_connector_set_property {
pub value: __u64,
pub prop_id: __u32,
pub connector_id: __u32,
}
#[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,
}
#[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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_get_blob {
pub blob_id: __u32,
pub length: __u32,
pub data: __u64,
}
#[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,
}
#[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],
}
#[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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_mode_cmd {
pub connector_id: __u32,
pub mode: drm_mode_modeinfo,
}
#[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,
}
#[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,
}
#[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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_color_ctm {
pub matrix: [__u64; 9usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_color_lut {
pub red: __u16,
pub green: __u16,
pub blue: __u16,
pub reserved: __u16,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_plane_size_hint {
pub width: __u16,
pub height: __u16,
}
#[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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct hdr_metadata_infoframe__bindgen_ty_2 {
pub x: __u16,
pub y: __u16,
}
#[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,
}
#[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,
}
#[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,
}
#[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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_map_dumb {
pub handle: __u32,
pub pad: __u32,
pub offset: __u64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_destroy_dumb {
pub handle: __u32,
}
#[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,
}
#[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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_format_modifier {
pub formats: __u64,
pub offset: __u32,
pub pad: __u32,
pub modifier: __u64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_create_blob {
pub data: __u64,
pub length: __u32,
pub blob_id: __u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_destroy_blob {
pub blob_id: __u32,
}
#[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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_list_lessees {
pub count_lessees: __u32,
pub pad: __u32,
pub lessees_ptr: __u64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_get_lease {
pub count_objects: __u32,
pub pad: __u32,
pub objects_ptr: __u64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_revoke_lease {
pub lessee_id: __u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_rect {
pub x1: __s32,
pub y1: __s32,
pub x2: __s32,
pub y2: __s32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_mode_closefb {
pub fb_id: __u32,
pub pad: __u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drm_event {
pub type_: __u32,
pub length: __u32,
}
#[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,
}
#[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,
}
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)>,
}
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,
}
#[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,
}
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,
}
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,
}
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,
}
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,
}
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,
}
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],
}
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,
}
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,
}
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,
}
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,
}
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,
}
pub type drmVBlankReply = _drmVBlankReply;
pub type drmVBlankReplyPtr = *mut _drmVBlankReply;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _drmVBlank {
pub request: drmVBlankReq,
pub reply: drmVBlankReply,
}
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,
}
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),
>,
}
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,
}
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,
}
pub type drmPciDeviceInfo = _drmPciDeviceInfo;
pub type drmPciDeviceInfoPtr = *mut _drmPciDeviceInfo;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmUsbBusInfo {
pub bus: u8,
pub dev: u8,
}
pub type drmUsbBusInfo = _drmUsbBusInfo;
pub type drmUsbBusInfoPtr = *mut _drmUsbBusInfo;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmUsbDeviceInfo {
pub vendor: u16,
pub product: u16,
}
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],
}
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,
}
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],
}
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,
}
pub type drmHost1xDeviceInfo = _drmHost1xDeviceInfo;
pub type drmHost1xDeviceInfoPtr = *mut _drmHost1xDeviceInfo;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _drmFauxBusInfo {
pub name: [::core::ffi::c_char; 512usize],
}
pub type drmFauxBusInfo = _drmFauxBusInfo;
pub type drmFauxBusInfoPtr = *mut _drmFauxBusInfo;
#[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,
pub faux: drmFauxBusInfoPtr,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _drmDevice__bindgen_ty_2 {
pub pci: drmPciDeviceInfoPtr,
pub usb: drmUsbDeviceInfoPtr,
pub platform: drmPlatformDeviceInfoPtr,
pub host1x: drmHost1xDeviceInfoPtr,
}
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,
}
#[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,
}
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],
}
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,
}
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],
}
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,
}
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,
}
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,
}
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,
}
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,
}
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,
}
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,
}
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,
}
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,
}
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>,
}
pub type drmModeLesseeListRes = drmModeLesseeList;
pub type drmModeLesseeListPtr = *mut drmModeLesseeList;
#[repr(C)]
#[derive(Debug)]
pub struct drmModeObjectList {
pub count: u32,
pub objects: __IncompleteArrayField<u32>,
}
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,
}
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 = unsafe { ::libloading::Library::new(path) }?;
unsafe { 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 = unsafe { __library.get(b"select\0") }.map(|sym| *sym)?;
let pselect = unsafe { __library.get(b"pselect\0") }.map(|sym| *sym)?;
let drmIoctl = unsafe { __library.get(b"drmIoctl\0") }.map(|sym| *sym)?;
let drmGetHashTable = unsafe { __library.get(b"drmGetHashTable\0") }.map(|sym| *sym)?;
let drmGetEntry = unsafe { __library.get(b"drmGetEntry\0") }.map(|sym| *sym)?;
let drmAvailable = unsafe { __library.get(b"drmAvailable\0") }.map(|sym| *sym)?;
let drmOpen = unsafe { __library.get(b"drmOpen\0") }.map(|sym| *sym)?;
let drmOpenWithType = unsafe { __library.get(b"drmOpenWithType\0") }.map(|sym| *sym)?;
let drmOpenControl = unsafe { __library.get(b"drmOpenControl\0") }.map(|sym| *sym)?;
let drmOpenRender = unsafe { __library.get(b"drmOpenRender\0") }.map(|sym| *sym)?;
let drmClose = unsafe { __library.get(b"drmClose\0") }.map(|sym| *sym)?;
let drmGetVersion = unsafe { __library.get(b"drmGetVersion\0") }.map(|sym| *sym)?;
let drmGetLibVersion = unsafe { __library.get(b"drmGetLibVersion\0") }.map(|sym| *sym)?;
let drmGetCap = unsafe { __library.get(b"drmGetCap\0") }.map(|sym| *sym)?;
let drmFreeVersion = unsafe { __library.get(b"drmFreeVersion\0") }.map(|sym| *sym)?;
let drmGetMagic = unsafe { __library.get(b"drmGetMagic\0") }.map(|sym| *sym)?;
let drmGetBusid = unsafe { __library.get(b"drmGetBusid\0") }.map(|sym| *sym)?;
let drmGetInterruptFromBusID =
unsafe { __library.get(b"drmGetInterruptFromBusID\0") }.map(|sym| *sym)?;
let drmGetMap = unsafe { __library.get(b"drmGetMap\0") }.map(|sym| *sym)?;
let drmGetClient = unsafe { __library.get(b"drmGetClient\0") }.map(|sym| *sym)?;
let drmGetStats = unsafe { __library.get(b"drmGetStats\0") }.map(|sym| *sym)?;
let drmSetInterfaceVersion =
unsafe { __library.get(b"drmSetInterfaceVersion\0") }.map(|sym| *sym)?;
let drmCommandNone = unsafe { __library.get(b"drmCommandNone\0") }.map(|sym| *sym)?;
let drmCommandRead = unsafe { __library.get(b"drmCommandRead\0") }.map(|sym| *sym)?;
let drmCommandWrite = unsafe { __library.get(b"drmCommandWrite\0") }.map(|sym| *sym)?;
let drmCommandWriteRead =
unsafe { __library.get(b"drmCommandWriteRead\0") }.map(|sym| *sym)?;
let drmFreeBusid = unsafe { __library.get(b"drmFreeBusid\0") }.map(|sym| *sym)?;
let drmSetBusid = unsafe { __library.get(b"drmSetBusid\0") }.map(|sym| *sym)?;
let drmAuthMagic = unsafe { __library.get(b"drmAuthMagic\0") }.map(|sym| *sym)?;
let drmAddMap = unsafe { __library.get(b"drmAddMap\0") }.map(|sym| *sym)?;
let drmRmMap = unsafe { __library.get(b"drmRmMap\0") }.map(|sym| *sym)?;
let drmAddContextPrivateMapping =
unsafe { __library.get(b"drmAddContextPrivateMapping\0") }.map(|sym| *sym)?;
let drmAddBufs = unsafe { __library.get(b"drmAddBufs\0") }.map(|sym| *sym)?;
let drmMarkBufs = unsafe { __library.get(b"drmMarkBufs\0") }.map(|sym| *sym)?;
let drmCreateContext = unsafe { __library.get(b"drmCreateContext\0") }.map(|sym| *sym)?;
let drmSetContextFlags =
unsafe { __library.get(b"drmSetContextFlags\0") }.map(|sym| *sym)?;
let drmGetContextFlags =
unsafe { __library.get(b"drmGetContextFlags\0") }.map(|sym| *sym)?;
let drmAddContextTag = unsafe { __library.get(b"drmAddContextTag\0") }.map(|sym| *sym)?;
let drmDelContextTag = unsafe { __library.get(b"drmDelContextTag\0") }.map(|sym| *sym)?;
let drmGetContextTag = unsafe { __library.get(b"drmGetContextTag\0") }.map(|sym| *sym)?;
let drmGetReservedContextList =
unsafe { __library.get(b"drmGetReservedContextList\0") }.map(|sym| *sym)?;
let drmFreeReservedContextList =
unsafe { __library.get(b"drmFreeReservedContextList\0") }.map(|sym| *sym)?;
let drmSwitchToContext =
unsafe { __library.get(b"drmSwitchToContext\0") }.map(|sym| *sym)?;
let drmDestroyContext = unsafe { __library.get(b"drmDestroyContext\0") }.map(|sym| *sym)?;
let drmCreateDrawable = unsafe { __library.get(b"drmCreateDrawable\0") }.map(|sym| *sym)?;
let drmDestroyDrawable =
unsafe { __library.get(b"drmDestroyDrawable\0") }.map(|sym| *sym)?;
let drmUpdateDrawableInfo =
unsafe { __library.get(b"drmUpdateDrawableInfo\0") }.map(|sym| *sym)?;
let drmCtlInstHandler = unsafe { __library.get(b"drmCtlInstHandler\0") }.map(|sym| *sym)?;
let drmCtlUninstHandler =
unsafe { __library.get(b"drmCtlUninstHandler\0") }.map(|sym| *sym)?;
let drmSetClientCap = unsafe { __library.get(b"drmSetClientCap\0") }.map(|sym| *sym)?;
let drmCrtcGetSequence =
unsafe { __library.get(b"drmCrtcGetSequence\0") }.map(|sym| *sym)?;
let drmCrtcQueueSequence =
unsafe { __library.get(b"drmCrtcQueueSequence\0") }.map(|sym| *sym)?;
let drmMap = unsafe { __library.get(b"drmMap\0") }.map(|sym| *sym)?;
let drmUnmap = unsafe { __library.get(b"drmUnmap\0") }.map(|sym| *sym)?;
let drmGetBufInfo = unsafe { __library.get(b"drmGetBufInfo\0") }.map(|sym| *sym)?;
let drmMapBufs = unsafe { __library.get(b"drmMapBufs\0") }.map(|sym| *sym)?;
let drmUnmapBufs = unsafe { __library.get(b"drmUnmapBufs\0") }.map(|sym| *sym)?;
let drmDMA = unsafe { __library.get(b"drmDMA\0") }.map(|sym| *sym)?;
let drmFreeBufs = unsafe { __library.get(b"drmFreeBufs\0") }.map(|sym| *sym)?;
let drmGetLock = unsafe { __library.get(b"drmGetLock\0") }.map(|sym| *sym)?;
let drmUnlock = unsafe { __library.get(b"drmUnlock\0") }.map(|sym| *sym)?;
let drmFinish = unsafe { __library.get(b"drmFinish\0") }.map(|sym| *sym)?;
let drmGetContextPrivateMapping =
unsafe { __library.get(b"drmGetContextPrivateMapping\0") }.map(|sym| *sym)?;
let drmAgpAcquire = unsafe { __library.get(b"drmAgpAcquire\0") }.map(|sym| *sym)?;
let drmAgpRelease = unsafe { __library.get(b"drmAgpRelease\0") }.map(|sym| *sym)?;
let drmAgpEnable = unsafe { __library.get(b"drmAgpEnable\0") }.map(|sym| *sym)?;
let drmAgpAlloc = unsafe { __library.get(b"drmAgpAlloc\0") }.map(|sym| *sym)?;
let drmAgpFree = unsafe { __library.get(b"drmAgpFree\0") }.map(|sym| *sym)?;
let drmAgpBind = unsafe { __library.get(b"drmAgpBind\0") }.map(|sym| *sym)?;
let drmAgpUnbind = unsafe { __library.get(b"drmAgpUnbind\0") }.map(|sym| *sym)?;
let drmAgpVersionMajor =
unsafe { __library.get(b"drmAgpVersionMajor\0") }.map(|sym| *sym)?;
let drmAgpVersionMinor =
unsafe { __library.get(b"drmAgpVersionMinor\0") }.map(|sym| *sym)?;
let drmAgpGetMode = unsafe { __library.get(b"drmAgpGetMode\0") }.map(|sym| *sym)?;
let drmAgpBase = unsafe { __library.get(b"drmAgpBase\0") }.map(|sym| *sym)?;
let drmAgpSize = unsafe { __library.get(b"drmAgpSize\0") }.map(|sym| *sym)?;
let drmAgpMemoryUsed = unsafe { __library.get(b"drmAgpMemoryUsed\0") }.map(|sym| *sym)?;
let drmAgpMemoryAvail = unsafe { __library.get(b"drmAgpMemoryAvail\0") }.map(|sym| *sym)?;
let drmAgpVendorId = unsafe { __library.get(b"drmAgpVendorId\0") }.map(|sym| *sym)?;
let drmAgpDeviceId = unsafe { __library.get(b"drmAgpDeviceId\0") }.map(|sym| *sym)?;
let drmScatterGatherAlloc =
unsafe { __library.get(b"drmScatterGatherAlloc\0") }.map(|sym| *sym)?;
let drmScatterGatherFree =
unsafe { __library.get(b"drmScatterGatherFree\0") }.map(|sym| *sym)?;
let drmWaitVBlank = unsafe { __library.get(b"drmWaitVBlank\0") }.map(|sym| *sym)?;
let drmSetServerInfo = unsafe { __library.get(b"drmSetServerInfo\0") }.map(|sym| *sym)?;
let drmError = unsafe { __library.get(b"drmError\0") }.map(|sym| *sym)?;
let drmMalloc = unsafe { __library.get(b"drmMalloc\0") }.map(|sym| *sym)?;
let drmFree = unsafe { __library.get(b"drmFree\0") }.map(|sym| *sym)?;
let drmHashCreate = unsafe { __library.get(b"drmHashCreate\0") }.map(|sym| *sym)?;
let drmHashDestroy = unsafe { __library.get(b"drmHashDestroy\0") }.map(|sym| *sym)?;
let drmHashLookup = unsafe { __library.get(b"drmHashLookup\0") }.map(|sym| *sym)?;
let drmHashInsert = unsafe { __library.get(b"drmHashInsert\0") }.map(|sym| *sym)?;
let drmHashDelete = unsafe { __library.get(b"drmHashDelete\0") }.map(|sym| *sym)?;
let drmHashFirst = unsafe { __library.get(b"drmHashFirst\0") }.map(|sym| *sym)?;
let drmHashNext = unsafe { __library.get(b"drmHashNext\0") }.map(|sym| *sym)?;
let drmRandomCreate = unsafe { __library.get(b"drmRandomCreate\0") }.map(|sym| *sym)?;
let drmRandomDestroy = unsafe { __library.get(b"drmRandomDestroy\0") }.map(|sym| *sym)?;
let drmRandom = unsafe { __library.get(b"drmRandom\0") }.map(|sym| *sym)?;
let drmRandomDouble = unsafe { __library.get(b"drmRandomDouble\0") }.map(|sym| *sym)?;
let drmSLCreate = unsafe { __library.get(b"drmSLCreate\0") }.map(|sym| *sym)?;
let drmSLDestroy = unsafe { __library.get(b"drmSLDestroy\0") }.map(|sym| *sym)?;
let drmSLLookup = unsafe { __library.get(b"drmSLLookup\0") }.map(|sym| *sym)?;
let drmSLInsert = unsafe { __library.get(b"drmSLInsert\0") }.map(|sym| *sym)?;
let drmSLDelete = unsafe { __library.get(b"drmSLDelete\0") }.map(|sym| *sym)?;
let drmSLNext = unsafe { __library.get(b"drmSLNext\0") }.map(|sym| *sym)?;
let drmSLFirst = unsafe { __library.get(b"drmSLFirst\0") }.map(|sym| *sym)?;
let drmSLDump = unsafe { __library.get(b"drmSLDump\0") }.map(|sym| *sym)?;
let drmSLLookupNeighbors =
unsafe { __library.get(b"drmSLLookupNeighbors\0") }.map(|sym| *sym)?;
let drmOpenOnce = unsafe { __library.get(b"drmOpenOnce\0") }.map(|sym| *sym)?;
let drmOpenOnceWithType =
unsafe { __library.get(b"drmOpenOnceWithType\0") }.map(|sym| *sym)?;
let drmCloseOnce = unsafe { __library.get(b"drmCloseOnce\0") }.map(|sym| *sym)?;
let drmMsg = unsafe { __library.get(b"drmMsg\0") }.map(|sym| *sym)?;
let drmSetMaster = unsafe { __library.get(b"drmSetMaster\0") }.map(|sym| *sym)?;
let drmDropMaster = unsafe { __library.get(b"drmDropMaster\0") }.map(|sym| *sym)?;
let drmIsMaster = unsafe { __library.get(b"drmIsMaster\0") }.map(|sym| *sym)?;
let drmHandleEvent = unsafe { __library.get(b"drmHandleEvent\0") }.map(|sym| *sym)?;
let drmGetDeviceNameFromFd =
unsafe { __library.get(b"drmGetDeviceNameFromFd\0") }.map(|sym| *sym)?;
let drmGetDeviceNameFromFd2 =
unsafe { __library.get(b"drmGetDeviceNameFromFd2\0") }.map(|sym| *sym)?;
let drmGetNodeTypeFromFd =
unsafe { __library.get(b"drmGetNodeTypeFromFd\0") }.map(|sym| *sym)?;
let drmPrimeHandleToFD =
unsafe { __library.get(b"drmPrimeHandleToFD\0") }.map(|sym| *sym)?;
let drmPrimeFDToHandle =
unsafe { __library.get(b"drmPrimeFDToHandle\0") }.map(|sym| *sym)?;
let drmCloseBufferHandle =
unsafe { __library.get(b"drmCloseBufferHandle\0") }.map(|sym| *sym)?;
let drmGetPrimaryDeviceNameFromFd =
unsafe { __library.get(b"drmGetPrimaryDeviceNameFromFd\0") }.map(|sym| *sym)?;
let drmGetRenderDeviceNameFromFd =
unsafe { __library.get(b"drmGetRenderDeviceNameFromFd\0") }.map(|sym| *sym)?;
let drmGetDevice = unsafe { __library.get(b"drmGetDevice\0") }.map(|sym| *sym)?;
let drmFreeDevice = unsafe { __library.get(b"drmFreeDevice\0") }.map(|sym| *sym)?;
let drmGetDevices = unsafe { __library.get(b"drmGetDevices\0") }.map(|sym| *sym)?;
let drmFreeDevices = unsafe { __library.get(b"drmFreeDevices\0") }.map(|sym| *sym)?;
let drmGetDevice2 = unsafe { __library.get(b"drmGetDevice2\0") }.map(|sym| *sym)?;
let drmGetDevices2 = unsafe { __library.get(b"drmGetDevices2\0") }.map(|sym| *sym)?;
let drmGetDeviceFromDevId =
unsafe { __library.get(b"drmGetDeviceFromDevId\0") }.map(|sym| *sym)?;
let drmGetNodeTypeFromDevId =
unsafe { __library.get(b"drmGetNodeTypeFromDevId\0") }.map(|sym| *sym)?;
let drmDevicesEqual = unsafe { __library.get(b"drmDevicesEqual\0") }.map(|sym| *sym)?;
let drmSyncobjCreate = unsafe { __library.get(b"drmSyncobjCreate\0") }.map(|sym| *sym)?;
let drmSyncobjDestroy = unsafe { __library.get(b"drmSyncobjDestroy\0") }.map(|sym| *sym)?;
let drmSyncobjHandleToFD =
unsafe { __library.get(b"drmSyncobjHandleToFD\0") }.map(|sym| *sym)?;
let drmSyncobjFDToHandle =
unsafe { __library.get(b"drmSyncobjFDToHandle\0") }.map(|sym| *sym)?;
let drmSyncobjImportSyncFile =
unsafe { __library.get(b"drmSyncobjImportSyncFile\0") }.map(|sym| *sym)?;
let drmSyncobjExportSyncFile =
unsafe { __library.get(b"drmSyncobjExportSyncFile\0") }.map(|sym| *sym)?;
let drmSyncobjWait = unsafe { __library.get(b"drmSyncobjWait\0") }.map(|sym| *sym)?;
let drmSyncobjReset = unsafe { __library.get(b"drmSyncobjReset\0") }.map(|sym| *sym)?;
let drmSyncobjSignal = unsafe { __library.get(b"drmSyncobjSignal\0") }.map(|sym| *sym)?;
let drmSyncobjTimelineSignal =
unsafe { __library.get(b"drmSyncobjTimelineSignal\0") }.map(|sym| *sym)?;
let drmSyncobjTimelineWait =
unsafe { __library.get(b"drmSyncobjTimelineWait\0") }.map(|sym| *sym)?;
let drmSyncobjQuery = unsafe { __library.get(b"drmSyncobjQuery\0") }.map(|sym| *sym)?;
let drmSyncobjQuery2 = unsafe { __library.get(b"drmSyncobjQuery2\0") }.map(|sym| *sym)?;
let drmSyncobjTransfer =
unsafe { __library.get(b"drmSyncobjTransfer\0") }.map(|sym| *sym)?;
let drmSyncobjEventfd = unsafe { __library.get(b"drmSyncobjEventfd\0") }.map(|sym| *sym)?;
let drmGetFormatModifierVendor =
unsafe { __library.get(b"drmGetFormatModifierVendor\0") }.map(|sym| *sym)?;
let drmGetFormatModifierName =
unsafe { __library.get(b"drmGetFormatModifierName\0") }.map(|sym| *sym)?;
let drmGetFormatName = unsafe { __library.get(b"drmGetFormatName\0") }.map(|sym| *sym)?;
let drmModeFreeModeInfo =
unsafe { __library.get(b"drmModeFreeModeInfo\0") }.map(|sym| *sym)?;
let drmModeFreeResources =
unsafe { __library.get(b"drmModeFreeResources\0") }.map(|sym| *sym)?;
let drmModeFreeFB = unsafe { __library.get(b"drmModeFreeFB\0") }.map(|sym| *sym)?;
let drmModeFreeFB2 = unsafe { __library.get(b"drmModeFreeFB2\0") }.map(|sym| *sym)?;
let drmModeFreeCrtc = unsafe { __library.get(b"drmModeFreeCrtc\0") }.map(|sym| *sym)?;
let drmModeFreeConnector =
unsafe { __library.get(b"drmModeFreeConnector\0") }.map(|sym| *sym)?;
let drmModeFreeEncoder =
unsafe { __library.get(b"drmModeFreeEncoder\0") }.map(|sym| *sym)?;
let drmModeFreePlane = unsafe { __library.get(b"drmModeFreePlane\0") }.map(|sym| *sym)?;
let drmModeFreePlaneResources =
unsafe { __library.get(b"drmModeFreePlaneResources\0") }.map(|sym| *sym)?;
let drmIsKMS = unsafe { __library.get(b"drmIsKMS\0") }.map(|sym| *sym)?;
let drmModeGetResources =
unsafe { __library.get(b"drmModeGetResources\0") }.map(|sym| *sym)?;
let drmModeGetFB = unsafe { __library.get(b"drmModeGetFB\0") }.map(|sym| *sym)?;
let drmModeGetFB2 = unsafe { __library.get(b"drmModeGetFB2\0") }.map(|sym| *sym)?;
let drmModeAddFB = unsafe { __library.get(b"drmModeAddFB\0") }.map(|sym| *sym)?;
let drmModeAddFB2 = unsafe { __library.get(b"drmModeAddFB2\0") }.map(|sym| *sym)?;
let drmModeAddFB2WithModifiers =
unsafe { __library.get(b"drmModeAddFB2WithModifiers\0") }.map(|sym| *sym)?;
let drmModeRmFB = unsafe { __library.get(b"drmModeRmFB\0") }.map(|sym| *sym)?;
let drmModeCloseFB = unsafe { __library.get(b"drmModeCloseFB\0") }.map(|sym| *sym)?;
let drmModeDirtyFB = unsafe { __library.get(b"drmModeDirtyFB\0") }.map(|sym| *sym)?;
let drmModeGetCrtc = unsafe { __library.get(b"drmModeGetCrtc\0") }.map(|sym| *sym)?;
let drmModeSetCrtc = unsafe { __library.get(b"drmModeSetCrtc\0") }.map(|sym| *sym)?;
let drmModeSetCursor = unsafe { __library.get(b"drmModeSetCursor\0") }.map(|sym| *sym)?;
let drmModeSetCursor2 = unsafe { __library.get(b"drmModeSetCursor2\0") }.map(|sym| *sym)?;
let drmModeMoveCursor = unsafe { __library.get(b"drmModeMoveCursor\0") }.map(|sym| *sym)?;
let drmModeGetEncoder = unsafe { __library.get(b"drmModeGetEncoder\0") }.map(|sym| *sym)?;
let drmModeGetConnector =
unsafe { __library.get(b"drmModeGetConnector\0") }.map(|sym| *sym)?;
let drmModeGetConnectorCurrent =
unsafe { __library.get(b"drmModeGetConnectorCurrent\0") }.map(|sym| *sym)?;
let drmModeConnectorGetPossibleCrtcs =
unsafe { __library.get(b"drmModeConnectorGetPossibleCrtcs\0") }.map(|sym| *sym)?;
let drmModeAttachMode = unsafe { __library.get(b"drmModeAttachMode\0") }.map(|sym| *sym)?;
let drmModeDetachMode = unsafe { __library.get(b"drmModeDetachMode\0") }.map(|sym| *sym)?;
let drmModeGetProperty =
unsafe { __library.get(b"drmModeGetProperty\0") }.map(|sym| *sym)?;
let drmModeFreeProperty =
unsafe { __library.get(b"drmModeFreeProperty\0") }.map(|sym| *sym)?;
let drmModeGetPropertyBlob =
unsafe { __library.get(b"drmModeGetPropertyBlob\0") }.map(|sym| *sym)?;
let drmModeFormatModifierBlobIterNext =
unsafe { __library.get(b"drmModeFormatModifierBlobIterNext\0") }.map(|sym| *sym)?;
let drmModeFreePropertyBlob =
unsafe { __library.get(b"drmModeFreePropertyBlob\0") }.map(|sym| *sym)?;
let drmModeConnectorSetProperty =
unsafe { __library.get(b"drmModeConnectorSetProperty\0") }.map(|sym| *sym)?;
let drmCheckModesettingSupported =
unsafe { __library.get(b"drmCheckModesettingSupported\0") }.map(|sym| *sym)?;
let drmModeCrtcSetGamma =
unsafe { __library.get(b"drmModeCrtcSetGamma\0") }.map(|sym| *sym)?;
let drmModeCrtcGetGamma =
unsafe { __library.get(b"drmModeCrtcGetGamma\0") }.map(|sym| *sym)?;
let drmModePageFlip = unsafe { __library.get(b"drmModePageFlip\0") }.map(|sym| *sym)?;
let drmModePageFlipTarget =
unsafe { __library.get(b"drmModePageFlipTarget\0") }.map(|sym| *sym)?;
let drmModeGetPlaneResources =
unsafe { __library.get(b"drmModeGetPlaneResources\0") }.map(|sym| *sym)?;
let drmModeGetPlane = unsafe { __library.get(b"drmModeGetPlane\0") }.map(|sym| *sym)?;
let drmModeSetPlane = unsafe { __library.get(b"drmModeSetPlane\0") }.map(|sym| *sym)?;
let drmModeObjectGetProperties =
unsafe { __library.get(b"drmModeObjectGetProperties\0") }.map(|sym| *sym)?;
let drmModeFreeObjectProperties =
unsafe { __library.get(b"drmModeFreeObjectProperties\0") }.map(|sym| *sym)?;
let drmModeObjectSetProperty =
unsafe { __library.get(b"drmModeObjectSetProperty\0") }.map(|sym| *sym)?;
let drmModeAtomicAlloc =
unsafe { __library.get(b"drmModeAtomicAlloc\0") }.map(|sym| *sym)?;
let drmModeAtomicDuplicate =
unsafe { __library.get(b"drmModeAtomicDuplicate\0") }.map(|sym| *sym)?;
let drmModeAtomicMerge =
unsafe { __library.get(b"drmModeAtomicMerge\0") }.map(|sym| *sym)?;
let drmModeAtomicFree = unsafe { __library.get(b"drmModeAtomicFree\0") }.map(|sym| *sym)?;
let drmModeAtomicGetCursor =
unsafe { __library.get(b"drmModeAtomicGetCursor\0") }.map(|sym| *sym)?;
let drmModeAtomicSetCursor =
unsafe { __library.get(b"drmModeAtomicSetCursor\0") }.map(|sym| *sym)?;
let drmModeAtomicAddProperty =
unsafe { __library.get(b"drmModeAtomicAddProperty\0") }.map(|sym| *sym)?;
let drmModeAtomicCommit =
unsafe { __library.get(b"drmModeAtomicCommit\0") }.map(|sym| *sym)?;
let drmModeCreatePropertyBlob =
unsafe { __library.get(b"drmModeCreatePropertyBlob\0") }.map(|sym| *sym)?;
let drmModeDestroyPropertyBlob =
unsafe { __library.get(b"drmModeDestroyPropertyBlob\0") }.map(|sym| *sym)?;
let drmModeCreateLease =
unsafe { __library.get(b"drmModeCreateLease\0") }.map(|sym| *sym)?;
let drmModeListLessees =
unsafe { __library.get(b"drmModeListLessees\0") }.map(|sym| *sym)?;
let drmModeGetLease = unsafe { __library.get(b"drmModeGetLease\0") }.map(|sym| *sym)?;
let drmModeRevokeLease =
unsafe { __library.get(b"drmModeRevokeLease\0") }.map(|sym| *sym)?;
let drmModeGetConnectorTypeName =
unsafe { __library.get(b"drmModeGetConnectorTypeName\0") }.map(|sym| *sym)?;
let drmModeCreateDumbBuffer =
unsafe { __library.get(b"drmModeCreateDumbBuffer\0") }.map(|sym| *sym)?;
let drmModeDestroyDumbBuffer =
unsafe { __library.get(b"drmModeDestroyDumbBuffer\0") }.map(|sym| *sym)?;
let drmModeMapDumbBuffer =
unsafe { __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 {
unsafe { (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 {
unsafe {
(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 {
unsafe { (self.drmIoctl)(fd, request, arg) }
}
pub unsafe fn drmGetHashTable(&self) -> *mut ::core::ffi::c_void {
unsafe { (self.drmGetHashTable)() }
}
pub unsafe fn drmGetEntry(&self, fd: ::core::ffi::c_int) -> *mut drmHashEntry {
unsafe { (self.drmGetEntry)(fd) }
}
pub unsafe fn drmAvailable(&self) -> ::core::ffi::c_int {
unsafe { (self.drmAvailable)() }
}
pub unsafe fn drmOpen(
&self,
name: *const ::core::ffi::c_char,
busid: *const ::core::ffi::c_char,
) -> ::core::ffi::c_int {
unsafe { (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 {
unsafe { (self.drmOpenWithType)(name, busid, type_) }
}
pub unsafe fn drmOpenControl(&self, minor: ::core::ffi::c_int) -> ::core::ffi::c_int {
unsafe { (self.drmOpenControl)(minor) }
}
pub unsafe fn drmOpenRender(&self, minor: ::core::ffi::c_int) -> ::core::ffi::c_int {
unsafe { (self.drmOpenRender)(minor) }
}
pub unsafe fn drmClose(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
unsafe { (self.drmClose)(fd) }
}
pub unsafe fn drmGetVersion(&self, fd: ::core::ffi::c_int) -> drmVersionPtr {
unsafe { (self.drmGetVersion)(fd) }
}
pub unsafe fn drmGetLibVersion(&self, fd: ::core::ffi::c_int) -> drmVersionPtr {
unsafe { (self.drmGetLibVersion)(fd) }
}
pub unsafe fn drmGetCap(
&self,
fd: ::core::ffi::c_int,
capability: u64,
value: *mut u64,
) -> ::core::ffi::c_int {
unsafe { (self.drmGetCap)(fd, capability, value) }
}
pub unsafe fn drmFreeVersion(&self, arg1: drmVersionPtr) {
unsafe { (self.drmFreeVersion)(arg1) }
}
pub unsafe fn drmGetMagic(
&self,
fd: ::core::ffi::c_int,
magic: *mut drm_magic_t,
) -> ::core::ffi::c_int {
unsafe { (self.drmGetMagic)(fd, magic) }
}
pub unsafe fn drmGetBusid(&self, fd: ::core::ffi::c_int) -> *mut ::core::ffi::c_char {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (self.drmGetStats)(fd, stats) }
}
pub unsafe fn drmSetInterfaceVersion(
&self,
fd: ::core::ffi::c_int,
version: *mut drmSetVersion,
) -> ::core::ffi::c_int {
unsafe { (self.drmSetInterfaceVersion)(fd, version) }
}
pub unsafe fn drmCommandNone(
&self,
fd: ::core::ffi::c_int,
drmCommandIndex: ::core::ffi::c_ulong,
) -> ::core::ffi::c_int {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (self.drmCommandWriteRead)(fd, drmCommandIndex, data, size) }
}
pub unsafe fn drmFreeBusid(&self, busid: *const ::core::ffi::c_char) {
unsafe { (self.drmFreeBusid)(busid) }
}
pub unsafe fn drmSetBusid(
&self,
fd: ::core::ffi::c_int,
busid: *const ::core::ffi::c_char,
) -> ::core::ffi::c_int {
unsafe { (self.drmSetBusid)(fd, busid) }
}
pub unsafe fn drmAuthMagic(
&self,
fd: ::core::ffi::c_int,
magic: drm_magic_t,
) -> ::core::ffi::c_int {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (self.drmMarkBufs)(fd, low, high) }
}
pub unsafe fn drmCreateContext(
&self,
fd: ::core::ffi::c_int,
handle: *mut drm_context_t,
) -> ::core::ffi::c_int {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (self.drmAddContextTag)(fd, context, tag) }
}
pub unsafe fn drmDelContextTag(
&self,
fd: ::core::ffi::c_int,
context: drm_context_t,
) -> ::core::ffi::c_int {
unsafe { (self.drmDelContextTag)(fd, context) }
}
pub unsafe fn drmGetContextTag(
&self,
fd: ::core::ffi::c_int,
context: drm_context_t,
) -> *mut ::core::ffi::c_void {
unsafe { (self.drmGetContextTag)(fd, context) }
}
pub unsafe fn drmGetReservedContextList(
&self,
fd: ::core::ffi::c_int,
count: *mut ::core::ffi::c_int,
) -> *mut drm_context_t {
unsafe { (self.drmGetReservedContextList)(fd, count) }
}
pub unsafe fn drmFreeReservedContextList(&self, arg1: *mut drm_context_t) {
unsafe { (self.drmFreeReservedContextList)(arg1) }
}
pub unsafe fn drmSwitchToContext(
&self,
fd: ::core::ffi::c_int,
context: drm_context_t,
) -> ::core::ffi::c_int {
unsafe { (self.drmSwitchToContext)(fd, context) }
}
pub unsafe fn drmDestroyContext(
&self,
fd: ::core::ffi::c_int,
handle: drm_context_t,
) -> ::core::ffi::c_int {
unsafe { (self.drmDestroyContext)(fd, handle) }
}
pub unsafe fn drmCreateDrawable(
&self,
fd: ::core::ffi::c_int,
handle: *mut drm_drawable_t,
) -> ::core::ffi::c_int {
unsafe { (self.drmCreateDrawable)(fd, handle) }
}
pub unsafe fn drmDestroyDrawable(
&self,
fd: ::core::ffi::c_int,
handle: drm_drawable_t,
) -> ::core::ffi::c_int {
unsafe { (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 {
unsafe { (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 {
unsafe { (self.drmCtlInstHandler)(fd, irq) }
}
pub unsafe fn drmCtlUninstHandler(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
unsafe { (self.drmCtlUninstHandler)(fd) }
}
pub unsafe fn drmSetClientCap(
&self,
fd: ::core::ffi::c_int,
capability: u64,
value: u64,
) -> ::core::ffi::c_int {
unsafe { (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 {
unsafe { (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 {
unsafe {
(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 {
unsafe { (self.drmMap)(fd, handle, size, address) }
}
pub unsafe fn drmUnmap(&self, address: drmAddress, size: drmSize) -> ::core::ffi::c_int {
unsafe { (self.drmUnmap)(address, size) }
}
pub unsafe fn drmGetBufInfo(&self, fd: ::core::ffi::c_int) -> drmBufInfoPtr {
unsafe { (self.drmGetBufInfo)(fd) }
}
pub unsafe fn drmMapBufs(&self, fd: ::core::ffi::c_int) -> drmBufMapPtr {
unsafe { (self.drmMapBufs)(fd) }
}
pub unsafe fn drmUnmapBufs(&self, bufs: drmBufMapPtr) -> ::core::ffi::c_int {
unsafe { (self.drmUnmapBufs)(bufs) }
}
pub unsafe fn drmDMA(
&self,
fd: ::core::ffi::c_int,
request: drmDMAReqPtr,
) -> ::core::ffi::c_int {
unsafe { (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 {
unsafe { (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 {
unsafe { (self.drmGetLock)(fd, context, flags) }
}
pub unsafe fn drmUnlock(
&self,
fd: ::core::ffi::c_int,
context: drm_context_t,
) -> ::core::ffi::c_int {
unsafe { (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 {
unsafe { (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 {
unsafe { (self.drmGetContextPrivateMapping)(fd, ctx_id, handle) }
}
pub unsafe fn drmAgpAcquire(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
unsafe { (self.drmAgpAcquire)(fd) }
}
pub unsafe fn drmAgpRelease(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
unsafe { (self.drmAgpRelease)(fd) }
}
pub unsafe fn drmAgpEnable(
&self,
fd: ::core::ffi::c_int,
mode: ::core::ffi::c_ulong,
) -> ::core::ffi::c_int {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (self.drmAgpBind)(fd, handle, offset) }
}
pub unsafe fn drmAgpUnbind(
&self,
fd: ::core::ffi::c_int,
handle: drm_handle_t,
) -> ::core::ffi::c_int {
unsafe { (self.drmAgpUnbind)(fd, handle) }
}
pub unsafe fn drmAgpVersionMajor(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
unsafe { (self.drmAgpVersionMajor)(fd) }
}
pub unsafe fn drmAgpVersionMinor(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
unsafe { (self.drmAgpVersionMinor)(fd) }
}
pub unsafe fn drmAgpGetMode(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_ulong {
unsafe { (self.drmAgpGetMode)(fd) }
}
pub unsafe fn drmAgpBase(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_ulong {
unsafe { (self.drmAgpBase)(fd) }
}
pub unsafe fn drmAgpSize(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_ulong {
unsafe { (self.drmAgpSize)(fd) }
}
pub unsafe fn drmAgpMemoryUsed(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_ulong {
unsafe { (self.drmAgpMemoryUsed)(fd) }
}
pub unsafe fn drmAgpMemoryAvail(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_ulong {
unsafe { (self.drmAgpMemoryAvail)(fd) }
}
pub unsafe fn drmAgpVendorId(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_uint {
unsafe { (self.drmAgpVendorId)(fd) }
}
pub unsafe fn drmAgpDeviceId(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_uint {
unsafe { (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 {
unsafe { (self.drmScatterGatherAlloc)(fd, size, handle) }
}
pub unsafe fn drmScatterGatherFree(
&self,
fd: ::core::ffi::c_int,
handle: drm_handle_t,
) -> ::core::ffi::c_int {
unsafe { (self.drmScatterGatherFree)(fd, handle) }
}
pub unsafe fn drmWaitVBlank(
&self,
fd: ::core::ffi::c_int,
vbl: drmVBlankPtr,
) -> ::core::ffi::c_int {
unsafe { (self.drmWaitVBlank)(fd, vbl) }
}
pub unsafe fn drmSetServerInfo(&self, info: drmServerInfoPtr) {
unsafe { (self.drmSetServerInfo)(info) }
}
pub unsafe fn drmError(
&self,
err: ::core::ffi::c_int,
label: *const ::core::ffi::c_char,
) -> ::core::ffi::c_int {
unsafe { (self.drmError)(err, label) }
}
pub unsafe fn drmMalloc(&self, size: ::core::ffi::c_int) -> *mut ::core::ffi::c_void {
unsafe { (self.drmMalloc)(size) }
}
pub unsafe fn drmFree(&self, pt: *mut ::core::ffi::c_void) {
unsafe { (self.drmFree)(pt) }
}
pub unsafe fn drmHashCreate(&self) -> *mut ::core::ffi::c_void {
unsafe { (self.drmHashCreate)() }
}
pub unsafe fn drmHashDestroy(&self, t: *mut ::core::ffi::c_void) -> ::core::ffi::c_int {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (self.drmHashNext)(t, key, value) }
}
pub unsafe fn drmRandomCreate(&self, seed: ::core::ffi::c_ulong) -> *mut ::core::ffi::c_void {
unsafe { (self.drmRandomCreate)(seed) }
}
pub unsafe fn drmRandomDestroy(&self, state: *mut ::core::ffi::c_void) -> ::core::ffi::c_int {
unsafe { (self.drmRandomDestroy)(state) }
}
pub unsafe fn drmRandom(&self, state: *mut ::core::ffi::c_void) -> ::core::ffi::c_ulong {
unsafe { (self.drmRandom)(state) }
}
pub unsafe fn drmRandomDouble(&self, state: *mut ::core::ffi::c_void) -> f64 {
unsafe { (self.drmRandomDouble)(state) }
}
pub unsafe fn drmSLCreate(&self) -> *mut ::core::ffi::c_void {
unsafe { (self.drmSLCreate)() }
}
pub unsafe fn drmSLDestroy(&self, l: *mut ::core::ffi::c_void) -> ::core::ffi::c_int {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (self.drmSLFirst)(l, key, value) }
}
pub unsafe fn drmSLDump(&self, l: *mut ::core::ffi::c_void) {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (self.drmOpenOnceWithType)(BusID, newlyopened, type_) }
}
pub unsafe fn drmCloseOnce(&self, fd: ::core::ffi::c_int) {
unsafe { (self.drmCloseOnce)(fd) }
}
pub unsafe fn drmSetMaster(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
unsafe { (self.drmSetMaster)(fd) }
}
pub unsafe fn drmDropMaster(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
unsafe { (self.drmDropMaster)(fd) }
}
pub unsafe fn drmIsMaster(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
unsafe { (self.drmIsMaster)(fd) }
}
pub unsafe fn drmHandleEvent(
&self,
fd: ::core::ffi::c_int,
evctx: drmEventContextPtr,
) -> ::core::ffi::c_int {
unsafe { (self.drmHandleEvent)(fd, evctx) }
}
pub unsafe fn drmGetDeviceNameFromFd(
&self,
fd: ::core::ffi::c_int,
) -> *mut ::core::ffi::c_char {
unsafe { (self.drmGetDeviceNameFromFd)(fd) }
}
pub unsafe fn drmGetDeviceNameFromFd2(
&self,
fd: ::core::ffi::c_int,
) -> *mut ::core::ffi::c_char {
unsafe { (self.drmGetDeviceNameFromFd2)(fd) }
}
pub unsafe fn drmGetNodeTypeFromFd(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
unsafe { (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 {
unsafe { (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 {
unsafe { (self.drmPrimeFDToHandle)(fd, prime_fd, handle) }
}
pub unsafe fn drmCloseBufferHandle(
&self,
fd: ::core::ffi::c_int,
handle: u32,
) -> ::core::ffi::c_int {
unsafe { (self.drmCloseBufferHandle)(fd, handle) }
}
pub unsafe fn drmGetPrimaryDeviceNameFromFd(
&self,
fd: ::core::ffi::c_int,
) -> *mut ::core::ffi::c_char {
unsafe { (self.drmGetPrimaryDeviceNameFromFd)(fd) }
}
pub unsafe fn drmGetRenderDeviceNameFromFd(
&self,
fd: ::core::ffi::c_int,
) -> *mut ::core::ffi::c_char {
unsafe { (self.drmGetRenderDeviceNameFromFd)(fd) }
}
pub unsafe fn drmGetDevice(
&self,
fd: ::core::ffi::c_int,
device: *mut drmDevicePtr,
) -> ::core::ffi::c_int {
unsafe { (self.drmGetDevice)(fd, device) }
}
pub unsafe fn drmFreeDevice(&self, device: *mut drmDevicePtr) {
unsafe { (self.drmFreeDevice)(device) }
}
pub unsafe fn drmGetDevices(
&self,
devices: *mut drmDevicePtr,
max_devices: ::core::ffi::c_int,
) -> ::core::ffi::c_int {
unsafe { (self.drmGetDevices)(devices, max_devices) }
}
pub unsafe fn drmFreeDevices(&self, devices: *mut drmDevicePtr, count: ::core::ffi::c_int) {
unsafe { (self.drmFreeDevices)(devices, count) }
}
pub unsafe fn drmGetDevice2(
&self,
fd: ::core::ffi::c_int,
flags: u32,
device: *mut drmDevicePtr,
) -> ::core::ffi::c_int {
unsafe { (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 {
unsafe { (self.drmGetDevices2)(flags, devices, max_devices) }
}
pub unsafe fn drmGetDeviceFromDevId(
&self,
dev_id: dev_t,
flags: u32,
device: *mut drmDevicePtr,
) -> ::core::ffi::c_int {
unsafe { (self.drmGetDeviceFromDevId)(dev_id, flags, device) }
}
pub unsafe fn drmGetNodeTypeFromDevId(&self, devid: dev_t) -> ::core::ffi::c_int {
unsafe { (self.drmGetNodeTypeFromDevId)(devid) }
}
pub unsafe fn drmDevicesEqual(&self, a: drmDevicePtr, b: drmDevicePtr) -> ::core::ffi::c_int {
unsafe { (self.drmDevicesEqual)(a, b) }
}
pub unsafe fn drmSyncobjCreate(
&self,
fd: ::core::ffi::c_int,
flags: u32,
handle: *mut u32,
) -> ::core::ffi::c_int {
unsafe { (self.drmSyncobjCreate)(fd, flags, handle) }
}
pub unsafe fn drmSyncobjDestroy(
&self,
fd: ::core::ffi::c_int,
handle: u32,
) -> ::core::ffi::c_int {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe {
(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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe {
(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 {
unsafe { (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 {
unsafe { (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 {
unsafe {
(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 {
unsafe { (self.drmSyncobjEventfd)(fd, handle, point, ev_fd, flags) }
}
pub unsafe fn drmGetFormatModifierVendor(&self, modifier: u64) -> *mut ::core::ffi::c_char {
unsafe { (self.drmGetFormatModifierVendor)(modifier) }
}
pub unsafe fn drmGetFormatModifierName(&self, modifier: u64) -> *mut ::core::ffi::c_char {
unsafe { (self.drmGetFormatModifierName)(modifier) }
}
pub unsafe fn drmGetFormatName(&self, format: u32) -> *mut ::core::ffi::c_char {
unsafe { (self.drmGetFormatName)(format) }
}
pub unsafe fn drmModeFreeModeInfo(&self, ptr: drmModeModeInfoPtr) {
unsafe { (self.drmModeFreeModeInfo)(ptr) }
}
pub unsafe fn drmModeFreeResources(&self, ptr: drmModeResPtr) {
unsafe { (self.drmModeFreeResources)(ptr) }
}
pub unsafe fn drmModeFreeFB(&self, ptr: drmModeFBPtr) {
unsafe { (self.drmModeFreeFB)(ptr) }
}
pub unsafe fn drmModeFreeFB2(&self, ptr: drmModeFB2Ptr) {
unsafe { (self.drmModeFreeFB2)(ptr) }
}
pub unsafe fn drmModeFreeCrtc(&self, ptr: drmModeCrtcPtr) {
unsafe { (self.drmModeFreeCrtc)(ptr) }
}
pub unsafe fn drmModeFreeConnector(&self, ptr: drmModeConnectorPtr) {
unsafe { (self.drmModeFreeConnector)(ptr) }
}
pub unsafe fn drmModeFreeEncoder(&self, ptr: drmModeEncoderPtr) {
unsafe { (self.drmModeFreeEncoder)(ptr) }
}
pub unsafe fn drmModeFreePlane(&self, ptr: drmModePlanePtr) {
unsafe { (self.drmModeFreePlane)(ptr) }
}
pub unsafe fn drmModeFreePlaneResources(&self, ptr: drmModePlaneResPtr) {
unsafe { (self.drmModeFreePlaneResources)(ptr) }
}
pub unsafe fn drmIsKMS(&self, fd: ::core::ffi::c_int) -> ::core::ffi::c_int {
unsafe { (self.drmIsKMS)(fd) }
}
pub unsafe fn drmModeGetResources(&self, fd: ::core::ffi::c_int) -> drmModeResPtr {
unsafe { (self.drmModeGetResources)(fd) }
}
pub unsafe fn drmModeGetFB(&self, fd: ::core::ffi::c_int, bufferId: u32) -> drmModeFBPtr {
unsafe { (self.drmModeGetFB)(fd, bufferId) }
}
pub unsafe fn drmModeGetFB2(&self, fd: ::core::ffi::c_int, bufferId: u32) -> drmModeFB2Ptr {
unsafe { (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 {
unsafe { (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 {
unsafe {
(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 {
unsafe {
(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 {
unsafe { (self.drmModeRmFB)(fd, bufferId) }
}
pub unsafe fn drmModeCloseFB(
&self,
fd: ::core::ffi::c_int,
buffer_id: u32,
) -> ::core::ffi::c_int {
unsafe { (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 {
unsafe { (self.drmModeDirtyFB)(fd, bufferId, clips, num_clips) }
}
pub unsafe fn drmModeGetCrtc(&self, fd: ::core::ffi::c_int, crtcId: u32) -> drmModeCrtcPtr {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (self.drmModeMoveCursor)(fd, crtcId, x, y) }
}
pub unsafe fn drmModeGetEncoder(
&self,
fd: ::core::ffi::c_int,
encoder_id: u32,
) -> drmModeEncoderPtr {
unsafe { (self.drmModeGetEncoder)(fd, encoder_id) }
}
pub unsafe fn drmModeGetConnector(
&self,
fd: ::core::ffi::c_int,
connectorId: u32,
) -> drmModeConnectorPtr {
unsafe { (self.drmModeGetConnector)(fd, connectorId) }
}
pub unsafe fn drmModeGetConnectorCurrent(
&self,
fd: ::core::ffi::c_int,
connector_id: u32,
) -> drmModeConnectorPtr {
unsafe { (self.drmModeGetConnectorCurrent)(fd, connector_id) }
}
pub unsafe fn drmModeConnectorGetPossibleCrtcs(
&self,
fd: ::core::ffi::c_int,
connector: *const drmModeConnector,
) -> u32 {
unsafe { (self.drmModeConnectorGetPossibleCrtcs)(fd, connector) }
}
pub unsafe fn drmModeAttachMode(
&self,
fd: ::core::ffi::c_int,
connectorId: u32,
mode_info: drmModeModeInfoPtr,
) -> ::core::ffi::c_int {
unsafe { (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 {
unsafe { (self.drmModeDetachMode)(fd, connectorId, mode_info) }
}
pub unsafe fn drmModeGetProperty(
&self,
fd: ::core::ffi::c_int,
propertyId: u32,
) -> drmModePropertyPtr {
unsafe { (self.drmModeGetProperty)(fd, propertyId) }
}
pub unsafe fn drmModeFreeProperty(&self, ptr: drmModePropertyPtr) {
unsafe { (self.drmModeFreeProperty)(ptr) }
}
pub unsafe fn drmModeGetPropertyBlob(
&self,
fd: ::core::ffi::c_int,
blob_id: u32,
) -> drmModePropertyBlobPtr {
unsafe { (self.drmModeGetPropertyBlob)(fd, blob_id) }
}
pub unsafe fn drmModeFormatModifierBlobIterNext(
&self,
blob: *const drmModePropertyBlobRes,
iter: *mut drmModeFormatModifierIterator,
) -> bool {
unsafe { (self.drmModeFormatModifierBlobIterNext)(blob, iter) }
}
pub unsafe fn drmModeFreePropertyBlob(&self, ptr: drmModePropertyBlobPtr) {
unsafe { (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 {
unsafe { (self.drmModeConnectorSetProperty)(fd, connector_id, property_id, value) }
}
pub unsafe fn drmCheckModesettingSupported(
&self,
busid: *const ::core::ffi::c_char,
) -> ::core::ffi::c_int {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (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 {
unsafe { (self.drmModePageFlipTarget)(fd, crtc_id, fb_id, flags, user_data, target_vblank) }
}
pub unsafe fn drmModeGetPlaneResources(&self, fd: ::core::ffi::c_int) -> drmModePlaneResPtr {
unsafe { (self.drmModeGetPlaneResources)(fd) }
}
pub unsafe fn drmModeGetPlane(&self, fd: ::core::ffi::c_int, plane_id: u32) -> drmModePlanePtr {
unsafe { (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 {
unsafe {
(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 {
unsafe { (self.drmModeObjectGetProperties)(fd, object_id, object_type) }
}
pub unsafe fn drmModeFreeObjectProperties(&self, ptr: drmModeObjectPropertiesPtr) {
unsafe { (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 {
unsafe { (self.drmModeObjectSetProperty)(fd, object_id, object_type, property_id, value) }
}
pub unsafe fn drmModeAtomicAlloc(&self) -> drmModeAtomicReqPtr {
unsafe { (self.drmModeAtomicAlloc)() }
}
pub unsafe fn drmModeAtomicDuplicate(&self, req: drmModeAtomicReqPtr) -> drmModeAtomicReqPtr {
unsafe { (self.drmModeAtomicDuplicate)(req) }
}
pub unsafe fn drmModeAtomicMerge(
&self,
base: drmModeAtomicReqPtr,
augment: drmModeAtomicReqPtr,
) -> ::core::ffi::c_int {
unsafe { (self.drmModeAtomicMerge)(base, augment) }
}
pub unsafe fn drmModeAtomicFree(&self, req: drmModeAtomicReqPtr) {
unsafe { (self.drmModeAtomicFree)(req) }
}
pub unsafe fn drmModeAtomicGetCursor(&self, req: drmModeAtomicReqPtr) -> ::core::ffi::c_int {
unsafe { (self.drmModeAtomicGetCursor)(req) }
}
pub unsafe fn drmModeAtomicSetCursor(
&self,
req: drmModeAtomicReqPtr,
cursor: ::core::ffi::c_int,
) {
unsafe { (self.drmModeAtomicSetCursor)(req, cursor) }
}
pub unsafe fn drmModeAtomicAddProperty(
&self,
req: drmModeAtomicReqPtr,
object_id: u32,
property_id: u32,
value: u64,
) -> ::core::ffi::c_int {
unsafe { (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 {
unsafe { (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 {
unsafe { (self.drmModeCreatePropertyBlob)(fd, data, size, id) }
}
pub unsafe fn drmModeDestroyPropertyBlob(
&self,
fd: ::core::ffi::c_int,
id: u32,
) -> ::core::ffi::c_int {
unsafe { (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 {
unsafe { (self.drmModeCreateLease)(fd, objects, num_objects, flags, lessee_id) }
}
pub unsafe fn drmModeListLessees(&self, fd: ::core::ffi::c_int) -> drmModeLesseeListPtr {
unsafe { (self.drmModeListLessees)(fd) }
}
pub unsafe fn drmModeGetLease(&self, fd: ::core::ffi::c_int) -> drmModeObjectListPtr {
unsafe { (self.drmModeGetLease)(fd) }
}
pub unsafe fn drmModeRevokeLease(
&self,
fd: ::core::ffi::c_int,
lessee_id: u32,
) -> ::core::ffi::c_int {
unsafe { (self.drmModeRevokeLease)(fd, lessee_id) }
}
pub unsafe fn drmModeGetConnectorTypeName(
&self,
connector_type: u32,
) -> *const ::core::ffi::c_char {
unsafe { (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 {
unsafe {
(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 {
unsafe { (self.drmModeDestroyDumbBuffer)(fd, handle) }
}
pub unsafe fn drmModeMapDumbBuffer(
&self,
fd: ::core::ffi::c_int,
handle: u32,
offset: *mut u64,
) -> ::core::ffi::c_int {
unsafe { (self.drmModeMapDumbBuffer)(fd, handle, offset) }
}
}