drm_sys/
bindings.rs

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