drm_sys/
bindings.rs

1/* automatically generated by rust-bindgen 0.69.4 */
2
3pub const DRM_NAME: &[u8; 4] = b"drm\0";
4pub const DRM_MIN_ORDER: u32 = 5;
5pub const DRM_MAX_ORDER: u32 = 22;
6pub const DRM_RAM_PERCENT: u32 = 10;
7pub const _DRM_LOCK_HELD: u32 = 2147483648;
8pub const _DRM_LOCK_CONT: u32 = 1073741824;
9pub const _DRM_VBLANK_HIGH_CRTC_SHIFT: u32 = 1;
10pub const _DRM_PRE_MODESET: u32 = 1;
11pub const _DRM_POST_MODESET: u32 = 2;
12pub const DRM_CAP_DUMB_BUFFER: u32 = 1;
13pub const DRM_CAP_VBLANK_HIGH_CRTC: u32 = 2;
14pub const DRM_CAP_DUMB_PREFERRED_DEPTH: u32 = 3;
15pub const DRM_CAP_DUMB_PREFER_SHADOW: u32 = 4;
16pub const DRM_CAP_PRIME: u32 = 5;
17pub const DRM_PRIME_CAP_IMPORT: u32 = 1;
18pub const DRM_PRIME_CAP_EXPORT: u32 = 2;
19pub const DRM_CAP_TIMESTAMP_MONOTONIC: u32 = 6;
20pub const DRM_CAP_ASYNC_PAGE_FLIP: u32 = 7;
21pub const DRM_CAP_CURSOR_WIDTH: u32 = 8;
22pub const DRM_CAP_CURSOR_HEIGHT: u32 = 9;
23pub const DRM_CAP_ADDFB2_MODIFIERS: u32 = 16;
24pub const DRM_CAP_PAGE_FLIP_TARGET: u32 = 17;
25pub const DRM_CAP_CRTC_IN_VBLANK_EVENT: u32 = 18;
26pub const DRM_CAP_SYNCOBJ: u32 = 19;
27pub const DRM_CAP_SYNCOBJ_TIMELINE: u32 = 20;
28pub const DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP: u32 = 21;
29pub const DRM_CLIENT_CAP_STEREO_3D: u32 = 1;
30pub const DRM_CLIENT_CAP_UNIVERSAL_PLANES: u32 = 2;
31pub const DRM_CLIENT_CAP_ATOMIC: u32 = 3;
32pub const DRM_CLIENT_CAP_ASPECT_RATIO: u32 = 4;
33pub const DRM_CLIENT_CAP_WRITEBACK_CONNECTORS: u32 = 5;
34pub const DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT: u32 = 6;
35pub const DRM_SYNCOBJ_CREATE_SIGNALED: u32 = 1;
36pub const DRM_SYNCOBJ_FD_TO_HANDLE_FLAGS_IMPORT_SYNC_FILE: u32 = 1;
37pub const DRM_SYNCOBJ_HANDLE_TO_FD_FLAGS_EXPORT_SYNC_FILE: u32 = 1;
38pub const DRM_SYNCOBJ_WAIT_FLAGS_WAIT_ALL: u32 = 1;
39pub const DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT: u32 = 2;
40pub const DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE: u32 = 4;
41pub const DRM_SYNCOBJ_WAIT_FLAGS_WAIT_DEADLINE: u32 = 8;
42pub const DRM_SYNCOBJ_QUERY_FLAGS_LAST_SUBMITTED: u32 = 1;
43pub const DRM_CRTC_SEQUENCE_RELATIVE: u32 = 1;
44pub const DRM_CRTC_SEQUENCE_NEXT_ON_MISS: u32 = 2;
45pub const DRM_CONNECTOR_NAME_LEN: u32 = 32;
46pub const DRM_DISPLAY_MODE_LEN: u32 = 32;
47pub const DRM_PROP_NAME_LEN: u32 = 32;
48pub const DRM_MODE_TYPE_BUILTIN: u32 = 1;
49pub const DRM_MODE_TYPE_CLOCK_C: u32 = 3;
50pub const DRM_MODE_TYPE_CRTC_C: u32 = 5;
51pub const DRM_MODE_TYPE_PREFERRED: u32 = 8;
52pub const DRM_MODE_TYPE_DEFAULT: u32 = 16;
53pub const DRM_MODE_TYPE_USERDEF: u32 = 32;
54pub const DRM_MODE_TYPE_DRIVER: u32 = 64;
55pub const DRM_MODE_TYPE_ALL: u32 = 104;
56pub const DRM_MODE_FLAG_PHSYNC: u32 = 1;
57pub const DRM_MODE_FLAG_NHSYNC: u32 = 2;
58pub const DRM_MODE_FLAG_PVSYNC: u32 = 4;
59pub const DRM_MODE_FLAG_NVSYNC: u32 = 8;
60pub const DRM_MODE_FLAG_INTERLACE: u32 = 16;
61pub const DRM_MODE_FLAG_DBLSCAN: u32 = 32;
62pub const DRM_MODE_FLAG_CSYNC: u32 = 64;
63pub const DRM_MODE_FLAG_PCSYNC: u32 = 128;
64pub const DRM_MODE_FLAG_NCSYNC: u32 = 256;
65pub const DRM_MODE_FLAG_HSKEW: u32 = 512;
66pub const DRM_MODE_FLAG_BCAST: u32 = 1024;
67pub const DRM_MODE_FLAG_PIXMUX: u32 = 2048;
68pub const DRM_MODE_FLAG_DBLCLK: u32 = 4096;
69pub const DRM_MODE_FLAG_CLKDIV2: u32 = 8192;
70pub const DRM_MODE_FLAG_3D_MASK: u32 = 507904;
71pub const DRM_MODE_FLAG_3D_NONE: u32 = 0;
72pub const DRM_MODE_FLAG_3D_FRAME_PACKING: u32 = 16384;
73pub const DRM_MODE_FLAG_3D_FIELD_ALTERNATIVE: u32 = 32768;
74pub const DRM_MODE_FLAG_3D_LINE_ALTERNATIVE: u32 = 49152;
75pub const DRM_MODE_FLAG_3D_SIDE_BY_SIDE_FULL: u32 = 65536;
76pub const DRM_MODE_FLAG_3D_L_DEPTH: u32 = 81920;
77pub const DRM_MODE_FLAG_3D_L_DEPTH_GFX_GFX_DEPTH: u32 = 98304;
78pub const DRM_MODE_FLAG_3D_TOP_AND_BOTTOM: u32 = 114688;
79pub const DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF: u32 = 131072;
80pub const DRM_MODE_PICTURE_ASPECT_NONE: u32 = 0;
81pub const DRM_MODE_PICTURE_ASPECT_4_3: u32 = 1;
82pub const DRM_MODE_PICTURE_ASPECT_16_9: u32 = 2;
83pub const DRM_MODE_PICTURE_ASPECT_64_27: u32 = 3;
84pub const DRM_MODE_PICTURE_ASPECT_256_135: u32 = 4;
85pub const DRM_MODE_CONTENT_TYPE_NO_DATA: u32 = 0;
86pub const DRM_MODE_CONTENT_TYPE_GRAPHICS: u32 = 1;
87pub const DRM_MODE_CONTENT_TYPE_PHOTO: u32 = 2;
88pub const DRM_MODE_CONTENT_TYPE_CINEMA: u32 = 3;
89pub const DRM_MODE_CONTENT_TYPE_GAME: u32 = 4;
90pub const DRM_MODE_FLAG_PIC_AR_MASK: u32 = 7864320;
91pub const DRM_MODE_FLAG_PIC_AR_NONE: u32 = 0;
92pub const DRM_MODE_FLAG_PIC_AR_4_3: u32 = 524288;
93pub const DRM_MODE_FLAG_PIC_AR_16_9: u32 = 1048576;
94pub const DRM_MODE_FLAG_PIC_AR_64_27: u32 = 1572864;
95pub const DRM_MODE_FLAG_PIC_AR_256_135: u32 = 2097152;
96pub const DRM_MODE_FLAG_ALL: u32 = 521215;
97pub const DRM_MODE_DPMS_ON: u32 = 0;
98pub const DRM_MODE_DPMS_STANDBY: u32 = 1;
99pub const DRM_MODE_DPMS_SUSPEND: u32 = 2;
100pub const DRM_MODE_DPMS_OFF: u32 = 3;
101pub const DRM_MODE_SCALE_NONE: u32 = 0;
102pub const DRM_MODE_SCALE_FULLSCREEN: u32 = 1;
103pub const DRM_MODE_SCALE_CENTER: u32 = 2;
104pub const DRM_MODE_SCALE_ASPECT: u32 = 3;
105pub const DRM_MODE_DITHERING_OFF: u32 = 0;
106pub const DRM_MODE_DITHERING_ON: u32 = 1;
107pub const DRM_MODE_DITHERING_AUTO: u32 = 2;
108pub const DRM_MODE_DIRTY_OFF: u32 = 0;
109pub const DRM_MODE_DIRTY_ON: u32 = 1;
110pub const DRM_MODE_DIRTY_ANNOTATE: u32 = 2;
111pub const DRM_MODE_LINK_STATUS_GOOD: u32 = 0;
112pub const DRM_MODE_LINK_STATUS_BAD: u32 = 1;
113pub const DRM_MODE_ROTATE_0: u32 = 1;
114pub const DRM_MODE_ROTATE_90: u32 = 2;
115pub const DRM_MODE_ROTATE_180: u32 = 4;
116pub const DRM_MODE_ROTATE_270: u32 = 8;
117pub const DRM_MODE_ROTATE_MASK: u32 = 15;
118pub const DRM_MODE_REFLECT_X: u32 = 16;
119pub const DRM_MODE_REFLECT_Y: u32 = 32;
120pub const DRM_MODE_REFLECT_MASK: u32 = 48;
121pub const DRM_MODE_CONTENT_PROTECTION_UNDESIRED: u32 = 0;
122pub const DRM_MODE_CONTENT_PROTECTION_DESIRED: u32 = 1;
123pub const DRM_MODE_CONTENT_PROTECTION_ENABLED: u32 = 2;
124pub const DRM_MODE_PRESENT_TOP_FIELD: u32 = 1;
125pub const DRM_MODE_PRESENT_BOTTOM_FIELD: u32 = 2;
126pub const DRM_MODE_ENCODER_NONE: u32 = 0;
127pub const DRM_MODE_ENCODER_DAC: u32 = 1;
128pub const DRM_MODE_ENCODER_TMDS: u32 = 2;
129pub const DRM_MODE_ENCODER_LVDS: u32 = 3;
130pub const DRM_MODE_ENCODER_TVDAC: u32 = 4;
131pub const DRM_MODE_ENCODER_VIRTUAL: u32 = 5;
132pub const DRM_MODE_ENCODER_DSI: u32 = 6;
133pub const DRM_MODE_ENCODER_DPMST: u32 = 7;
134pub const DRM_MODE_ENCODER_DPI: u32 = 8;
135pub const DRM_MODE_CONNECTOR_Unknown: u32 = 0;
136pub const DRM_MODE_CONNECTOR_VGA: u32 = 1;
137pub const DRM_MODE_CONNECTOR_DVII: u32 = 2;
138pub const DRM_MODE_CONNECTOR_DVID: u32 = 3;
139pub const DRM_MODE_CONNECTOR_DVIA: u32 = 4;
140pub const DRM_MODE_CONNECTOR_Composite: u32 = 5;
141pub const DRM_MODE_CONNECTOR_SVIDEO: u32 = 6;
142pub const DRM_MODE_CONNECTOR_LVDS: u32 = 7;
143pub const DRM_MODE_CONNECTOR_Component: u32 = 8;
144pub const DRM_MODE_CONNECTOR_9PinDIN: u32 = 9;
145pub const DRM_MODE_CONNECTOR_DisplayPort: u32 = 10;
146pub const DRM_MODE_CONNECTOR_HDMIA: u32 = 11;
147pub const DRM_MODE_CONNECTOR_HDMIB: u32 = 12;
148pub const DRM_MODE_CONNECTOR_TV: u32 = 13;
149pub const DRM_MODE_CONNECTOR_eDP: u32 = 14;
150pub const DRM_MODE_CONNECTOR_VIRTUAL: u32 = 15;
151pub const DRM_MODE_CONNECTOR_DSI: u32 = 16;
152pub const DRM_MODE_CONNECTOR_DPI: u32 = 17;
153pub const DRM_MODE_CONNECTOR_WRITEBACK: u32 = 18;
154pub const DRM_MODE_CONNECTOR_SPI: u32 = 19;
155pub const DRM_MODE_CONNECTOR_USB: u32 = 20;
156pub const DRM_MODE_PROP_PENDING: u32 = 1;
157pub const DRM_MODE_PROP_RANGE: u32 = 2;
158pub const DRM_MODE_PROP_IMMUTABLE: u32 = 4;
159pub const DRM_MODE_PROP_ENUM: u32 = 8;
160pub const DRM_MODE_PROP_BLOB: u32 = 16;
161pub const DRM_MODE_PROP_BITMASK: u32 = 32;
162pub const DRM_MODE_PROP_LEGACY_TYPE: u32 = 58;
163pub const DRM_MODE_PROP_EXTENDED_TYPE: u32 = 65472;
164pub const DRM_MODE_PROP_ATOMIC: u32 = 2147483648;
165pub const DRM_MODE_OBJECT_CRTC: u32 = 3435973836;
166pub const DRM_MODE_OBJECT_CONNECTOR: u32 = 3233857728;
167pub const DRM_MODE_OBJECT_ENCODER: u32 = 3772834016;
168pub const DRM_MODE_OBJECT_MODE: u32 = 3739147998;
169pub const DRM_MODE_OBJECT_PROPERTY: u32 = 2964369584;
170pub const DRM_MODE_OBJECT_FB: u32 = 4227595259;
171pub const DRM_MODE_OBJECT_BLOB: u32 = 3149642683;
172pub const DRM_MODE_OBJECT_PLANE: u32 = 4008636142;
173pub const DRM_MODE_OBJECT_ANY: u32 = 0;
174pub const DRM_MODE_FB_INTERLACED: u32 = 1;
175pub const DRM_MODE_FB_MODIFIERS: u32 = 2;
176pub const DRM_MODE_FB_DIRTY_ANNOTATE_COPY: u32 = 1;
177pub const DRM_MODE_FB_DIRTY_ANNOTATE_FILL: u32 = 2;
178pub const DRM_MODE_FB_DIRTY_FLAGS: u32 = 3;
179pub const DRM_MODE_FB_DIRTY_MAX_CLIPS: u32 = 256;
180pub const DRM_MODE_CURSOR_BO: u32 = 1;
181pub const DRM_MODE_CURSOR_MOVE: u32 = 2;
182pub const DRM_MODE_CURSOR_FLAGS: u32 = 3;
183pub const DRM_MODE_PAGE_FLIP_EVENT: u32 = 1;
184pub const DRM_MODE_PAGE_FLIP_ASYNC: u32 = 2;
185pub const DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE: u32 = 4;
186pub const DRM_MODE_PAGE_FLIP_TARGET_RELATIVE: u32 = 8;
187pub const DRM_MODE_PAGE_FLIP_TARGET: u32 = 12;
188pub const DRM_MODE_PAGE_FLIP_FLAGS: u32 = 15;
189pub const DRM_MODE_ATOMIC_TEST_ONLY: u32 = 256;
190pub const DRM_MODE_ATOMIC_NONBLOCK: u32 = 512;
191pub const DRM_MODE_ATOMIC_ALLOW_MODESET: u32 = 1024;
192pub const DRM_MODE_ATOMIC_FLAGS: u32 = 1795;
193pub const DRM_IOCTL_BASE: u8 = 100u8;
194pub const DRM_COMMAND_BASE: u32 = 64;
195pub const DRM_COMMAND_END: u32 = 160;
196pub const DRM_EVENT_VBLANK: u32 = 1;
197pub const DRM_EVENT_FLIP_COMPLETE: u32 = 2;
198pub const DRM_EVENT_CRTC_SEQUENCE: u32 = 3;
199pub type __u8 = core::ffi::c_uchar;
200pub type __u16 = core::ffi::c_ushort;
201pub type __s32 = core::ffi::c_int;
202pub type __u32 = core::ffi::c_uint;
203pub type __s64 = core::ffi::c_longlong;
204pub type __u64 = core::ffi::c_ulonglong;
205pub type drm_context_t = core::ffi::c_uint;
206pub type drm_drawable_t = core::ffi::c_uint;
207pub type drm_magic_t = core::ffi::c_uint;
208#[repr(C)]
209#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
210pub struct drm_clip_rect {
211    pub x1: core::ffi::c_ushort,
212    pub y1: core::ffi::c_ushort,
213    pub x2: core::ffi::c_ushort,
214    pub y2: core::ffi::c_ushort,
215}
216#[repr(C)]
217#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
218pub struct drm_drawable_info {
219    pub num_rects: core::ffi::c_uint,
220    pub rects: *mut drm_clip_rect,
221}
222impl Default for drm_drawable_info {
223    fn default() -> Self {
224        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
225        unsafe {
226            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
227            s.assume_init()
228        }
229    }
230}
231#[repr(C)]
232#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
233pub struct drm_tex_region {
234    pub next: core::ffi::c_uchar,
235    pub prev: core::ffi::c_uchar,
236    pub in_use: core::ffi::c_uchar,
237    pub padding: core::ffi::c_uchar,
238    pub age: core::ffi::c_uint,
239}
240#[repr(C)]
241#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
242pub struct drm_hw_lock {
243    pub lock: core::ffi::c_uint,
244    pub padding: [core::ffi::c_char; 60usize],
245}
246impl Default for drm_hw_lock {
247    fn default() -> Self {
248        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
249        unsafe {
250            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
251            s.assume_init()
252        }
253    }
254}
255#[repr(C)]
256#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
257pub struct drm_version {
258    pub version_major: core::ffi::c_int,
259    pub version_minor: core::ffi::c_int,
260    pub version_patchlevel: core::ffi::c_int,
261    pub name_len: __kernel_size_t,
262    pub name: *mut core::ffi::c_char,
263    pub date_len: __kernel_size_t,
264    pub date: *mut core::ffi::c_char,
265    pub desc_len: __kernel_size_t,
266    pub desc: *mut core::ffi::c_char,
267}
268impl Default for drm_version {
269    fn default() -> Self {
270        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
271        unsafe {
272            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
273            s.assume_init()
274        }
275    }
276}
277#[repr(C)]
278#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
279pub struct drm_unique {
280    pub unique_len: __kernel_size_t,
281    pub unique: *mut core::ffi::c_char,
282}
283impl Default for drm_unique {
284    fn default() -> Self {
285        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
286        unsafe {
287            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
288            s.assume_init()
289        }
290    }
291}
292#[repr(C)]
293#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
294pub struct drm_list {
295    pub count: core::ffi::c_int,
296    pub version: *mut drm_version,
297}
298impl Default for drm_list {
299    fn default() -> Self {
300        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
301        unsafe {
302            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
303            s.assume_init()
304        }
305    }
306}
307#[repr(C)]
308#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
309pub struct drm_block {
310    pub unused: core::ffi::c_int,
311}
312#[repr(C)]
313#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
314pub struct drm_control {
315    pub func: drm_control__bindgen_ty_1::Type,
316    pub irq: core::ffi::c_int,
317}
318pub mod drm_control__bindgen_ty_1 {
319    pub type Type = core::ffi::c_uint;
320    pub const DRM_ADD_COMMAND: Type = 0;
321    pub const DRM_RM_COMMAND: Type = 1;
322    pub const DRM_INST_HANDLER: Type = 2;
323    pub const DRM_UNINST_HANDLER: Type = 3;
324}
325impl Default for drm_control {
326    fn default() -> Self {
327        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
328        unsafe {
329            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
330            s.assume_init()
331        }
332    }
333}
334pub mod drm_map_type {
335    pub type Type = core::ffi::c_uint;
336    pub const _DRM_FRAME_BUFFER: Type = 0;
337    pub const _DRM_REGISTERS: Type = 1;
338    pub const _DRM_SHM: Type = 2;
339    pub const _DRM_AGP: Type = 3;
340    pub const _DRM_SCATTER_GATHER: Type = 4;
341    pub const _DRM_CONSISTENT: Type = 5;
342}
343pub mod drm_map_flags {
344    pub type Type = core::ffi::c_uint;
345    pub const _DRM_RESTRICTED: Type = 1;
346    pub const _DRM_READ_ONLY: Type = 2;
347    pub const _DRM_LOCKED: Type = 4;
348    pub const _DRM_KERNEL: Type = 8;
349    pub const _DRM_WRITE_COMBINING: Type = 16;
350    pub const _DRM_CONTAINS_LOCK: Type = 32;
351    pub const _DRM_REMOVABLE: Type = 64;
352    pub const _DRM_DRIVER: Type = 128;
353}
354#[repr(C)]
355#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
356pub struct drm_ctx_priv_map {
357    pub ctx_id: core::ffi::c_uint,
358    pub handle: *mut core::ffi::c_void,
359}
360impl Default for drm_ctx_priv_map {
361    fn default() -> Self {
362        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
363        unsafe {
364            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
365            s.assume_init()
366        }
367    }
368}
369#[repr(C)]
370#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
371pub struct drm_map {
372    pub offset: core::ffi::c_ulong,
373    pub size: core::ffi::c_ulong,
374    pub type_: drm_map_type::Type,
375    pub flags: drm_map_flags::Type,
376    pub handle: *mut core::ffi::c_void,
377    pub mtrr: core::ffi::c_int,
378}
379impl Default for drm_map {
380    fn default() -> Self {
381        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
382        unsafe {
383            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
384            s.assume_init()
385        }
386    }
387}
388#[repr(C)]
389#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
390pub struct drm_client {
391    pub idx: core::ffi::c_int,
392    pub auth: core::ffi::c_int,
393    pub pid: core::ffi::c_ulong,
394    pub uid: core::ffi::c_ulong,
395    pub magic: core::ffi::c_ulong,
396    pub iocs: core::ffi::c_ulong,
397}
398pub mod drm_stat_type {
399    pub type Type = core::ffi::c_uint;
400    pub const _DRM_STAT_LOCK: Type = 0;
401    pub const _DRM_STAT_OPENS: Type = 1;
402    pub const _DRM_STAT_CLOSES: Type = 2;
403    pub const _DRM_STAT_IOCTLS: Type = 3;
404    pub const _DRM_STAT_LOCKS: Type = 4;
405    pub const _DRM_STAT_UNLOCKS: Type = 5;
406    pub const _DRM_STAT_VALUE: Type = 6;
407    pub const _DRM_STAT_BYTE: Type = 7;
408    pub const _DRM_STAT_COUNT: Type = 8;
409    pub const _DRM_STAT_IRQ: Type = 9;
410    pub const _DRM_STAT_PRIMARY: Type = 10;
411    pub const _DRM_STAT_SECONDARY: Type = 11;
412    pub const _DRM_STAT_DMA: Type = 12;
413    pub const _DRM_STAT_SPECIAL: Type = 13;
414    pub const _DRM_STAT_MISSED: Type = 14;
415}
416#[repr(C)]
417#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
418pub struct drm_stats {
419    pub count: core::ffi::c_ulong,
420    pub data: [drm_stats__bindgen_ty_1; 15usize],
421}
422#[repr(C)]
423#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
424pub struct drm_stats__bindgen_ty_1 {
425    pub value: core::ffi::c_ulong,
426    pub type_: drm_stat_type::Type,
427}
428impl Default for drm_stats__bindgen_ty_1 {
429    fn default() -> Self {
430        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
431        unsafe {
432            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
433            s.assume_init()
434        }
435    }
436}
437impl Default for drm_stats {
438    fn default() -> Self {
439        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
440        unsafe {
441            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
442            s.assume_init()
443        }
444    }
445}
446pub mod drm_lock_flags {
447    pub type Type = core::ffi::c_uint;
448    pub const _DRM_LOCK_READY: Type = 1;
449    pub const _DRM_LOCK_QUIESCENT: Type = 2;
450    pub const _DRM_LOCK_FLUSH: Type = 4;
451    pub const _DRM_LOCK_FLUSH_ALL: Type = 8;
452    pub const _DRM_HALT_ALL_QUEUES: Type = 16;
453    pub const _DRM_HALT_CUR_QUEUES: Type = 32;
454}
455#[repr(C)]
456#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
457pub struct drm_lock {
458    pub context: core::ffi::c_int,
459    pub flags: drm_lock_flags::Type,
460}
461impl Default for drm_lock {
462    fn default() -> Self {
463        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
464        unsafe {
465            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
466            s.assume_init()
467        }
468    }
469}
470pub mod drm_dma_flags {
471    pub type Type = core::ffi::c_uint;
472    pub const _DRM_DMA_BLOCK: Type = 1;
473    pub const _DRM_DMA_WHILE_LOCKED: Type = 2;
474    pub const _DRM_DMA_PRIORITY: Type = 4;
475    pub const _DRM_DMA_WAIT: Type = 16;
476    pub const _DRM_DMA_SMALLER_OK: Type = 32;
477    pub const _DRM_DMA_LARGER_OK: Type = 64;
478}
479#[repr(C)]
480#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
481pub struct drm_buf_desc {
482    pub count: core::ffi::c_int,
483    pub size: core::ffi::c_int,
484    pub low_mark: core::ffi::c_int,
485    pub high_mark: core::ffi::c_int,
486    pub flags: drm_buf_desc__bindgen_ty_1::Type,
487    pub agp_start: core::ffi::c_ulong,
488}
489pub mod drm_buf_desc__bindgen_ty_1 {
490    pub type Type = core::ffi::c_uint;
491    pub const _DRM_PAGE_ALIGN: Type = 1;
492    pub const _DRM_AGP_BUFFER: Type = 2;
493    pub const _DRM_SG_BUFFER: Type = 4;
494    pub const _DRM_FB_BUFFER: Type = 8;
495    pub const _DRM_PCI_BUFFER_RO: Type = 16;
496}
497impl Default for drm_buf_desc {
498    fn default() -> Self {
499        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
500        unsafe {
501            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
502            s.assume_init()
503        }
504    }
505}
506#[repr(C)]
507#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
508pub struct drm_buf_info {
509    pub count: core::ffi::c_int,
510    pub list: *mut drm_buf_desc,
511}
512impl Default for drm_buf_info {
513    fn default() -> Self {
514        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
515        unsafe {
516            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
517            s.assume_init()
518        }
519    }
520}
521#[repr(C)]
522#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
523pub struct drm_buf_free {
524    pub count: core::ffi::c_int,
525    pub list: *mut core::ffi::c_int,
526}
527impl Default for drm_buf_free {
528    fn default() -> Self {
529        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
530        unsafe {
531            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
532            s.assume_init()
533        }
534    }
535}
536#[repr(C)]
537#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
538pub struct drm_buf_pub {
539    pub idx: core::ffi::c_int,
540    pub total: core::ffi::c_int,
541    pub used: core::ffi::c_int,
542    pub address: *mut core::ffi::c_void,
543}
544impl Default for drm_buf_pub {
545    fn default() -> Self {
546        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
547        unsafe {
548            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
549            s.assume_init()
550        }
551    }
552}
553#[repr(C)]
554#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
555pub struct drm_buf_map {
556    pub count: core::ffi::c_int,
557    pub virtual_: *mut core::ffi::c_void,
558    pub list: *mut drm_buf_pub,
559}
560impl Default for drm_buf_map {
561    fn default() -> Self {
562        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
563        unsafe {
564            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
565            s.assume_init()
566        }
567    }
568}
569#[repr(C)]
570#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
571pub struct drm_dma {
572    pub context: core::ffi::c_int,
573    pub send_count: core::ffi::c_int,
574    pub send_indices: *mut core::ffi::c_int,
575    pub send_sizes: *mut core::ffi::c_int,
576    pub flags: drm_dma_flags::Type,
577    pub request_count: core::ffi::c_int,
578    pub request_size: core::ffi::c_int,
579    pub request_indices: *mut core::ffi::c_int,
580    pub request_sizes: *mut core::ffi::c_int,
581    pub granted_count: core::ffi::c_int,
582}
583impl Default for drm_dma {
584    fn default() -> Self {
585        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
586        unsafe {
587            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
588            s.assume_init()
589        }
590    }
591}
592pub mod drm_ctx_flags {
593    pub type Type = core::ffi::c_uint;
594    pub const _DRM_CONTEXT_PRESERVED: Type = 1;
595    pub const _DRM_CONTEXT_2DONLY: Type = 2;
596}
597#[repr(C)]
598#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
599pub struct drm_ctx {
600    pub handle: drm_context_t,
601    pub flags: drm_ctx_flags::Type,
602}
603impl Default for drm_ctx {
604    fn default() -> Self {
605        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
606        unsafe {
607            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
608            s.assume_init()
609        }
610    }
611}
612#[repr(C)]
613#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
614pub struct drm_ctx_res {
615    pub count: core::ffi::c_int,
616    pub contexts: *mut drm_ctx,
617}
618impl Default for drm_ctx_res {
619    fn default() -> Self {
620        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
621        unsafe {
622            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
623            s.assume_init()
624        }
625    }
626}
627#[repr(C)]
628#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
629pub struct drm_draw {
630    pub handle: drm_drawable_t,
631}
632pub mod drm_drawable_info_type_t {
633    pub type Type = core::ffi::c_uint;
634    pub const DRM_DRAWABLE_CLIPRECTS: Type = 0;
635}
636#[repr(C)]
637#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
638pub struct drm_update_draw {
639    pub handle: drm_drawable_t,
640    pub type_: core::ffi::c_uint,
641    pub num: core::ffi::c_uint,
642    pub data: core::ffi::c_ulonglong,
643}
644#[repr(C)]
645#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
646pub struct drm_auth {
647    pub magic: drm_magic_t,
648}
649#[repr(C)]
650#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
651pub struct drm_irq_busid {
652    pub irq: core::ffi::c_int,
653    pub busnum: core::ffi::c_int,
654    pub devnum: core::ffi::c_int,
655    pub funcnum: core::ffi::c_int,
656}
657pub mod drm_vblank_seq_type {
658    pub type Type = core::ffi::c_uint;
659    pub const _DRM_VBLANK_ABSOLUTE: Type = 0;
660    pub const _DRM_VBLANK_RELATIVE: Type = 1;
661    pub const _DRM_VBLANK_HIGH_CRTC_MASK: Type = 62;
662    pub const _DRM_VBLANK_EVENT: Type = 67108864;
663    pub const _DRM_VBLANK_FLIP: Type = 134217728;
664    pub const _DRM_VBLANK_NEXTONMISS: Type = 268435456;
665    pub const _DRM_VBLANK_SECONDARY: Type = 536870912;
666    pub const _DRM_VBLANK_SIGNAL: Type = 1073741824;
667}
668#[repr(C)]
669#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
670pub struct drm_wait_vblank_request {
671    pub type_: drm_vblank_seq_type::Type,
672    pub sequence: core::ffi::c_uint,
673    pub signal: core::ffi::c_ulong,
674}
675impl Default for drm_wait_vblank_request {
676    fn default() -> Self {
677        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
678        unsafe {
679            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
680            s.assume_init()
681        }
682    }
683}
684#[repr(C)]
685#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
686pub struct drm_wait_vblank_reply {
687    pub type_: drm_vblank_seq_type::Type,
688    pub sequence: core::ffi::c_uint,
689    pub tval_sec: core::ffi::c_long,
690    pub tval_usec: core::ffi::c_long,
691}
692impl Default for drm_wait_vblank_reply {
693    fn default() -> Self {
694        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
695        unsafe {
696            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
697            s.assume_init()
698        }
699    }
700}
701#[repr(C)]
702#[derive(Copy, Clone)]
703pub union drm_wait_vblank {
704    pub request: drm_wait_vblank_request,
705    pub reply: drm_wait_vblank_reply,
706}
707impl Default for drm_wait_vblank {
708    fn default() -> Self {
709        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
710        unsafe {
711            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
712            s.assume_init()
713        }
714    }
715}
716#[repr(C)]
717#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
718pub struct drm_modeset_ctl {
719    pub crtc: __u32,
720    pub cmd: __u32,
721}
722#[repr(C)]
723#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
724pub struct drm_agp_mode {
725    pub mode: core::ffi::c_ulong,
726}
727#[repr(C)]
728#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
729pub struct drm_agp_buffer {
730    pub size: core::ffi::c_ulong,
731    pub handle: core::ffi::c_ulong,
732    pub type_: core::ffi::c_ulong,
733    pub physical: core::ffi::c_ulong,
734}
735#[repr(C)]
736#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
737pub struct drm_agp_binding {
738    pub handle: core::ffi::c_ulong,
739    pub offset: core::ffi::c_ulong,
740}
741#[repr(C)]
742#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
743pub struct drm_agp_info {
744    pub agp_version_major: core::ffi::c_int,
745    pub agp_version_minor: core::ffi::c_int,
746    pub mode: core::ffi::c_ulong,
747    pub aperture_base: core::ffi::c_ulong,
748    pub aperture_size: core::ffi::c_ulong,
749    pub memory_allowed: core::ffi::c_ulong,
750    pub memory_used: core::ffi::c_ulong,
751    pub id_vendor: core::ffi::c_ushort,
752    pub id_device: core::ffi::c_ushort,
753}
754#[repr(C)]
755#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
756pub struct drm_scatter_gather {
757    pub size: core::ffi::c_ulong,
758    pub handle: core::ffi::c_ulong,
759}
760#[repr(C)]
761#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
762pub struct drm_set_version {
763    pub drm_di_major: core::ffi::c_int,
764    pub drm_di_minor: core::ffi::c_int,
765    pub drm_dd_major: core::ffi::c_int,
766    pub drm_dd_minor: core::ffi::c_int,
767}
768#[repr(C)]
769#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
770pub struct drm_gem_close {
771    pub handle: __u32,
772    pub pad: __u32,
773}
774#[repr(C)]
775#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
776pub struct drm_gem_flink {
777    pub handle: __u32,
778    pub name: __u32,
779}
780#[repr(C)]
781#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
782pub struct drm_gem_open {
783    pub name: __u32,
784    pub handle: __u32,
785    pub size: __u64,
786}
787#[repr(C)]
788#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
789pub struct drm_get_cap {
790    pub capability: __u64,
791    pub value: __u64,
792}
793#[repr(C)]
794#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
795pub struct drm_set_client_cap {
796    pub capability: __u64,
797    pub value: __u64,
798}
799#[repr(C)]
800#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
801pub struct drm_prime_handle {
802    pub handle: __u32,
803    pub flags: __u32,
804    pub fd: __s32,
805}
806#[repr(C)]
807#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
808pub struct drm_syncobj_create {
809    pub handle: __u32,
810    pub flags: __u32,
811}
812#[repr(C)]
813#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
814pub struct drm_syncobj_destroy {
815    pub handle: __u32,
816    pub pad: __u32,
817}
818#[repr(C)]
819#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
820pub struct drm_syncobj_handle {
821    pub handle: __u32,
822    pub flags: __u32,
823    pub fd: __s32,
824    pub pad: __u32,
825}
826#[repr(C)]
827#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
828pub struct drm_syncobj_transfer {
829    pub src_handle: __u32,
830    pub dst_handle: __u32,
831    pub src_point: __u64,
832    pub dst_point: __u64,
833    pub flags: __u32,
834    pub pad: __u32,
835}
836#[repr(C)]
837#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
838pub struct drm_syncobj_wait {
839    pub handles: __u64,
840    pub timeout_nsec: __s64,
841    pub count_handles: __u32,
842    pub flags: __u32,
843    pub first_signaled: __u32,
844    pub pad: __u32,
845    pub deadline_nsec: __u64,
846}
847#[repr(C)]
848#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
849pub struct drm_syncobj_timeline_wait {
850    pub handles: __u64,
851    pub points: __u64,
852    pub timeout_nsec: __s64,
853    pub count_handles: __u32,
854    pub flags: __u32,
855    pub first_signaled: __u32,
856    pub pad: __u32,
857    pub deadline_nsec: __u64,
858}
859#[repr(C)]
860#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
861pub struct drm_syncobj_eventfd {
862    pub handle: __u32,
863    pub flags: __u32,
864    pub point: __u64,
865    pub fd: __s32,
866    pub pad: __u32,
867}
868#[repr(C)]
869#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
870pub struct drm_syncobj_array {
871    pub handles: __u64,
872    pub count_handles: __u32,
873    pub pad: __u32,
874}
875#[repr(C)]
876#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
877pub struct drm_syncobj_timeline_array {
878    pub handles: __u64,
879    pub points: __u64,
880    pub count_handles: __u32,
881    pub flags: __u32,
882}
883#[repr(C)]
884#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
885pub struct drm_crtc_get_sequence {
886    pub crtc_id: __u32,
887    pub active: __u32,
888    pub sequence: __u64,
889    pub sequence_ns: __s64,
890}
891#[repr(C)]
892#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
893pub struct drm_crtc_queue_sequence {
894    pub crtc_id: __u32,
895    pub flags: __u32,
896    pub sequence: __u64,
897    pub user_data: __u64,
898}
899#[repr(C)]
900#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
901pub struct drm_mode_modeinfo {
902    pub clock: __u32,
903    pub hdisplay: __u16,
904    pub hsync_start: __u16,
905    pub hsync_end: __u16,
906    pub htotal: __u16,
907    pub hskew: __u16,
908    pub vdisplay: __u16,
909    pub vsync_start: __u16,
910    pub vsync_end: __u16,
911    pub vtotal: __u16,
912    pub vscan: __u16,
913    pub vrefresh: __u32,
914    pub flags: __u32,
915    pub type_: __u32,
916    pub name: [core::ffi::c_char; 32usize],
917}
918#[repr(C)]
919#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
920pub struct drm_mode_card_res {
921    pub fb_id_ptr: __u64,
922    pub crtc_id_ptr: __u64,
923    pub connector_id_ptr: __u64,
924    pub encoder_id_ptr: __u64,
925    pub count_fbs: __u32,
926    pub count_crtcs: __u32,
927    pub count_connectors: __u32,
928    pub count_encoders: __u32,
929    pub min_width: __u32,
930    pub max_width: __u32,
931    pub min_height: __u32,
932    pub max_height: __u32,
933}
934#[repr(C)]
935#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
936pub struct drm_mode_crtc {
937    pub set_connectors_ptr: __u64,
938    pub count_connectors: __u32,
939    pub crtc_id: __u32,
940    pub fb_id: __u32,
941    pub x: __u32,
942    pub y: __u32,
943    pub gamma_size: __u32,
944    pub mode_valid: __u32,
945    pub mode: drm_mode_modeinfo,
946}
947#[repr(C)]
948#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
949pub struct drm_mode_set_plane {
950    pub plane_id: __u32,
951    pub crtc_id: __u32,
952    pub fb_id: __u32,
953    pub flags: __u32,
954    pub crtc_x: __s32,
955    pub crtc_y: __s32,
956    pub crtc_w: __u32,
957    pub crtc_h: __u32,
958    pub src_x: __u32,
959    pub src_y: __u32,
960    pub src_h: __u32,
961    pub src_w: __u32,
962}
963#[repr(C)]
964#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
965pub struct drm_mode_get_plane {
966    pub plane_id: __u32,
967    pub crtc_id: __u32,
968    pub fb_id: __u32,
969    pub possible_crtcs: __u32,
970    pub gamma_size: __u32,
971    pub count_format_types: __u32,
972    pub format_type_ptr: __u64,
973}
974#[repr(C)]
975#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
976pub struct drm_mode_get_plane_res {
977    pub plane_id_ptr: __u64,
978    pub count_planes: __u32,
979}
980#[repr(C)]
981#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
982pub struct drm_mode_get_encoder {
983    pub encoder_id: __u32,
984    pub encoder_type: __u32,
985    pub crtc_id: __u32,
986    pub possible_crtcs: __u32,
987    pub possible_clones: __u32,
988}
989pub mod drm_mode_subconnector {
990    pub type Type = core::ffi::c_uint;
991    pub const DRM_MODE_SUBCONNECTOR_Automatic: Type = 0;
992    pub const DRM_MODE_SUBCONNECTOR_Unknown: Type = 0;
993    pub const DRM_MODE_SUBCONNECTOR_VGA: Type = 1;
994    pub const DRM_MODE_SUBCONNECTOR_DVID: Type = 3;
995    pub const DRM_MODE_SUBCONNECTOR_DVIA: Type = 4;
996    pub const DRM_MODE_SUBCONNECTOR_Composite: Type = 5;
997    pub const DRM_MODE_SUBCONNECTOR_SVIDEO: Type = 6;
998    pub const DRM_MODE_SUBCONNECTOR_Component: Type = 8;
999    pub const DRM_MODE_SUBCONNECTOR_SCART: Type = 9;
1000    pub const DRM_MODE_SUBCONNECTOR_DisplayPort: Type = 10;
1001    pub const DRM_MODE_SUBCONNECTOR_HDMIA: Type = 11;
1002    pub const DRM_MODE_SUBCONNECTOR_Native: Type = 15;
1003    pub const DRM_MODE_SUBCONNECTOR_Wireless: Type = 18;
1004}
1005#[repr(C)]
1006#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1007pub struct drm_mode_get_connector {
1008    pub encoders_ptr: __u64,
1009    pub modes_ptr: __u64,
1010    pub props_ptr: __u64,
1011    pub prop_values_ptr: __u64,
1012    pub count_modes: __u32,
1013    pub count_props: __u32,
1014    pub count_encoders: __u32,
1015    pub encoder_id: __u32,
1016    pub connector_id: __u32,
1017    pub connector_type: __u32,
1018    pub connector_type_id: __u32,
1019    pub connection: __u32,
1020    pub mm_width: __u32,
1021    pub mm_height: __u32,
1022    pub subpixel: __u32,
1023    pub pad: __u32,
1024}
1025#[repr(C)]
1026#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1027pub struct drm_mode_property_enum {
1028    pub value: __u64,
1029    pub name: [core::ffi::c_char; 32usize],
1030}
1031#[repr(C)]
1032#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1033pub struct drm_mode_get_property {
1034    pub values_ptr: __u64,
1035    pub enum_blob_ptr: __u64,
1036    pub prop_id: __u32,
1037    pub flags: __u32,
1038    pub name: [core::ffi::c_char; 32usize],
1039    pub count_values: __u32,
1040    pub count_enum_blobs: __u32,
1041}
1042#[repr(C)]
1043#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1044pub struct drm_mode_connector_set_property {
1045    pub value: __u64,
1046    pub prop_id: __u32,
1047    pub connector_id: __u32,
1048}
1049#[repr(C)]
1050#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1051pub struct drm_mode_obj_get_properties {
1052    pub props_ptr: __u64,
1053    pub prop_values_ptr: __u64,
1054    pub count_props: __u32,
1055    pub obj_id: __u32,
1056    pub obj_type: __u32,
1057}
1058#[repr(C)]
1059#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1060pub struct drm_mode_obj_set_property {
1061    pub value: __u64,
1062    pub prop_id: __u32,
1063    pub obj_id: __u32,
1064    pub obj_type: __u32,
1065}
1066#[repr(C)]
1067#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1068pub struct drm_mode_get_blob {
1069    pub blob_id: __u32,
1070    pub length: __u32,
1071    pub data: __u64,
1072}
1073#[repr(C)]
1074#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1075pub struct drm_mode_fb_cmd {
1076    pub fb_id: __u32,
1077    pub width: __u32,
1078    pub height: __u32,
1079    pub pitch: __u32,
1080    pub bpp: __u32,
1081    pub depth: __u32,
1082    pub handle: __u32,
1083}
1084#[repr(C)]
1085#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1086pub struct drm_mode_fb_cmd2 {
1087    pub fb_id: __u32,
1088    pub width: __u32,
1089    pub height: __u32,
1090    pub pixel_format: __u32,
1091    pub flags: __u32,
1092    pub handles: [__u32; 4usize],
1093    pub pitches: [__u32; 4usize],
1094    pub offsets: [__u32; 4usize],
1095    pub modifier: [__u64; 4usize],
1096}
1097#[repr(C)]
1098#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1099pub struct drm_mode_fb_dirty_cmd {
1100    pub fb_id: __u32,
1101    pub flags: __u32,
1102    pub color: __u32,
1103    pub num_clips: __u32,
1104    pub clips_ptr: __u64,
1105}
1106#[repr(C)]
1107#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1108pub struct drm_mode_mode_cmd {
1109    pub connector_id: __u32,
1110    pub mode: drm_mode_modeinfo,
1111}
1112#[repr(C)]
1113#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1114pub struct drm_mode_cursor {
1115    pub flags: __u32,
1116    pub crtc_id: __u32,
1117    pub x: __s32,
1118    pub y: __s32,
1119    pub width: __u32,
1120    pub height: __u32,
1121    pub handle: __u32,
1122}
1123#[repr(C)]
1124#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1125pub struct drm_mode_cursor2 {
1126    pub flags: __u32,
1127    pub crtc_id: __u32,
1128    pub x: __s32,
1129    pub y: __s32,
1130    pub width: __u32,
1131    pub height: __u32,
1132    pub handle: __u32,
1133    pub hot_x: __s32,
1134    pub hot_y: __s32,
1135}
1136#[repr(C)]
1137#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1138pub struct drm_mode_crtc_lut {
1139    pub crtc_id: __u32,
1140    pub gamma_size: __u32,
1141    pub red: __u64,
1142    pub green: __u64,
1143    pub blue: __u64,
1144}
1145#[repr(C)]
1146#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1147pub struct drm_color_ctm {
1148    pub matrix: [__u64; 9usize],
1149}
1150#[repr(C)]
1151#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1152pub struct drm_color_lut {
1153    pub red: __u16,
1154    pub green: __u16,
1155    pub blue: __u16,
1156    pub reserved: __u16,
1157}
1158#[repr(C)]
1159#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1160pub struct drm_plane_size_hint {
1161    pub width: __u16,
1162    pub height: __u16,
1163}
1164#[repr(C)]
1165#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1166pub struct hdr_metadata_infoframe {
1167    pub eotf: __u8,
1168    pub metadata_type: __u8,
1169    pub display_primaries: [hdr_metadata_infoframe__bindgen_ty_1; 3usize],
1170    pub white_point: hdr_metadata_infoframe__bindgen_ty_2,
1171    pub max_display_mastering_luminance: __u16,
1172    pub min_display_mastering_luminance: __u16,
1173    pub max_cll: __u16,
1174    pub max_fall: __u16,
1175}
1176#[repr(C)]
1177#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1178pub struct hdr_metadata_infoframe__bindgen_ty_1 {
1179    pub x: __u16,
1180    pub y: __u16,
1181}
1182#[repr(C)]
1183#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1184pub struct hdr_metadata_infoframe__bindgen_ty_2 {
1185    pub x: __u16,
1186    pub y: __u16,
1187}
1188#[repr(C)]
1189#[derive(Copy, Clone)]
1190pub struct hdr_output_metadata {
1191    pub metadata_type: __u32,
1192    pub __bindgen_anon_1: hdr_output_metadata__bindgen_ty_1,
1193}
1194#[repr(C)]
1195#[derive(Copy, Clone)]
1196pub union hdr_output_metadata__bindgen_ty_1 {
1197    pub hdmi_metadata_type1: hdr_metadata_infoframe,
1198}
1199impl Default for hdr_output_metadata__bindgen_ty_1 {
1200    fn default() -> Self {
1201        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1202        unsafe {
1203            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1204            s.assume_init()
1205        }
1206    }
1207}
1208impl Default for hdr_output_metadata {
1209    fn default() -> Self {
1210        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1211        unsafe {
1212            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1213            s.assume_init()
1214        }
1215    }
1216}
1217#[repr(C)]
1218#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1219pub struct drm_mode_crtc_page_flip {
1220    pub crtc_id: __u32,
1221    pub fb_id: __u32,
1222    pub flags: __u32,
1223    pub reserved: __u32,
1224    pub user_data: __u64,
1225}
1226#[repr(C)]
1227#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1228pub struct drm_mode_crtc_page_flip_target {
1229    pub crtc_id: __u32,
1230    pub fb_id: __u32,
1231    pub flags: __u32,
1232    pub sequence: __u32,
1233    pub user_data: __u64,
1234}
1235#[repr(C)]
1236#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1237pub struct drm_mode_create_dumb {
1238    pub height: __u32,
1239    pub width: __u32,
1240    pub bpp: __u32,
1241    pub flags: __u32,
1242    pub handle: __u32,
1243    pub pitch: __u32,
1244    pub size: __u64,
1245}
1246#[repr(C)]
1247#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1248pub struct drm_mode_map_dumb {
1249    pub handle: __u32,
1250    pub pad: __u32,
1251    pub offset: __u64,
1252}
1253#[repr(C)]
1254#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1255pub struct drm_mode_destroy_dumb {
1256    pub handle: __u32,
1257}
1258#[repr(C)]
1259#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1260pub struct drm_mode_atomic {
1261    pub flags: __u32,
1262    pub count_objs: __u32,
1263    pub objs_ptr: __u64,
1264    pub count_props_ptr: __u64,
1265    pub props_ptr: __u64,
1266    pub prop_values_ptr: __u64,
1267    pub reserved: __u64,
1268    pub user_data: __u64,
1269}
1270#[repr(C)]
1271#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1272pub struct drm_format_modifier_blob {
1273    pub version: __u32,
1274    pub flags: __u32,
1275    pub count_formats: __u32,
1276    pub formats_offset: __u32,
1277    pub count_modifiers: __u32,
1278    pub modifiers_offset: __u32,
1279}
1280#[repr(C)]
1281#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1282pub struct drm_format_modifier {
1283    pub formats: __u64,
1284    pub offset: __u32,
1285    pub pad: __u32,
1286    pub modifier: __u64,
1287}
1288#[repr(C)]
1289#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1290pub struct drm_mode_create_blob {
1291    pub data: __u64,
1292    pub length: __u32,
1293    pub blob_id: __u32,
1294}
1295#[repr(C)]
1296#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1297pub struct drm_mode_destroy_blob {
1298    pub blob_id: __u32,
1299}
1300#[repr(C)]
1301#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1302pub struct drm_mode_create_lease {
1303    pub object_ids: __u64,
1304    pub object_count: __u32,
1305    pub flags: __u32,
1306    pub lessee_id: __u32,
1307    pub fd: __u32,
1308}
1309#[repr(C)]
1310#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1311pub struct drm_mode_list_lessees {
1312    pub count_lessees: __u32,
1313    pub pad: __u32,
1314    pub lessees_ptr: __u64,
1315}
1316#[repr(C)]
1317#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1318pub struct drm_mode_get_lease {
1319    pub count_objects: __u32,
1320    pub pad: __u32,
1321    pub objects_ptr: __u64,
1322}
1323#[repr(C)]
1324#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1325pub struct drm_mode_revoke_lease {
1326    pub lessee_id: __u32,
1327}
1328#[repr(C)]
1329#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1330pub struct drm_mode_rect {
1331    pub x1: __s32,
1332    pub y1: __s32,
1333    pub x2: __s32,
1334    pub y2: __s32,
1335}
1336#[repr(C)]
1337#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1338pub struct drm_mode_closefb {
1339    pub fb_id: __u32,
1340    pub pad: __u32,
1341}
1342#[repr(C)]
1343#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1344pub struct drm_event {
1345    pub type_: __u32,
1346    pub length: __u32,
1347}
1348#[repr(C)]
1349#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1350pub struct drm_event_vblank {
1351    pub base: drm_event,
1352    pub user_data: __u64,
1353    pub tv_sec: __u32,
1354    pub tv_usec: __u32,
1355    pub sequence: __u32,
1356    pub crtc_id: __u32,
1357}
1358#[repr(C)]
1359#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1360pub struct drm_event_crtc_sequence {
1361    pub base: drm_event,
1362    pub user_data: __u64,
1363    pub time_ns: __s64,
1364    pub sequence: __u64,
1365}
1366pub type drm_clip_rect_t = drm_clip_rect;
1367pub type drm_drawable_info_t = drm_drawable_info;
1368pub type drm_tex_region_t = drm_tex_region;
1369pub type drm_hw_lock_t = drm_hw_lock;
1370pub type drm_version_t = drm_version;
1371pub type drm_unique_t = drm_unique;
1372pub type drm_list_t = drm_list;
1373pub type drm_block_t = drm_block;
1374pub type drm_control_t = drm_control;
1375pub use self::drm_map_flags::Type as drm_map_flags_t;
1376pub use self::drm_map_type::Type as drm_map_type_t;
1377pub type drm_ctx_priv_map_t = drm_ctx_priv_map;
1378pub type drm_map_t = drm_map;
1379pub type drm_client_t = drm_client;
1380pub use self::drm_stat_type::Type as drm_stat_type_t;
1381pub type drm_stats_t = drm_stats;
1382pub use self::drm_lock_flags::Type as drm_lock_flags_t;
1383pub type drm_lock_t = drm_lock;
1384pub use self::drm_dma_flags::Type as drm_dma_flags_t;
1385pub type drm_buf_desc_t = drm_buf_desc;
1386pub type drm_buf_info_t = drm_buf_info;
1387pub type drm_buf_free_t = drm_buf_free;
1388pub type drm_buf_pub_t = drm_buf_pub;
1389pub type drm_buf_map_t = drm_buf_map;
1390pub type drm_dma_t = drm_dma;
1391pub type drm_wait_vblank_t = drm_wait_vblank;
1392pub type drm_agp_mode_t = drm_agp_mode;
1393pub use self::drm_ctx_flags::Type as drm_ctx_flags_t;
1394pub type drm_ctx_t = drm_ctx;
1395pub type drm_ctx_res_t = drm_ctx_res;
1396pub type drm_draw_t = drm_draw;
1397pub type drm_update_draw_t = drm_update_draw;
1398pub type drm_auth_t = drm_auth;
1399pub type drm_irq_busid_t = drm_irq_busid;
1400pub use self::drm_vblank_seq_type::Type as drm_vblank_seq_type_t;
1401pub type drm_agp_buffer_t = drm_agp_buffer;
1402pub type drm_agp_binding_t = drm_agp_binding;
1403pub type drm_agp_info_t = drm_agp_info;
1404pub type drm_scatter_gather_t = drm_scatter_gather;
1405pub type drm_set_version_t = drm_set_version;
1406pub const DRM_MODE_PROP_SIGNED_RANGE: core::ffi::c_uint = 128;
1407pub const DRM_MODE_PROP_OBJECT: core::ffi::c_uint = 64;