Skip to main content

drm_sys/
bindings.rs

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